Advanced Object-Oriented Techniques
Monday 5:00pm - 7:00pm
Room 101, Warren Weaver Hall
Frank Tip (firstname.lastname@example.org)
Wednesday 5:15pm-7:15pmRoom 1218719 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:
Letter grades were determined according to the following schedule:
weighted average >= than