Principles of Object Orientation: Motivations for OOP, objects and classes, abstraction and encapsulation, messages, inheritance, overriding, multiple inheritance, dynamic binding, virtual methods, inclusion polymorphism, abstract classes, virtual classes, dynamic binding mechanisms in Smalltalk and C++, OO notations, CRC method for designing classes, interclass relationships
Comparative study of OO languages: purity in object orientation - the Smalltalk paradigm, comparative study of constructs from some typical object oriented programming languages such as Smalltalk, Eiffel, JAVA and C++
Object Oriented Analysis and Design: Introduction to object oriented software engineering, use case analysis, object diagrams, dynamic models - object interaction diagrams and state diagrams, functional model, from analysis to design, relevant topics from various methodologies such as Jacobson, Rumbaugh, Booch and Unified Methodology
Elements of Design Reuse: Object oriented design patterns
Object Oriented Concurrent and Distributed Systems: active objects, Charm++, Subcontracting, object oriented concurrency mechanisms, CORBA standard
Advanced Concepts: inheritance anomaly, reflection in object oriented
systems, multiple interfaces, filter objects, compositional filters,
business objects, meta-objects