Download presentation
Presentation is loading. Please wait.
1
COMS S1007 Object-Oriented Programming and Design in Java August 12, 2008
2
Final Exam Logistics 825 Mudd (usual classroom) Thursday, 5:40-8:40pm –Note the start time No calculators, books, notes, electronic devices, etc.
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 Software Engineering –chapter 12 Software Testing –2.8, 3.6, 5.5, 7.8, 8.10; slides from 7/10 Interfaces, Inheritance –9.1 – 9.5, 10.1 – 10.8 Graphics –2.11 – 2.13, 3.9, 10.9 – 10.11, chapter 18
5
Assigned Readings Event handling –9.6 – 9.10 Threads –chapter 20 Networking –chapter 21 Exceptions –chapter 11 Data structures –chapters 15 & 16 Design patterns –not in the book!!
6
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
7
Format of the exam (tentative) 10-15 short-answer “concept” questions 2-3 problem solving and analysis 4-5 writing Java methods 1-2 writing Java classes 1-2 “Find the bugs” questions 3-4 determining output of Java code
8
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 Office hours by appointment on Thursday
9
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
10
More advice Concept questions –Don’t write too much, but try to be detailed –Give an example if you can’t explain it Problem solving and analysis –Show your work to get partial credit –Clearly state any assumptions you make
11
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) 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, except for classes not previously seen
12
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
13
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 Call-by-reference vs. call-by-value
14
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
15
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
16
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
17
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.
18
Testing (2.8, 3.6, 5.5, 7.8) The “assert” statement Unit testing –White box and black box testing –Boundary values and equivalence classes Integration and systems testing Regression testing
19
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
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
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 thread of execution –run: starting point of executable code Race conditions Locks and synchronization
22
Exceptions (11.1 – 11.6) Exception hierarchy The try/catch/finally blocks Throwing exceptions Custom exceptions
23
Data structures (15.1 – 15.4) Linked Lists –LinkedList and ListIterator class Stack: LIFO, push/pop Queue: FIFO, add/remove –Either can be implemented with arrays or with LinkedLists
24
More Data Structures (16.1 – 16.10) Set: add, remove, contains Map: get, put Hashing functions and hash tables Trees and traversal techniques Heaps and Heapsort
25
Design Patterns What are design patterns used for? What are the three GoF classes of patterns? Singleton: limit to a single instance Composite: treat a collection of objects with the same interface as individual ones Observer: publish/subscribe
26
Final Exam Logistics 825 Mudd (usual classroom) Thursday, 5:40-8:40pm –Note the start time No calculators, books, notes, electronic devices, etc. Chapters 1-12, 15-16, 18, 20, 21
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.