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.
Topic | Reading | Day | Assignment |
---|---|---|---|
Refactoring to Design |
OO in One Sentence Open Closed Principle Code Smells |
Aug 28 | |
Aug 29 |
Overview Out: Bins |
||
Aug 30 | Due: Bins, Part 1 | ||
Aug 31 | Refactoring, the Basics | ||
Sep 01 | |||
Sep 02 | Refactoring, Abstraction Out: PICASSA |
||
Sep 03 | |||
Inheritance |
Inheritance Commonality Analysis Liskov Substitution Principle |
Sep 04 | Due: Bins, Part 2 |
Sep 05 | Inheritance | ||
Sep 06 | |||
Sep 07 |
Refactoring Practice, Roulette Due: PICASSA, Part 1 Draft |
||
Sep 08 | |||
Sep 09 | Factory Design Discussion | ||
Sep 10 | |||
Design Patterns | Design Patterns Single Responsibility Principle |
Sep 11 | Due: PICASSA, Part 1 Final |
Sep 12 | Introduction to Patterns | ||
Sep 13 | |||
Sep 14 | Guest: Aaron Patzer, Mint.com |
||
Sep 15 | Due: PICASSA, Part 2 Draft | ||
Sep 16 | Code Review, The Basics | ||
Sep 17 | |||
Design Heuristics and Teamwork |
Test Infected Getters and Setters, Extending Guide to Versioning Systems |
Sep 18 | |
Sep 19 | Code Review, Tell Don't Ask | ||
Sep 20 | |||
Sep 21 | Testing and Debugging | ||
Sep 22 | |||
Sep 23 | Guest: Ryan Echternacht, Capitalogix Out: TIVOO |
||
Sep 24 | |||
APIs | API Design Framework Design Guidelines Module Decomposition Criteria |
Sep 25 | Due: PICASSA, Final |
Sep 26 | Designing APIs | ||
Sep 27 | |||
Sep 28 | TIVOO Technicalities | ||
Sep 29 | Due: TIVOO, TA Meeting | ||
Sep 30 | Team Meetings | ||
Oct 01 | |||
GUIs |
User Interfaces that Swing Using Swing Components Isolating Locale-Specific Data Dependency Inversion Principle |
Oct 02 | |
Oct 03 | GUIs and Events Due: TIVOO, Part 1 |
||
Oct 04 | |||
Oct 05 | Code Review | ||
Oct 06 | |||
Oct 07 | Secrets Revealed Due: TIVOO, TA Meeting |
||
Oct 08 | Fall Break | ||
Designing for Reusability |
Reuse and Pluggable Design Interface Segregation Principle Debug It! |
Oct 09 | Fall Break |
Oct 10 | Fall Break | ||
Oct 11 | Fall Break | ||
Oct 12 | Designing Reusable Components | ||
Oct 13 | Due: TIVOO, Part 2 | ||
Oct 14 | Debugging and Exceptions | ||
Oct 15 | |||
System-wide Design |
Model-View-Controller: General Model-View-Controller: Design Pattern Stable Abstractions Principle |
Oct 16 | |
Oct 17 | Designing with MVC | ||
Oct 18 | Due: TIVOO, TA Meeting | ||
Oct 19 | |||
Oct 20 | Due: TIVOO, Final Code | ||
Oct 21 | Team Review | ||
Oct 22 | |||
Making Games Flexible |
The Game Loop Using Keys |
Oct 23 | Due: TIVOO, Program Documentation |
Oct 24 | Guest:
Tom Carbone, Florida Interactive Entertainment Academy |
||
Oct 25 | |||
Oct 26 | TIVOO API Presentations | ||
Oct 27 | |||
Oct 28 | Game Development | ||
Oct 29 | |||
Advanced Java |
Design to Accommodate Change Reflection Generics Annotations Exceptions Designing with Interfaces Enumerated Types |
Oct 30 | |
Oct 31 | Data Driven Design, Reflection Due: Build-a-Game Demo |
||
Nov 01 | |||
Nov 02 | Generics, Annotations, Exceptions | ||
Nov 03 | |||
Nov 04 | Organization: Interfaces, Classes, Enums | ||
Nov 05 | |||
Designing the Project |
Introducing OO Frameworks Use of Heuristics in Design Designing a Document Editor |
Nov 06 | Due: Build-a-Game Final |
Nov 07 | Issues Designing a Game Engine Due: Build-a-Game Analysis |
||
Nov 08 | |||
Nov 09 | Team Design Meetings Due: VOOGA Individual API |
||
Nov 10 | |||
Nov 11 | Collective Team Design Meetings Due: VOOGA Team API |
||
Nov 12 | |||
From Principles to Patterns |
Foundation Patterns | Nov 13 | |
Nov 14 | VOOGA API Presentations | ||
Nov 15 | |||
Nov 16 | Design Patterns Revisited | ||
Nov 17 | |||
Nov 18 | Team Meetings | ||
Nov 19 | |||
Open Source Software |
Free Software Definition Cathedral and Bazaar Homesteading the Noosphere |
Nov 20 | |
Nov 21 | VOOGA Demos | ||
Nov 22 | |||
Nov 23 | Thanksgiving Break | ||
Nov 24 | Thanksgiving Break | ||
Nov 25 | Thanksgiving Break | ||
Nov 26 | Thanksgiving Break | ||
Evaluating Design | Nov 27 | Thanksgiving Break | |
Nov 28 | Build-a-Game --- in class! | ||
Nov 29 | |||
Nov 30 | Team Meetings Due: VOOGA Individual Revised API |
||
Dec 01 | |||
Dec 02 | VOOGA API Presentations | ||
Dec 03 | |||
Looking Forward | ACM Code of Ethics IEEE Code of Ethics Ten Commandments of Computer Ethics |
Dec 04 | |
Dec 05 | Course Evaluation | ||
Dec 06 | |||
Dec 07 | When Design Goes Wrong | ||
Dec 08 | |||
Dec 09 | The Future | ||
Dec 10 | Reading Period | ||
Dec 11 | Reading Period | ||
Dec 12 | Reading Period | ||
Dec 13 | |||
Dec 14 | |||
Dec 15 | |||
Dec 16 | |||
Dec 17 | Final Project Demo, 2-5pm |