Harvey Mudd College
Computer Science

CS121: Software Development

Lecture:

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

Professor:

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

Course mailing list:

cs-121-l@hmc.edu

Course wiki:

TBA

Tutors/Graders:

Hannah Hoersting
Asa Ellet
Kevin Oelze

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 an educational computer game.

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.

Game Requirements

Grades

Your grade will depend on your semester-long design/development project (prototype, alpha release, and final release), as well as two exams and class participation:
Project prototype: 15%
Project alpha release: 20%
Final release: 20%
Midterm exam: 15%
Final exam: 20%
Class participation: 10%

Textbooks

Design Patterns by Erich Gamma etal., Addison-Wesley

Schedule

Date Due Topic Links Assignment
Tues
9/2/04
  Introduction    
Thur
9/4/08
  Introduction to Software Development (ppt), (pdf)  
Tues
9/09/08
  Software Methods (ppt), (pdf)
UML Intro(ppt), (pdf)
   
Thurs
9/11/08
  GTGC Domain Analysis/Use Cases Grand Theft Go Cart Prototype 1
Tues
9/16/08
Paper Prototype Playtesting and feedback
Goal analysis(ppt), (pdf)
Keller:Goal Driven Project Management  
Thur
9/18/08
  Planning Prototype 1    
Tues
9/23/08
Prototype 1 Prototype 1 Presentations
Playtesting and feedback
OO Design Intro (ppt), (pdf)
   
Thur
9/25/08
  Design Intro (ppt), (pdf)
CRC cards (ppt), (pdf)
  Prototype2-Assignment1
Tues
9/30/08
Milestone Plan
Prototype 2 Design
Prototype 2 Presentations
Sequence Diagrams (ppt), (pdf)
   
Thur
10/2/08
  Class Cancelled (Sequence Diagrams)    
Tues
10/7/08
  Design Principles cont.    
Thur
10/9/08
  Design Principles cont.    
Tues
10/14/08
Prototype 2 Prototype Presentation/Demo P2 Evaluation  
Thur
10/16/08
  Design Patterns cont.   alpha release
Tues
10/21/08
  Fall break    
Thur
10/23/08
  Alpha Release    
Tues
10/28/08
  Midterm Exam    
Thur
10/30/08
  Alpha plan discussion    
Tues
11/4/08
  Trac/wiki critique Critique form  
Thurs
11/6/08
  Testing    
Tues
11/11/08
  Documents/Presentations Alpha Evaluation  
Thur
11/13/08
  In-class playtesting    
Tues
11/18/08
  Alpha Release Presentation    
Thur
11/20/08
  Alpha Release Presentation cont.   V1.0 Release
Tues
11/25/08
V1.0 Goals and Schedule Discussion of Goals
Design Patterns cont.
   
Thur
11/27/08
  Thanksgiving    
Tues
12/2/08
  Design Patterns wrap up    
Thur
12/4/08
  Play testing
   
Tues
12/9/08
V1.0 Final Presentations    
Thur
12/11/08
  Final Presentations