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 * design patterns - singleton - abstract factory/factory method - template method - bridge - adapter - prototype - state - proxy - chain of responsibility - observer - decorator - strategy - command - memento - visitor - composite * generic programming - iterators - templates - implementing design patterns using templates - metaprogramming * programming with standard template library - containers - generic algorithms - extending STL SCHEDULE Week 1. Aug 31 2. Sep 7, labor day 3. Sep 14, quiz (Wednesday) 4. Sep 21, 5. Sep 28, quiz (Wednesday) 6. Oct 5, 7. Oct 12, midterm (Wednesday, Oct 14th) 8. Oct 19, 9. Oct 26, 10. Nov 2, quiz (Wednesday?) 11. Nov 9, vets day, no classes on wednesday 12. Nov 16, quiz (Monday?) 13. Nov 23 thanksgiving break 14. Nov 30, 15. Dec 7 Final Exam: 10:15 - 12:30pm, Wed Dec 16