Software Development -- CS 121


Syllabus Fall 2012

Professor: Mike Erlinger
Office: Library, 2nd floor cube
Phone: 18912
Mail: mike@cs.hmc.edu
Office hours: TBD

Lecture Times:

  • Tuesday/Thursday
    2:45-4:00
    Platt Conference Room

Lab Times:

  • Tuesday,
    4:15-5:30
    Platt Conference Room

Grutors:

Course mailing list: cs-121-2-l@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. We will study the stages of development from requirements specification and analysis through design, implementation, and testing. We will study ways to organize and manage these stages. We will also learn principles of software design including design patterns and anti-patterns. We 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.
    Games require good user interface design.
    Games typically use computer graphics and sound.
    Games can draw on many areas of computer science, e.g., artificial intelligence, computer networking, computer art, etc.
    Games often involve the modeling and simulation of physical systems, which requires concepts from mathematics, engineering, and physics.

Course Project

We will work in teams to build an educational game for students in some middle school (6th to 9th grade). Each team will interact with a middle school teacher and a middle school class (these are your customers). Periodically, artifacts, e.g., prototype of the game UI, produced by each team will be reviewed by the middle school teacher and students. During the summer select games will be further polished by HMC research students and eventually released for use by middle school teachers across the country. Teachers this semester: CS 121 Games

Fall 12 Middle School Teachers

  • Claremont - Sycamore Elementary School
    • Leslie Wallace

  • Lihue, Hawaii - Chiefess Kamakahelei Middle School
    • Dawn Taba
    • Nikki Chiba
    • Robyn Herbig

  • Oxnard - Rio del Valle Middle School
    • Michelle Townsley, ms.townsley@me.com

The project is divided into four phases:

Project Rules

There are various tools, environments that one might consider when developing code. We have made some unilateral decisions: Project Rules.

Grades

Student grades will depend on performance for all the various stages of the semester-long design/development project as well as a quizzes, and class participation (which includes performance in team evaluations):
Game project 70%
Quizzes 15%
Class participation 15%
See Grading Rules to understand how individual grades are determined from the project.

Textbooks

Code Complete by McConnell
Head First Object-Oriented Analysis and Design by McLaughlin, Pollice, and West
Engineering Long-Lasting Software by Fox and Patterson
Making Games with Python and Pygame by Sweigart
Beginning Game Development with Python and Pygame by McGugan

Schedule/Calendar

The class is DRIVEN by the Calendar which shows what is happening in class and the project. In particular requirements and due dates are a major part of the calendar and need to be reviewed each week by each team.

Mike Erlinger

Last Modified Thursday, 30-Aug-2012 15:09:06 PDT