| Date | Topic | Reading due | Classwork | Assignment Due | |
|---|---|---|---|---|---|
| 10 | Jan | Introduction Course Details | Survey Bins | ||
| 12 | Jan | Design in the Small | Open Closed Principle Tell Don't Ask Code Smells | Refactoring Bins | |
| 15 | Jan | No class - MLK Jr. Day | |||
| 17 | Jan | C++ Basics | Comparing C++ and Java Java vs. C++ | Anagrams | Introductions |
| 19 | Jan | Recitation: C++ | Pointers and Memory | Roulette 1 | |
| 22 | Jan | Recitation: Refactoring | Big Refactorings | Roulette 2 | |
| 24 | Jan | Class Design | EC Chapter 3 | Arithmetica | First Roulette 2 |
| 26 | Jan | Recitation: Refactoring | Arithmetica 1 | Final Roulette 2 | |
| 29 | Jan | Inheritance Design | Tapestry Chapter 13.3 | First Arithmetica 1 | |
| 31 | Jan | STL | STL Tutorial Chapters 2,3 | Arithmetica | Final Arithmetica 1 |
| 2 | Feb | Recitation: Patterns | DPE Chapter 5 The Interpreter Pattern | Arithmetica 2 | |
| 5 | Feb | Design Principles | Dependency Inversion Principle | First Arithmetica 2 | |
| 7 | Feb | Code Review | |||
| 9 | Feb | Recitation: Catch-up | |||
| 12 | Feb | Templates | Templates Tutorial | Final Arithmetica 2 | |
| 14 | Feb | STL in more Detail | Functors | ||
| 16 | Feb | Recitation: Arithmetica Quiz | Foundation Patterns | ||
| 19 | Feb | GUIs and Events
Guest: David Winslow | User Interfaces that Swing Using Swing Components | Events | |
| 21 | Feb | GUI Design: MVC Guest: Ben Wolf | Observer | Puzzle | |
| 23 | Feb | Recitation:
Adding Components Guest: Marcin Dobosz | Crystal Design | Crystal | |
| 26 | Feb | Designing Programs | SLogo | First Crystal | |
| 28 | Feb | Designing with Patterns | Mercer Chapter 12 | SLogo | |
| 2 | Mar | Recitation: Design Document | GoF Chapter 2 | OOKIE | Final Crystal |
| 5 | Mar | Code Review | McCarthy Chapter 1 | OOKIE #1 | |
| 7 | Mar | Design Review | Beck Chapter 10 | ||
| 9 | Mar | No Class - Out of Town | OOKIE #2 | ||
| 12 | Mar | No Class - Spring Break | |||
| 14 | Mar | No Class - Spring Break | |||
| 16 | Mar | No Class - Spring Break | |||
| 19 | Mar | Networking | Custom Networking | Chat | |
| 21 | Mar | Interaction | Writing Listeners | Sketch | |
| 23 | Mar | Recitation: Team Meeting | |||
| 26 | Mar | Code Review | OOKIE #3 | ||
| 28 | Mar | Reflection | The Reflection API | ShowClass | |
| 30 | Mar | Recitation: Team Meeting | |||
| 2 | Apr | Animation Basics | Animation Tutorial | Bounce | OOKIE #4 |
| 4 | Apr | Animation Framework | Taligent Chapters 1-3 | Bounce | VOOGA #0 |
| 6 | Apr | Recitation: Team Meeting | OOKIE #5 | ||
| 9 | Apr | API Design | Josh Bloch on Design | VOOGA #1 | |
| 11 | Apr | Data Driven Design | Technical Introduction to XML | Springies | |
| 13 | Apr | Recitation: Team Meeting | |||
| 16 | Apr | Progress Demos | Student Presentations | VOOGA #2 | |
| 18 | Apr | Code Review | |||
| 20 | Apr | Path to the Profession | ACM Code of Ethics IEEE Code of Ethics Ten Commandments of Computer Ethics | Ethics Discussion | |
| 23 | Apr | Progress Demos 2.0 | Student Presentations | VOOGA #2.5 | |
| 25 | Apr | Things You Should Know Course Critique | Test Infected Shell Scripting | VOOGA #3 | |
| 2 | May | Final Project Demos (7-10pm) | VOOGA #4, #5 | ||