| Date | Topic | Reading | Classwork | Assignment Due | |
|---|---|---|---|---|---|
| 25 | Aug | Course Overview Introduction | Survey | ||
| 27 | Aug | Design in the Small | OO in One Sentence Open Closed Principle Code Smells | Bins | |
| 29 | Aug | Eclipse Unit Testing | Test Infected | Bins | |
| 1 | Sep | Inheritance Design | Inheritance | Lendables | Bins |
| 3 | Sep | Code Review | Introductions | ||
| 5 | Sep | Catch Up | Liskov Substitution Principle | Roulette | |
| 8 | Sep | GUIs and Events | User Interfaces that Swing | Events | Roulette |
| 10 | Sep | Code Review | Using Swing Components | ||
| 12 | Sep | GUI Design | Single Responsibility Principle | Jotto | |
| 15 | Sep | Event Driven Programming | Writing Listeners | Roulette 2.0 | |
| 17 | Sep | Guest Speaker: Aaron Patzer Founder of Mint.com | Observer | Jotto | |
| 19 | Sep | Reflection | The Reflection API | Jotto 2.0 | |
| 22 | Sep | Code Review | Dependency Inversion Principle | ||
| 24 | Sep | Design Patterns | Design Patterns | ||
| 26 | Sep | Generics | Generics | NanoGoogle 0.1 | |
| 29 | Sep | Team Meetings | NanoGoogle review | ||
| 1 | Oct | Code Review | |||
| 3 | Oct | Java IO | Basic I/O | ||
| 6 | Oct | Code Review | Interface Segregation Principle | NanoGoogle 1.0 | |
| 8 | Oct | Teams Review | Extreme Programming | ||
| 10 | Oct | Patterns Revisited | Foundation Patterns | NanoGoogle 2.0 Jotto 3.0 | |
| 13 | Oct | Fall Break - No Class | |||
| 15 | Oct | Introduction to Python | Python for Java Programmers | Bins | |
| 17 | Oct | Scripting | Scripting | Roulette | NanoGoogle analysis |
| 20 | Oct | Python Lab | Python is Not Java | ||
| 22 | Oct | Python Lab | |||
| 24 | Oct | Python Lab | Tag Cloud | ||
| 27 | Oct | Team Meetings | OO Software Development | ||
| 29 | Oct | Design Review | Josh Bloch on Design | Fennec 1 | |
| 31 | Oct | Integrating Java and Python | Working with Jython and Java | ||
| 3 | Nov | Interface Face-Off | Fennec 2, 3 | ||
| 5 | Nov | Designing with Patterns | Designing a Document Editor | ||
| 7 | Nov | Team Meetings | Writing Listeners | ||
| 10 | Nov | Designing Programs | UML Quick Guide | Scooter | Fennec 4 |
| 12 | Nov | Animation Basics | Introducing OO Frameworks | VOOGA 1 | |
| 14 | Nov | Networking Framework | Custom Networking | Chat | Fennec analysis |
| 17 | Nov | Animation Framework | Animation Tutorial | Bounce | VOOGA 2 |
| 19 | Nov | Interaction | Using Key Bindings | ||
| 21 | Nov | Data Driven Design | Technical Introduction to XML | VOOGA 3 | |
| 24 | Nov | Progress Demos | VOOGA 4 | ||
| 26 | Nov | Thanksgiving - No Class | |||
| 28 | Nov | Thanksgiving - No Class | |||
| 1 | Dec | Code Review | |||
| 3 | Dec | Path to the Profession | ACM Code of Ethics IEEE Code of Ethics Ten Commandments of Computer Ethics | ||
| 5 | Dec | Course Critique | VOOGA 5 | ||
| 11 | Dec | Final Demos (2-5pm) | VOOGA 6, 7 | ||