Advanced Object-Oriented Programming

This course aims for a deeper understanding of Object-Oriented programming and design than what is obtained in basic courses and even day-to-day work. To achieve this, the course is divided to three parts. The first is a pack of practical ready-to-use design patterns; the second discusses programming language design and implementation, for each mechanism of the O-O method; and the third covers future directions in the programming world. This combination has been chosen to provide students with long-lasting useful knowledge, regardless of their specific field of work in computers and of whether they are programmers, designers or academic researchers.

Since this is an elective course for fourth-year students, you are required to think more. The course will have no test but instead include two personalized mini-projects, based on real-world problems.

Watch.jpg (29373 bytes) The Wh Questions

Who: David Talby (Homepage, Email)

When: Friday Mornings, 8:00-10:30

Where: Floor 2 of Main Building in Hadassah College, Jerusalem

Reception Hour: Friday 13:15-14:00



Part I: Design Patterns

We'll go through most of the classic Gang-of-Four patterns.

Part II: Language Design

The mechanisms covered will be the type system, genericity, design by contract, inheritance and multiple inheritance, variants (static and dynamic), imprinted performance, non-determinism, real-time facilities and exception handling.

Part III: Future Directions

This short part will present two topics: Extreme programming and component based programming (EJB, COM and dot-Net).



For Part I:

For Part II:

For Part III:


Exercises & Grading

The course's grade will be the average of these two mini-projects:

Each mini-project should be done in pairs, and involve thinking of a large problem and writing a report. The grade of is composed of the report itself and answering oral questions about it. In each mini-project you will have a selection of problems to work on; at most two groups should work on the same problem or project.

Enjoy the course!