Introduction to all aspects of a software project, including early design, building the first version, operating a version while developing the next, maintaining multiple active versions, and ultimately retiring an old version. Each class meeting will include pre-work and a lecture, question-and-answer with a visiting expert or panel of experts, and student-lead discussion.
Grading is based on class participation, presentations, and a term paper.