V22.0470-001

Object-Oriented Programming

Special Topics Course - Fall 2003

Instructor: Nicholas Pappas

Class: Tuesday 6:20 pm - 9:00 pm, SILVER CENTER (formerly known as MAIN Building)
Room: 408

Office Hours: Tuesdays 5:00 pm - 6:00 pm, CIWW 427

(also by appointment)

  Email: pappas@cs.nyu.edu  office phone (212) 998-3090


TA: Zhongshan Zhang

Email: zhongsha@cs.nyu.edu
Office hours:
Thursday, 2:40pm-4:40pm, CIWW room 801

The course will cover object-oriented programming. Topics covered will include object concepts, design issues, and extensive programming. UML will be discussed and used and programming will be done in Java.

Strong programming skills are required as well as familiarity with Windows.  Programming will be done almost entirely on the Windows platform.

Be prepared for a lot of programming as well as lot of reading.

There will be roughly 5 or 6 homeworks, a midterm, as well as a final.

POLICY ON CHEATING:  You cheat, you fail.  You help someone cheat, you fail.  Administration action may also be expected.  Cheating on homeworks is copying all or part of another student's work or allowing another student to copy all or part of yours.  Copying code from other resources (for example, but not limited to, non-students, books, magazines, the Internet, etc.) is also cheating.  While you are free to discuss GENERAL principles and possible solutions, you are to DO YOUR OWN WORK.

Assignments, class notes, and other information will be found here when applicable. Please check this page periodically for updates.


MIDTERM EXAM

Tuesday, October 21, 2003 6:20-7:40 PM

Room 408, Silver Building (in class)

MIDTERM FORMAT AND SAMPLES

OPEN BOOK, TEXT, NOTES
(BUT NO COMPUTERS, ELECTRONICS, ETC.)

Questions will be roughly in the following format:

  1. Given a list of specific design requirements (e.g. class descriptions, attributes, methods and relationships, state, interaction or sequence information), draw the UML diagram (may require associations and multiplicities or other features specific to appropriate UML diagram). (25 points)

    Sample 1)Draw the class diagram for boats including sailboats and motorpowered boats and combinations of the two. All boats have a price, length, displacement (amount of water displaced when it's in the water), and passenger capacity. Boats may have 0 or more masts and 0 or more engines depending on what propulsion is used. Masts have height, and engines have horsepower. Do not add any other attributes other than what is given.

    Sample 2)Draw the interactivity diagram for a game of tic-tac-toe.

  2. Given an instance diagram draw the UML class diagram representing the underlying classes. (25 points)

    For an example of this type of question, see text, Exercise 5.9 pp. 168-169

  3. Explain what's going on with a given state or activity diagram (15 points).

    Sample 1) Explain what is going on in the Figure 8.7 in text, p. 273. Make sure you explain each step illustrated in the figure.

  4. Explain what's wrong with given code or diagram (10 points)

    You will be given code, or for a diagram, an explanation of what the system/software should be doing and and a diagram with errors.

  5. 5 short answers (15 points)

    Sample 1) Describe in one sentence what is "aggregation" in Object-Oriented Design.

    Sample 2) Class diagrams show the order in which objects' are referenced and their methods are called. True or False?


Reading Covered:

Chapters 1 and 2;
Chapter 4, pp. 101-138 top and pp. 146-148;
Chapter 5;
Chapter 6 pp. 208-210 (Player-Role Pattern);
Chapter 7, pp. 201-210 and pp. 229-243;
Chapter 8, pp. 269-291.

Chapter 9 will NOT be covered on the midterm.

Sample questions will be posted shortly.
NOTE: Midterm is worth 30 % of your final grade.


FINAL EXAM AND SAMPLES

Tuesday, December 16, 2003 8:00-9:50 PM
Room: 408 Silver (class room)
OPEN BOOK, TEXT, NOTES
(BUT NO COMPUTERS, ELECTRONICS, ETC.)

Questions will be 25 short answer questions, roughly in the following format:

  1. wait() is one Java method you may use to allow threads to communicate with each other. True ____ False ____

  2. Describe what is concurrency as it relates to Java programming. (one sentence only)

  3. Java is not an object-oriented language. True ____ False ____

  4. Object-oriented languages possess the following 3 features: __________, _________, and __________ .

  5. What is domain analysis? (one sentence only).

  6. UML activity diagrams can be useful for developing software. True ____ False ____

  7. Describe in one sentence what is "aggregation" in Object-Oriented Design.

  8. What is a use case? (one sentence only)

  9. Increasing cohesion is one way in which you can make your applications more flexible. True ____ False ____



Reading Covered:

Chapters 1 and 2;
Chapter 4, pp. 101-138 top and pp. 146-148;
Chapter 5;
Chapter 6 pp. 208-210 (Player-Role Pattern);
Chapter 7, pp. 201-210 and pp. 229-243;
Chapter 8, pp. 269-291.
Chapter 9, pp. 293-329.

Notes 1-11 (not Notes 12).


Class Notes

Notes 01
Notes 02
Notes 03
Notes 04
Notes 05
Notes 06
Notes 07
Notes 08
Notes 09
Notes 10
Notes 11
Notes 12

Sample Code

Sample Code from Class 10/28
Sample Code from Class 12/02
JabberClient.java from Notes 11

Assignments

 Assignment  Due Date  Solution
Assignment 1 September 23, 2003 6:20 PM (in class)
Assignment 2 October 14, 2003 6:00 PM Solution
Assignment 3 November 18, 2003 6:00 PM