Software Construction is based on the premise that
Accordingly, the course focuses on the design and implementation of maintainable programs and how to present such programs to others.
Before taking Software Construction, students are expected to know the fundamentals of programming and computation, including:
During the course, students synthesize that knowledge and learn the fundamental tools for maintaining programs:
The course has nine assignments, one each week. The first two assignments expose students to the idea of modifying large programs and the design of a subscription-notification architecture. For assignments three through nine, students build and modify their own software. To date, the final product has been a complete implementation of an existing board game (e.g., Scrabble or Parcheesi), including a rules manager, a GUI, automated players, and networked play.
The course is organized as a studio course, following the tradition of art and architecture school. Each week, students present their programs and (with the instructor's guidance) learn from each others' experience. Final grades are based on the quality of the students' code and the quality of their presentations, with an emphasis on the later code and the later presentations.
Last modified: Thursday, February 17th, 2005
HTML conversion by TeX2page 2004-09-11