Harvey Mudd College
Computer Science

CS121: Software Development

Fall 2011

Lecture:

T&Th 9:35-10:50, Sprague Learning Studio
T&Th 1:15-2:30, Sprague Learning Studio

Lab:

T 11:00-12:00, Sprague Learning Studio

Professors:

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

Mike Erlinger, 1258A Olin, x18912
Mail: mike@cs.hmc.edu
Office hours: W 1:15-2:30

Course mailing list:

cs-121-l@hmc.edu

Tutors/Graders:

Eric Alshire Teams: CA-Landscape, MI-Settlement
Chris Beavers Teams: CA-Thermo, CA-Math
Daniel Furlong Teams: MI-History2, HI-ChemReaction
Jay Jonsson Teams: CA-Sun, MI-EconPolicy
Leon Liu Teams: HI-ChemReaction,CA-Landscape
Adam Novak Teams: CA-Sund, MI-History1
Emma Taborsky Teams: CA-Math, MI-Settlement
Carl Walsh Teams: CA-Thermo, MI-EconPolicy
Yoyo Teams: MI-History1, MI-History2

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.

You will work in a team to build an educational game for students at Hillside Middle School in Kalamazoo, MI. You will interact with three teachers at Hillside, Heidi Ellis, Greg Orr, and Josh Yavor, as well as several classrooms of 6th and 7th grade social science students. Artifacts you produce will be critiqued by Hillside students on a bi-weekly basis. The game you develop will be further polished over the summer by HMC research students and eventually released for use by social science teachers across the country.

Grades

Your grade will depend on your semester-long design/development project as well as a midterm exam, quizzes, and class participation:
Game project 80%
Midterm exam 10%
Daily quizzes 5%
Class participation 5%

Textbooks

Code Complete by McConnell
Head First Object-Oriented Analysis and Design by McLaughlin, Pollice, and West

Schedule/Calendar