Harvey Mudd College
Computer Science
Fall 2003

CS121: Software Development

Lecture:

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

Professor:

Z Sweedyk

2341 Olin, x78360

Mail: z@cs.hmc.edu

Office hours: MTW@ 2:45-4:00  (effective 9/8/03)

Course mailing list:

cs-121-l@hmc.edu

Tutors/Graders:

Ed Heaney: eheaney@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’ll study the stages of development from requirements specification and analysis through design, implementation, and testing.  You’ll study ways to organize and manage these stages.  You’ll also learn principles of software design including design patterns and anti-patterns.  You’ll 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 of your team’s choosing.

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.    Games are challenging projects.

Examples of games from previous semester can be found here.

Requirements and Grading

Grades are based on class participation (bump factor), individual homework and quizzes (10%), 2 midterm exams (10% each), and the three course projects: arcade game (15%), miniature golf (25%), and final project (30%).

Textbook

Required:  Software Design by David Budgen.  The text is available for $60.88 (includes tax) in the computer science office, 1258 Olin.

 

Student's work

wiki

 

Links: Exam I

Tentative Schedule

 

Date

Topic

Assignment

9/2/03

Intro

  Course Overview

  A Brief History of Computer Games

Reading Assigned:

    Budgeon Ch 1,2,3

    No Silver Bullet

9/4/03

Life Cycle Models

Game Review

Intro Survey

Project 1:  Concept Proposal

 9/9/03

Methodology

   RUP

   XP

Use Cases

Reading Assigned:

     Budgeon Ch 4, 5

Game Concept Assessment

POP Intro

 

9/11/03

Risk Analysis

9/16/03

UML Intro

Reading Assigned:

   Budgeon Ch 6,7,8

Project 1: Design Document incl. Use Cases/Risk Analysis Due

Pop Lab Due

9/18/03

Testing

 

9/23/03

Intro to OO Principles

Reading Assigned:

    Budgeon Ch 9, 10, 11, 12

Project 1: Prototype due 

9/25/03

From domain to design

 

9/30/03

Arcade Game discussion

 

 

10/2/03

Arcade Game demo

 

10/7/03

Design principles in action

Reading Assigned:

     Budgeon Ch 16, 17

10/9/03

Midterm exam

 

10/14/03

Design Patterns I

Project 2 Schedule

Test Harness

Project 2:  Class Diagrams, Dynamics, Collision Detection prototype

10/16/03

Design Patterns II

Test Harness project

Collision Detection Prototype

10/21/03

Fall Break

 

10/23/03

Patterns III

Project 2: Schedule

10/28/03

Patterns IV

Project 2:  Prototype II

10/30/03

Patterns V

 

11/4/03

Patterns VI

Project 2: Miniature Golf

11/6/03

Team meetings

 

11/11/03

Mini-golf demo

Project 3: Proposal

11/13/03

Student Presentations

OpenGL Tutorial
Project 3 guidelines

11/18/03

Student Presentations

 

11/20/03

Student Presentations

 

11/25/03

Student Presentations

 

11/27/03

Thanksgiving

 

12/2/03

Student Presentations

 

12/4/03

Student Presentations

 

12/9/03

Student Presentations

 

12/11/03

Final Project Demo

 

 

 

 

 

Last modified September 2, 2003