Harvey Mudd College
Computer Science

CS121: Software Development

Spring 2011

Lecture:

M&W 2:45-4: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: TBD

Course mailing list:

cs-121-l@hmc.edu

Course trac:

Team Human Geography 1 (KL,CL)
Team Human Geography 2 (CL, KG)
Team Migration (KG, EM)
Team Economics (EM, AN)
Team Government (AN, KL)

Alpha Releases:

Team Human Geography 1
Team Human Geography 2 (CL, KG)
Team Migration (KG, EM)
Team Economics (EM, AN)
Team Government (AN, KL)

Beta Releases:

Team Human Geography 1
Team Human Geography 2 (CL, KG)
Team Migration (KG, EM)
Team Economics (EM, AN)
Team Government (AN, KL)

Tutors/Graders:

Karen Gragg
Becky Green
Kathryn Lingel
Calvin Loncaric
Eric Mullen
Adam Novak

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.

Customer contact:

Heidi Ellis
Greg Orr
Josh Yavor
Muddy Hills Blog

Grades

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

Textbooks

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

Schedule

Date Topic Readings due Assignment due Links Hillside Activity
Tues 1/18 Introduction     Project: Phase I
Intro Questinnaire
 
Thurs 1/20 Requirements MC 3.1-3.4,20.1
Wiegers: Requirement Traps
Ambler: BRUF
  trac set up
Tues 1/25 Requirements modeling Wiegers: Listening to Customer's Voices
Cockburn:Use Cases, 10 years later
Bittner: Use cases, storyboards, and prototypes
Gabler: How to Prototype a Game in under 7 days
Competitive Analysis
High Concept
Game Box prototype
trac set up <
PacMan use cases
UMLet: UML tool
 
Thurs 1/27 Customer Elicitation   Customer Elicitation prep  
Tues 2/1 Design practice McConnell 5.1-5.2,5.4-5.5,20.2, 21
UML Tutorial
Customer Elicitation Report
Game Use Cases
Technology Assessment
Risk Analysis
UMLet: UML tool Game box critique
Thurs 2/3 Design principles I McConnell 5.2-5.3
McLaughlin 4
   
Tues 2/8 Proposal review   Prototype
Proposal
Project: Phase II  
Thurs 2/10 Design principles II Kampe: Postmortems
McLaughlin pp 197-232
McConnell 6
Proposal rewrite (optional)
Postmortem
Phase 1 feedback
Tues 2/15 Design patterns
Architecture Review
McLauglin Ch 5 part 2, Ch 6, Ch 7 Archiectural Design Draft   Risk analysis
Thurs 2/17 UI usability.net: User Centered Design
Bay: Designing games that don't suck
Glinert: Upping your games usability
   
Tues 2/22 Arch. Des. Review prep McConnell 19.6, 22
McLaughlin Ch 8,9
wikipedia:software testing
Kampe: S/W testing
Thompson: Halo3 testing
Architectural Design Review Package
Initial UI Design
Prototype
   
Thurs 2/24 Architectural Design Review      
Tues 3/1 UI Test   UI Test Package
Prototype
  UI Critique
Thurs 3/3 Testing      
Tues 3/8 Test plan review   Revised architecture
Revised UI design
Test plan review package
Prototype
   
Thurs 3/10 Midterm Exam      
Tues 3/15 Spring break        
Thurs 3/17 Spring break      
Tues 3-22 Project Management I   Prototype
Revised test plan
Test report
   
Thurs 3-24 Project Management II      
Tues 3-29 Class Presentations   Alpha Release
Test report
Project: Phase III Alpha test
Thurs 3-31 Game evaluations      
Tues 4-5 Code standards 1 McConnell Ch 7, 8 Management Plan
Test report
   
Thurs 4-7 Code standards 2 McConnel Ch 10, 11 Naming checklist  
Tues 4-12 Code standards 3 McConnell Ch 24, 31 Management Update
Test Report
  Learning objectives
Thurs 4-14 Game testing      
Tues 4-19 Game balancing   Management Update
Test Report
Beta analysis
   
Thurs 4-21 Game fun      
Tues 4-26 Final report review   Final report draft (due Sunday 4/24 11:59PM)
Final report draft comments
Final Mgt. Update
Test Report
  User Tests
Thurs 4-28 Student presentation critique   Presentation draft  
Presentations Week Final presentation/demo        
Fri 5-13
(2:00 PM, exam time)
No meeting   Final project submission    
Week of June 3 HMC visits Hillside       User Tests conducted by HMC summer researchers