Syllabus - Software Design Project - Spring 2006

Week 1 - The Software Design Process

April 5:
Course overview, overview of game design process

April 7 :
Design as a problem solving process
Due: Review of "The Nature of the Design Process"
Due: Team selections

Week 2 - Tablets, Introduction to Design Patterns

April 10:
In-class presentation on use of OneNote, headsets
Design tradeoff spaces
Game concept documents
Use of the stylus in creating core game mechanics

April 12:
Elements of the design process, choosing design strategies
Due: Review of Chapter 5 ("The Design Process Disintegrated") of Design Methods
Due: Game (or Project) Concept document

April 14:
Design patterns introduction
Due: Review of Chapter 1 ("Introduction") of Design Patterns

Week 3 - C#, Design Patterns

April 17:
Design patterns use scenario
Read: Chapter 2 ("A Case Study: Designing a Document Editor") of Design Patterns

April 19:
Survey of design patterns (1)
Due: Review of Abstract Factory (87), Factory Method (107), Adapter (139) from Design Patterns
Due: Game Design document

April 21:
In-class presentations of detailed game designs

Week 4 - Software Design Patterns

April 24:
C# overview

April 26:
Survey of design patterns (2)
Due: Review of Observer (293), Composite (163), Decorator (175) from Design Patterns

April 28:
No class, work on technical design documents

Week 5 - Software Design Patterns

May 1:
Survey of design patterns (3)
Due: Review of Strategy (315), Template Method (325), Chain of Responsibility (223) from Design Patterns

May 3:
Survey of design patterns (4)
Due: Review of Singleton (127), Facade (185), Flyweight (195) from Design Patterns

May 5:
Survey of design patterns (5)
Due:
Review of Interpreter (243), Visitor (331), Memento (283) from Design Patterns

Week 6 - Design Review

May 8:
In-class review of project design
Due: Initial technical design document

May 10:
In-class review of project design

May 12:
In-class review of project design

Week 7 - Design Review, Micropatterns

May 15:
In-class review of revised project designs
Due: Revised technical design document

May 17:
In-class review of revised project designs

May 19:
Micropatterns

Week 8 - Design for Security and Trust

May 22:
Micropatterns

May 24:
Security in the development lifecycle
Read: Review of The Trustworthy Computing Development Lifecycle

May 26:
Buffer overflow
Read: Chapter 7, "Buffer Overflows", in Building Secure Software, John Viega, Gary McGraw, 2002. Read only to p. 153.

Week 9 - Refactoring

May 29:
No class. Memorial Day.

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

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

Week 10 - Refactoring, Project Demos

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

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

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

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