The exact order and details of these topics is subject to change during the semester based on the pace needed, but we will try to set them at least two weeks in advance. As much as possible, materials discussed in class will be posted here in case you miss class.
Readings should be completed before the day on which they are listed.
| Date | Topic | Reading | Assignment Due | |
|---|---|---|---|---|
| 13 | Jan | Course Overview | ||
| 15 | Jan | Refactoring to Design | OO in One Sentence Open Closed Principle Code Smells | |
| 18 | Jan | No Class - MLK, Jr. Day | ||
| 20 | Jan | Testing and Debugging | Test Infected | Introductions Bins: Refactoring (Thu) |
| 22 | Jan | Code Review | Bins: Testing (Sun) | |
| 25 | Jan | Testing Review | Bins: Analysis (Tue) | |
| 27 | Jan | Inheritance | Inheritance Commonality Analysis Liskov Substitution Principle | |
| 29 | Jan | Defensive Programming | Enumerated Types Guide to Versioning Systems | Arithmetica: Refactoring (Sat) |
| 1 | Feb | Code Review | ||
| 3 | Feb | Design Patterns | Design Patterns | |
| 5 | Feb | No Class -- Snowed Out | Arithmetica: Final (Sat) | |
| 8 | Feb | Design Review | Arithmetica: Analysis | |
| 10 | Feb | GUIs and Events | User Interfaces that Swing Using Swing Components | |
| 12 | Feb | Guest: Andrew Lenards Software Engineer, iPlant Collaborative | Loosely Coupled Thoughts | Jotto: Refactoring (Sat) |
| 15 | Feb | GUI Review | ||
| 17 | Feb | GUI Design
Guests: Dean Chen and Daphne Ezer |
Writing Listeners Interface Segregation Principle | |
| 19 | Feb | No Class - Doctor Appointment | The Reflection API | Jotto: Final Jotto: Analysis (Sat) |
| 22 | Feb | Team Meetings | PICASSA: Teams (in-class) | |
| 24 | Feb | Project Planning | Extreme Programming | |
| 26 | Feb | Design Patterns Revisited | Foundation Patterns Dependency Inversion Principle | |
| 1 | Mar | Design Presentations | PICASSA: Design (in-class) | |
| 3 | Mar | Design Presentations | ||
| 5 | Mar | No Class - Spring Break | PICASSA: Final | |
| 8 | Mar | No Class - Spring Break | ||
| 10 | Mar | No Class - Spring Break | ||
| 12 | Mar | No Class - Spring Break | ||
| 15 | Mar | Documentation Review | PICASSA: Analysis (Tue) | |
| 17 | Mar | API Design | Josh Bloch on API Design | |
| 19 | Mar | Web Sites and HTML Parsing | I/O Streams | |
| 22 | Mar | API Presentations | GEDIVA: Design (in-class) | |
| 24 | Mar | Team Meetings | ||
| 26 | Mar | Final Project | ||
| 29 | Mar | What is a Game Engine? | The Game Loop | GEDIVA: Final |
| 31 | Mar | Game Engine Design Discussion | Introducing OO Frameworks | GEDIVA: Analysis |
| 2 | Apr | Animation and Interaction | Custom Animation Using Key Bindings | VOOGA Project Choice |
| 5 | Apr | Team Meetings | VOOGA Priorities (Tue) | |
| 7 | Apr | Guest: Tom Carbone Technical Director, Florida Interactive Entertainment Academy | VOOGA API (Thu) | |
| 9 | Apr | VOOGA API Review | OO Software Development | |
| 12 | Apr | VOOGA API Update | VOOGA Draft | |
| 14 | Apr | Guest: Mark McCahill Systems Architect at Duke's OIT and on OpenCobalt | VOOGA API (Thu) | |
| 16 | Apr | VOOGA API Review | Use of Heuristics in Design | |
| 19 | Apr | VOOGA API Update | VOOGA Draft | |
| 21 | Apr | Team Meetings | VOOGA API (Thu) | |
| 23 | Apr | VOOGA API Review | Designing a Document Editor | |
| 26 | Apr | Guest: Lars Bishop Mobile Developer Technologies Engineer, NVIDIA | VOOGA Draft | |
| 28 | Apr | The Profession | ACM Code of Ethics IEEE Code of Ethics Ten Commandments of Computer Ethics | VOOGA API (Thu) |
| 30 | Apr | No Class - Reading Period | ||
| 3 | May | Final Demos, 7-10pm | VOOGA Final | |