1 / 23

COMS S1007 Object-Oriented Programming and Design in Java

COMS S1007 Object-Oriented Programming and Design in Java. August 7, 2007. Final Exam Logistics. Thursday, 5:40-8:40pm No calculators, books, notes, electronic devices, etc. Graded exams will be available for viewing starting next Tuesday. What’s on the final exam?.

venable
Download Presentation

COMS S1007 Object-Oriented Programming and Design in Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. COMS S1007Object-Oriented Programming and Design in Java August 7, 2007

  2. Final Exam Logistics • Thursday, 5:40-8:40pm • No calculators, books, notes, electronic devices, etc. • Graded exams will be available for viewing starting next Tuesday

  3. What’s on the final exam? • All material covered in lecture • Programs discussed in lecture and posted on the class website • Assigned readings • Emphasis will be on material covered in class

  4. Assigned readings • Java basics: chapters 1-7 • Designing classes: 8.1 – 8.9 • Interfaces, Inheritance: 9.1 – 9.5, 10.1 – 10.8 • Graphics: 2.11 – 2.13, 3.9, 18.1 – 18.4 • Testing: 2.8, 3.6, 5.5, 7.8 • Event handling: 9.6 – 9.10 • Threads: 20.1 – 20.5 • Networking: 21.1 – 21.5 • Exceptions: 11.1 – 11.6 • Data structures: 15.1 – 15.4, 16.1 – 16.7

  5. What’s NOT on the final? • Extra material in textbook, such as: • Common Errors • How Tos • Quality Tips • Productivity Hints • Random Facts • ….unless covered in lecture!! • Advanced Topics covered last week

  6. Format of the exam • 10-15 short-answer “concept” questions • 4-5 writing Java methods • 1-2 writing Java classes • “Find the bugs” question • 3-4 determining output of Java code

  7. Studying for the exam • Review your class notes, particularly the descriptions of Java classes and APIs • Review and make sure you understand the source code that we looked at in class and in the textbook from the assigned readings • Review the comments made on your homeworks • Use the discussion board on CourseWorks

  8. Taking the exam • Note how much each question is worth • Look through the entire exam and start by working on problems that you think you can do quickly and that are worth a lot of points • Read the questions carefully to see what is expected of you • Ask the proctor if you have any questions

  9. More advice • Concept questions • Don’t write too much, but try to be detailed • Give an example if you can’t explain it • Writing Java code • You are graded on accuracy of syntax and semantics (your code must “compile”) • Pay attention to stylistic issues • You will not be provided with any API docs

  10. More advice • “Find the bugs” question • Look for compile-time (syntax, semantic) errors before trying to find logic errors • Be sure it’s a bug (look out for tricks) • Understanding Java code • Review the different APIs to know what they do

  11. Classes you should know well • Math: random, pow, sqrt… • String: charAt, indexOf, size… • Scanner: constructors, hasNext, next, nextLine… • JFrame: setSize, setVisible, add… • Graphics: setColor, drawString, fillOval… • Object: equals, hashCode, toString, clone… • These are not the only ones that may appear on the exam, but are the ones you should know best

  12. Java Basics (chapters 1-7) • OOP: classes and objects • Encapsulation: public and private • Methods and constructors • Object references and aliases • Pre- and post-increment • Lazy evaluation of boolean expressions

  13. Coding style • Avoid calling the same method multiple times • Use lazy evaluation • Use constants • User errors vs. programmer errors • Avoid side effects • Member variables vs. local variables • Aliasing a parameter

  14. Designing classes (8.1 – 8.9) • Classes vs. methods • Classes are nouns, methods are verbs • Cohesion: everything belongs together • Coupling: co-dependence • Side effects: modifying an object passed as an explicit parameter

  15. Interfaces & Inheritance (9.1 – 9.5, 10.1 – 10.8) • Interfaces: collection of abstract methods • Polymorphism • Inner classes • Inheritance • Abstract classes • Object: the global superclass

  16. Graphics and Java GUIs(2.11 – 2.13, 3.9, 18.1 – 18.4) • JFrame and its methods • JComponent • Drawing with the Graphics object • Java Swing components • JPanel, JTextField, JButton, etc.

  17. Testing (2.8, 3.6, 5.5, 7.8) • The “assert” statement • Unit testing • Boundary values and equivalence classes • Integration and systems testing • Regression testing

  18. Event handling (9.6 – 9.10) • Event sources and listeners • Not just for GUI events • Java GUI Listeners • MouseAdapter • MouseMotionAdapter • KeyAdapter • ActionListener • MouseEvents, KeyEvents, ActionEvents

  19. Threads (20.1 – 20.5) • Why use threads? • The Thread class and Runnable interface • Invoking a new Thread and important methods • start: begins a new line of execution • run: starting point of executable code • Race conditions • Locks and synchronization

  20. Networking (21.1 – 21.5) • The ServerSocket class • constructor binds to a port • “accept” method waits for a connection • The Socket class • “connect” method connects to a port • Input and Output streams

  21. Exceptions (11.1 – 11.6) • Exception hierarchy • The try/catch/finally blocks • Throwing exceptions • Custom exceptions • Using exceptions for control flow

  22. Data structures (15.1 – 15.4, 16.1 – 16.7) • Linked Lists • LinkedList and ListIterator class • Linked Lists vs. arrays • Stack: LIFO, push/pop • Queue: FIFO, add/remove • Set: add, remove, contains • Map: get, put • Hashing functions and hash tables • Trees

  23. Final Exam Logistics • Thursday, 5:40-8:40pm • No calculators, books, notes, electronic devices, etc. • Graded exams will be available for viewing starting next Tuesday

More Related