| Date | Topic | Reading due | Classwork | Assignment Due | |
|---|---|---|---|---|---|
| 7 | Jan | Course Overview | Survey Bins | ||
| 9 | Jan | Design in the Small | OO in One Sentence Open Closed Principle Code Smells | ||
| 12 | Jan | Unit Testing | Test Infected | Introductions | |
| 14 | Jan | Guest: Nedyalko Borisov Lessons from the Front Lines | Bins | ||
| 16 | Jan | Code Review | |||
| 19 | Jan | MLK, Jr. Day - No Class | |||
| 21 | Jan | Introduction to Python | Python for Java Programmers Scripting | Bins | Tag Cloud |
| 23 | Jan | Scripting | Python is Not Java | ||
| 26 | Jan | Team Meetings | Single Responsibility Principle Liskov Substitution Principle | Life-Long Learning Choice NanoGoogle #1 | |
| 28 | Jan | Functional Programming | Code Like a Pythonista: Idiomatic Python | ||
| 30 | Jan | Reflection | The Reflection API | ||
| 2 | Feb | GUIs and Events | User Interfaces that Swing Using Swing Components | NanoGoogle #2 | |
| 4 | Feb | Code Review | |||
| 6 | Feb | Levels of Design | |||
| 9 | Feb | Teams Review | Extreme Programming | NanoGoogle #3 | |
| 11 | Feb | Course Review | NanoGoogle #4 | ||
| 13 | Feb | Code Review | |||
| 16 | Feb | Design Patterns | Design Patterns | ||
| 18 | Feb | Peer Code Review | NanoGoogle Review | ||
| 20 | Feb | GUI Design | Observer Writing Listeners | ||
| 23 | Feb | Java and Python Together | Working with Jython and Java | ||
| 25 | Feb | Exceptional Programming | Exceptional Java Series | ||
| 27 | Feb | Design Patterns Revisted | Foundation Patterns | Code Review Request | |
| 2 | Mar | Snow! - No Class | |||
| 4 | Mar | Team Meetings | |||
| 6 | Mar | Out of Town - No Class | NanoGoogle Revision | ||
| 9 | Mar | Spring Break - No Class | |||
| 11 | Mar | Spring Break - No Class | |||
| 13 | Mar | Spring Break - No Class | |||
| 16 | Mar | Animation Basics | Animation Tutorial | Bounce | |
| 18 | Mar | Code Review | Screen Savers | Flocks teams due | |
| 20 | Mar | Distributed Design | Josh Bloch on Design | Flocks website due | |
| 23 | Mar | Framework Design | Introducing OO Frameworks | Flocks initial version | |
| 25 | Mar | Code Review | |||
| 27 | Mar | Designing with Patterns | Designing a Document Editor UML Quick Guide | Flocks final version | |
| 30 | Mar | Spirited Debate | |||
| 1 | Apr | Data Driven Design | Technical Introduction to XML | Springs | |
| 3 | Apr | High-Level Design | SLogo | Springs Due | |
| 6 | Apr | Team Meetings | OO Software Development | VOOGA website due | |
| 8 | Apr | Book Presentations | |||
| 10 | Apr | What Is A Game? | VOOGA design v1.0 due | ||
| 13 | Apr | Networking | Custom Networking | ||
| 15 | Apr | Progress Demos | VOOGA code v1.0 due | ||
| 17 | Apr | Progress Demos | VOOGA design v2.0 due | ||
| 20 | Apr | Course Review | |||
| 22 | Apr | Path to the Profession | ACM Code of Ethics IEEE Code of Ethics Ten Commandments of Computer Ethics | VOOGA code v2.0 due | |
| 2 | May | VOOGA final version due | |||