Harvey Mudd College
Computer Science

CS121: Software Development

Fall 2012

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:
T,Th: 1:15-2:45
F: 10-11

Course mailing list:

cs-121-1-l@hmc.edu

Course trac/wiki:

TBD

Tutors/Graders:

Jessie Liu
Will Newbury
Lawrence Thibodeaux
Kevin Vigue
Vivian Wehner

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 class assignments, the team project, and and class participation:
Assignments 30%
Project 60%
Class participation 10%

Textbooks

There is no required text for this section.

Schedule

 
Date Topic Assignment Links Project deliverables
Tues 9-4 Introduction, software methodologies
Requirements
Intro to iOS dev
HW 1 iOS dev tutorial 1  
Thurs 9-6 Design models, UML, MVC HW 2 iOS dev tutorial 2  
Tues 9-11 UI Design HW 3 iOS dev tutorial 3  
Thurs 9-13 Prototype design
Usability Tests
HW 4 iOS dev tutorial 4  
Tues 9-18 Module/Code design
Alpha specs
HW 5   Sudoku prototype
Thurs 9-20 Assessing quality
Walk through
HW 6    
Tues 9-25 Software testing HW 7 iOS dev tutorial 5 Sudoku alpha
Thurs 9-27 Beta requirements
White box testing of alphas
HW 8    
Tues 10-2 Project intro/management Week 1 deliverables Math learning objectives
Science learning objectives
Social science learning objectives
Sudoku beta
Thurs 10-4 No class      
Tues 10-9 Week 2 Project Managemenent
More design principles
UI/Concept prototype test schedule
Week 2 deliverables   UI/Concept prototype test prep
Thurs 10-11        
Tues 10-16 Design patterns
Design Review
Team meetings
2nd Floor Sprague work stations
Week 3 deliverables   Design review prep
Thurs 10-18 Team meetings
Blog Posts
     
Tues 10-23 Fall break      
Thurs 10-25 Usability redux Week 4 deliverables    
Tues 10-30 Usability tests Alpha due next week   Usability test
Thurs 11-1 Usability testing continued      
Tues 11-6 Presentation prep   Death by Powerpoint  
Thurs 11-8 Alpha presentations     Alpha
Tues 11-13 Beta phase   Alpha rubric  
Thurs 11-15 In-class design walk throughs     Design walk through prep
Tues 11-20 Test plan preparation (lecture)
In-class design walk throughs
  Week 7 rubric
Memory Leak tutorial
 
Thurs 11-22 Thanksgiving      
Tues 11-27 Test plan review prep      
Thurs 11-29 Instruments 1
Test plan prep
  testApp 1
Test Plan Rubric
 
Tues 12-4 Instruments 2
User test prep
  testApp 2  
Thurs 12-6        
Tues 12-11 Code freeze
Optional walk through
     
Thurs 12-13 Beta presentations     Beta
Wed 12-19
2pm
Beta walk through      
Last updated Aug. 2012