TENTATIVE TOPICS * procedural programming review * object-based programming review * UML diagrams: class, object, state * object-oriented programming - inheritance - polymorphism and virtual functions - overloading and overriding - abstact operations and classes - private vs. public inheritance, multiple inheritance - type covariance - implementation hiding/PIMPL idiom, nested classes - push and pull communication methods between objects - double dispatch - smart pointers - delegation * design patterns - singleton - abstract factory/factory method - template method - bridge - adapter - prototype - state - chain of responsibility - observer - decorator - strategy - command - memento - visitor - composite - flyweight * generic programming - iterators - templates - implementing design patterns using templates - metaprogramming * programming with standard template library - containers - generic algorithms - extending STL * C++ concepts - casting - (forward) class declaration, elaborated type specifier SCHEDULE CSI A 1. Aug 29 Aug 31 2. Sep 5 no class (labor day) Sep 7 3. Sep 12 Sep 14 Quiz I 4. Sep 19 Sep 21 5. Sep 26 Sep 28 6. Oct 3 Quiz II Oct 5 7. Oct 10 Oct 12 8. Oct 17 Oct 19 midterm 9. Oct 24 Oct 26 10. Oct 31 Nov 1 11. Nov 7 Quiz III Nov 9 12. Nov 14 Nov 16 13. Nov 21 Nov 23 Quiz IV 14. Nov 28 Nov 30 15. Dec 5 Dec 7 Final exam: 10:15am - 12:30pm Mon, Dec 12