Harvey Mudd College
Computer Science
Fall 2004

CS121: Software Development

Lecture:

T&Th 1:15-2:30, LAC

Professor:

Z Sweedyk, 2341 Olin, x78360
Mail: z@cs.hmc.edu
Office hours: see my schedule

Course mailing list:

cs-121-l@hmc.edu

Course wiki:

http://www.cs.hmc.edu/courses/2004/fall/cs121/wiki/bin/view/Main/WebHome

Tutors/Graders:

Brian Bentow: bbentow@cs.hmc.edu
Janna DeVries: jdevries@cs.hmc.edu
John Dodge: jdodge@cs.hmc.edu

What This Course Is About

The objective of this course is to introduce you to the theory and practice of software design and development. You will study the stages of development from requirements specification and analysis through design, implementation, and testing. You will study ways to organize and manage these stages. You will also learn principles of software design including design patterns and anti-patterns. You will apply these principles and techniques in the design and development of three computer games, a 2D arcade game, a 3D miniature golf game, and a final game designed by your team.

We focus on games for several reasons. Games are fun projects and most students have a strong sense of what constitutes a good product. More importantly, games require solutions to a broad range of problems that rarely show up in a single software project. Games are real-time systems with stringent performance constraints. They require good user interface design. They typically use computer graphics and sound. Games can draw on other areas of computer science as well, such as artificial intelligence, computer networking, and computer art. And they often involve the modeling and simulation of physical systems, which requires concepts from mathematics, engineering, and physics.

Examples of games from previous semester can be found here.

Grades

Class participation 5%
Individual assignments     5%
Team exercises 10%
Arcade game 20%
Miniature golf game 30%
Final project 30%

Textbooks

UML Distilled (3rd Ed.) by Martin Fowler, Addison-Wesley
Design Patterns by Erich Gamma etal., Addison-Wesley

Links

NeHe site (game development)
Design Patterns implemented

Schedule

Date Topic Links Assignment Assignment Due
Tues
8/31/04
Introduction (ppt), (pdf)
Thur
9/2/04
Tues
9/7/04
UML Intro(ppt), (pdf)
Thur
9/9/04
Concept Presentations Presentation Evaluations Project 1: Prototype
Tues
9/14/04
Design Intro (ppt), (pdf)      
Thur
9/16/04
Team meetings   Project 1: Version 1 Project 1:Prototype
Tues
9/21/04
Domain and Design Models (ppt) (pdf)      
Thur
9/23/04
Design Models cont. (ppt) (pdf)   Project 1: Documentation Project 1: Code freeze
Tues
9/28/04
Project 1 Presentations   Project 1: Version 1
Thur
9/30/04
Project 2 Overview  
Tues
10/5/04
  • Design Heuristics cont.
  • Work Organization(ppt), (pdf)
    Larman & Basili abstract
Thur
10/7/04
  • Prototype demo
  • Standardization
  Project 2: Prototype I
Tues
10/12/04
     
Thur
10/14/04
Prototye demos    
Tues
10/19/04
Fall break      
Thur
10/21/04
Project 2 Prototype II demo Project 2: Version 1
Tues
10/26/04
Design Patterns I (ppt), (pdf)
  • Singleton
  • Facade
  • Bridge
     
Thur
10/28/04
Design Patterns II (ppt), (pdf)
  • Strategy
  • Adapter
  • Composite
  Project 2: Documentation Project 2: Version 1
Tues
11/2/04
Project 2: Presentations      
Thur
11/4/04
Project 3 Overview   Project 2 Evaluations  
Tues
11/9/04
Design Patterns III (ppt), (pdf)
  • State
  • Command
    Project 2 Evaluations
Thur
11/11/04
Project 3 Concept/Plan Presentations      
Tues
11/16/04
Design Patterns IV      
Thur
11/18/04
Progress Reports      
Tues
11/23/04
Presentations      
Thur
11/25/04
Thanksgiving break      
Tues
11/30/04
Presentations      
Thur
12/02/04
Progress reports      
Tues
12/6/04
Presentations      
Thur
12/8/04
Progress Reports      
Fri
12/17/04
Final presentation