====== Course Outline ====== Since the two sections will be slightly out of sync throughout the term, the following lists the topics to be discussed with only approximate timing: ===== Week 1 ===== Introduction - Administrivia ===== Week 2 ===== Classes - Objects **Readings**: Chapters 7-8 ===== Week 3 ===== Genericity - Design by Contract **Readings**: Chapter 10 - 11 Information Hiding and class LIST[G] as an example of information hiding. See index to textbook OOSC2 for pages referring to "information hiding". ===== Week 4 ===== Test Driven Design - Once routines ===== Week 5 ===== Tuples and Agents Start the subject of Contracting with math libraries (MML) ===== Week 6 ===== Complete contracting with math libraries (MML). Readings: See the material in the code directory. ===== Midterm ===== ===== Week 7 ===== Inheritance **Readings**: Chapters 14 **Design Patterns**: Template Method, State ===== Week 8 ===== **Design Pattern**: Multi-panel interactive systems **Readings**: Chapter 20 Multiple Inheritance **Readings**: Chapters 15 ===== Week 9 ===== Inheritance Techniques **Readings**: Chapters 16 How to find the classes - Using Inheritance Well **Readings**: Chapters 22,24 ===== Week 10 ===== **Design Patterns**: Adapter, Composite ===== Week 11 ===== **Design Patterns**: Decorator, Command ===== Week 12 ===== **Design Patterns**: Observer, Visitor ===== Final Exam =====