Advanced Object-Oriented Techniques


Spring 2002

Monday 5:00pm - 7:00pm

Room 101, Warren Weaver Hall

Frank Tip (

Office Hours

Monday, 3:30pm-4:30pm, room 401, Warren Weaver Hall.

Course Mailing List

Please subscribe to the course mailing list.


Our TA is Ittai Balaban. Ittai can be reached at (212) 998-3042, and his office hours are as follows:

Wednesday 5:15pm-7:15pm
Room 1218
719 Broadway


Please contact Ittai if you have Java-related problems with the homework assignments or the term project.


The goal of this course is to familiarize students with several object-oriented techniques that are widely used in industry. After a brief review of object-oriented terminology (subtyping, dynamic dispatch, inheritance, delegation, etc.), the following topics will be presented in detail:

The objective of the course is to make students sufficiently proficient with these techniques so that they can apply them in practice. To achieve this goal, the course has a substantial practical component, in the form of a series of programming assignments that are performed in groups.


A graduate-level course in programming languages is required. Basic familiarity with Java (or another object-oriented language) will be assumed.


Please note that there are 3 required textbooks for this course:

A good textbook on Java is recommended. Two examples of good textbooks are:


This course is concerned with practical techniques, and the only way to really become proficient with these techniques is to apply them in practice. The available time (I realize that this is not the only class you are taking) will not allow you to build a really complex system. Therefore, you will develop a system that is complex and interesting enough in that it will require most of the techniques and concepts that you will learn during the course, and yet not be too large and complicated. The system you will develop is a simulation of a book-selling e-commerce system, and will be constructed in 4 stages. After each stage is due, I will discuss the important aspects of my own solution in class. In cases where you did not manage to complete a stage by yourself, you are allowed to use my solution in subsequent stages of the project.


The final grade for this course will be a weighted average of the homework assignments, the project, the mid-term exam, and the final exam. The weights are as follows:

homeworks 15%
project 35%
mid-term exam 20%
final exam 30%

Letter grades were determined according to the following schedule:

weighted average >= than
90.0 A
87.0 A-
83.0 B+
80.0 B
75.0 B-
70.0 C+
65.0 C
60.0 C-