Harvey Mudd College
Computer Science

CS121: Software Development

Spring 2013

Lecture:

T&Th 2:45-4:00, Sprague Learning Studio

Lab:

T 4:15-5:30, Sprague Learning Studio

Professor:

Z Sweedyk, 1249 Olin, x78360
Mail: z@cs.hmc.edu
Office hours: M & F 1-3 and by appointment

Course mailing list:

cs-121-l@hmc.edu

Tutors/Graders:

Michael Culhane
Alistair Dobke
Bridgette Eichelberger
Jane Hoffswell
Mark Mann
Will Newbury
Amelia Nybakke

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.

Grades

Your grade will depend on the two class projects and on class participation:
Sudoku 30%
Educational Game 60%
Class Participation 10%

Team tracs