CSCI 1900: Software System Design

Spring 2009

Course Staff

Shriram Krishnamurthi
Aleks Bromfield (Head TA)
Suman Karumuri
Tim O'Donnell


How to Write Requirements

Mock Interview Requirements Exercise

Prototyping Exercise

Team Membership Evaluation


The class meets MWF 10-11 in CIT 368. Attendance is mandatory.


cs190 is not a course that easily lends itself to shopping. Unlike in most regular courses, what you see and do at the beginning of the semester will qualitatively be very different from that later into the term. In addition, we need to form groups soon, and get started on the course projects.

Group Work

Most of your work will be done in groups. You cannot repeat a partner. In major projects, this means you cannot partner with someone in a sub-group; they may be part of the bigger group. Rather than be overly legalistic here, we will define this per project (if in doubt, ask!). But please keep this in mind and, in particular, if there's someone you'd really love to work with, consider putting it off for now. Most of all, note that in this course, whom you get to work with is determined by us, not by you.

What Will Be Different This Year


In a significant departure from tradition, the entire class will work on (different parts of) one project, and we will assign the project. The project has been carefully chosen to illustrate various important aspects of software engineering. There will be no exceptions to this policy.

In addition, we will not impose any programming language choices on you. You may use any language you wish, but we will make you justify your choice of language.


Because software engineering texts are uniformly amongst the most boring writings in all of human literary output, we won't have a text for this course. (The sole exception I've found is the first edition (2000) of Bernd Bruegge and Allen Dutoit's Object-Oriented Software Engineering.) We'll read specific articles as necessary.