Syllabus - Software Design Project - Spring 2008

Week 1 - Course Overview, C# Language

March 31:
Course overview, domain independent vs domain dependent design knowledge

April 2:
Introduction to XNA Game Studio Express, C# language overview

April 4:
C# language overview: properties, arrays, loops, lists
Due: Team selections

Week 2 - Introduction to XNA Game Studio Express

April 7
Drawing 2D sprites, 2D textures, and use of the SpriteBatch in XNA Game Studio Express

April 9
Handling game controller, keyboard, and mouse input in XNA Game Studio Express
Due: Game concept document

April 11
Tiled scrolling levels in XNA Game Studio Express

Week 3 - Structural Design Patterns

April 14
Decorator, proxy, and bridge patterns
Read: Chapter 2 (Structural Patterns: Decorator, Proxy, and Bridge) in C# 3.0 Design Patterns

April 16
No class, work on game design.

April 18
No class, begin work on technical design.

Week 4 - Behavioral Design Patterns

April 21
Strategy and state patterns
Read: Chapter 7 (Behavioral patterns: Strategy, State, and Template Method) in C# 3.0 Design Patterns
Due: Game design document

April 23
Command, template method, and chain of responsibility patterns
Read: Chapter 8 (Behavioral Patterns: Chain of Responsibility and Command) in C# 3.0 Design Patterns

April 25
Iterator and observer patterns
Read: Chapter 9 (Behavioral Patterns: Iterator, Mediator, and Observer) in C# 3.0 Design Patterns

Week 5 - Behavioral Design Patterns, Design Reviews

April 28
Visitor and interpreter patterns
Read: Chapter 10 (Behavioral Patterns: Visitor, Interpreter, and Memento) in C# 3.0 Design Patterns

April 30
In-class design review
Due: Initial submission of detailed design document

May 1
In-class design review

Week 6 - Exam, Design Review

May 5
Exam, all design patterns covered to date

May 7
Review of revised designs
Due: Project designs revised based on feedback from initial review

May 9
No class, work on implementation

Week 7 - Structural Patterns (cont'd)

May 12
No class, work on implementation

May 14
No class, work on implementation

May 16
Composite and flyweight patterns
Read: Chapter 3 (Structural Patterns: Composite and Flyweight) in C# 3.0 Design Patterns

Week 8 - Structural Patterns (cont'd), Creational Patterns

May 19
Adapter and facade patterns
Read: Chapter 4 (Structural Patterns: Adapter and Facade) in C# 3.0 Design Patterns

May 21
Prototype, Factory Method, Singleton
Read: Chapter 5 (Creational Patterns: Prototype, Factory Method, and Singleton) in C# 3.0 Design Patterns

May 23
Abstract Factory and Builder
Read: Chapter 3 (Creational Patterns: Abstract Factory and Builder) in C# 3.0 Design Patterns

Week 9 - Refactoring

May 26
No class, academic holiday

May 28
Exam 2, covering design patterns since first exam

May 30
Introduction to refactoring.
Read: Chapter 1, in Refactoring: Improving the Design of Existing Code, Martin Fowler, 1999.

Week 10 - Refactoring (cont'd)

June 2:
Refactoring Principles, Code Smells
Read: Chapter 2, in Refactoring: Improving the Design of Existing Code, Martin Fowler, 1999.
Read: Chapter 3, in Refactoring: Improving the Design of Existing Code, Martin Fowler, 1999.

June 4:
Refactoring: Composing Methods
Read: Chapter 5 in Refactoring: Improving the Design of Existing Code, Martin Fowler, 1999.

June 6:
Refactoring: Composing Methods
Read: Chapter 6 in Refactoring: Improving the Design of Existing Code, Martin Fowler, 1999.

Final Exam - Project Demos

TBD
Final project demonstrations
Due: Project demonstration, presentation on what worked, and did not work in the design.

June 13:
Due: Project users manual, final code submission (checked in to Subversion).