| Date | Topic | Reading due | Assignment Due | |
|---|---|---|---|---|
| 24 | Aug | Course Overview | Survey | |
| 26 | Aug | Refactoring to Design | OO in One Sentence Open Closed Principle Code Smells | Bins, due Thu., 6pm |
| 28 | Aug | Code Review | ||
| 31 | Aug | Inheritance Design |
Inheritance Commonality Analysis | Introductions |
| 2 | Sep | Eclipse Unit Testing | Test Infected | Arithmetica, due Thu., 10pm |
| 4 | Sep | Code Review | Single Responsibility Principle | Book decision
Arithmetica Final, due Sun |
| 7 | Sep | GUIs and Events | User Interfaces that Swing Using Swing Components | |
| 9 | Sep | GUI Design | Writing Listeners | |
| 11 | Sep | Debugging | Jotto, due Sun., 10pm | |
| 14 | Sep | Code Review | Liskov Substitution Principle | |
| 16 | Sep | Team Meetings | Guide to Versioning Systems | Picasso, Team Web Page |
| 18 | Sep | Reflection Generics | The Reflection API
Generics | |
| 21 | Sep | Testing Review | Picasso, Draft | |
| 23 | Sep | Code Review | Dependency Inversion Principle | |
| 25 | Sep | Design Patterns | Design Patterns | |
| 28 | Sep | Team Review | Extreme Programming | |
| 30 | Sep | Design Patterns Revisited | Foundation Patterns | Picasso, Final |
| 2 | Oct | No Class - Out of Town | Picasso, Analysis | |
| 5 | Oct | No Class - Fall Break | ||
| 7 | Oct | Java I/O | I/O Streams | |
| 9 | Oct | Web Sites and HTML Parsing | Interface Segregation Principle | DataViz, Team Web Page |
| 12 | Oct | API Design | Josh Bloch on API Design | DataViz, API, due Tue |
| 14 | Oct | API Review | ||
| 16 | Oct | Guest Speaker: Cy Khormaee | DataViz API, due Sat | |
| 19 | Oct | API Presentations | Exploit Online Data Sources | |
| 21 | Oct | Code Review | Big Ball of Mud | |
| 23 | Oct | Final Project | DataViz, Final | |
| 26 | Oct | Animation | Custom Animation | DataViz, Analysis VOOGA, Team Web Page |
| 28 | Oct | Team Meetings | Designing a Document Editor OO Software Development | |
| 30 | Oct | Designing Programs | What is Software Design? SLogo Design Exercise | |
| 2 | Nov | Interaction | Using Key Bindings | VOOGA, Design Draft |
| 4 | Nov | Design Review | Introducing OO Frameworks | |
| 6 | Nov | Data Driven Design | Technical Introduction to XML | |
| 9 | Nov | Project Presentations | VOOGA, Initial Program | |
| 11 | Nov | Code Review | Use of Heuristics in Design | |
| 13 | Nov | Guest Speaker: Lars Bishop | Debugging Lessons | |
| 16 | Nov | Collisions and Design | Collision Detection Physics Engine Issues | VOOGA, Design Revised |
| 18 | Nov | Design Review | Observer | VOOGA, Level Editor, due Thu |
| 20 | Nov | Networking Framework | Custom Networking | |
| 23 | Nov | Project Presentations | VOOGA, Revised Program | |
| 25 | Nov | No Class - Thanksgiving | ||
| 27 | Nov | No Class - Thanksgiving | ||
| 30 | Nov | Team Meetings | ||
| 2 | Dec | Course Review | ||
| 4 | Dec | The Profession | ACM Code of Ethics IEEE Code of Ethics Ten Commandments of Computer Ethics | VOOGA, Full Draft |
| 11 | Dec | Final Demos (2-5pm) | VOOGA, Final VOOGA, Analysis, due Sun. | |