The course will explore useful object-oriented technology from the following areas: Aspect-Oriented Programming, Advanced Design Patterns, Generic Programming, including pattern-based programming and query languages and Software Architecture. The overall theme of the course is to explore various approaches to lift object-oriented software development to higher levels of abstraction and to explore how the ideas can be used today using Java technology and UML (Unified Modeling Language).
The course has no textbook; instead we use selected papers many of them reachable on the Web.
Course Directory on the Web, contains lecture notes in PDF format, etc.
The course will be run in the style of a graduate seminar. Papers will be presented by students and we might have guest lecturers.
The requirements for the course will be geared to your interests. A questionnaire will be handed out at the beginning of the course. The requirement for the course is a paper which describes some improvement of the ``state-of-the-art'' in the form of some research and/or an implementation. During the preparation of the paper/project, the student will present the topic being researched to the class. The idea is to produce a new and interesting combination of something you learned or will learn about OOT. There is probably no exam in the course but that depends on the size of the class.
The course is geared towards both practitioners who want to learn about the latest state-of-the-art to help them in their software development work _and_ towards Ph.D. students who want to advance the state-of-the-art.
For Ph.D. students who choose to write a paper, the paper should be publishable as a technical report of the college (subject to some English editing, if needed, for students whose mother tongue is not English). With further work, it might become a conference publication.
The syllabus contains the list of topics to be covered. It will be adjusted based on input from a questionnaire which is distributed at the beginning of the class.