Notice: End of Semester

The course is now complete. Congratulations to everybody on a fine set of projects.

Course Description

This course is an introduction to the practical problems of specifying, designing, building, testing, and delivering reliable software systems. Special topics include professionalism, project management, and the legal framework for software development. As a central part of the course, student teams carry out projects for real clients. Each project includes all aspects of software development from a feasibility study to final delivery.

Offered: Fall semester
Prerequisites: Computer Science 2110 or equivalent experience programming in Java or C++. Sufficient maturity to design and code large programs and to learn new programming languages if the project requires it.
Grade options: Letter or S/U
Credit hours: 4
Class times: Monday and Wednesday, 12:20 to 1:10, Hollister Hall B14
Instructor: William Arms,
Department of Computer Science
Gates Hall 333
Teaching Assistant: Shrutarshi Basu,
Office Hours: Wednesday, 10:00 to 11:30 or send email to schedule an appointment.
The Teaching Assistant does not have scheduled office hours but is available to help you by email or by appointment.
Please send all message about the course to both the Instructor and the Teaching Assistant.
Team meetings: Monday 7:30 to 8:20 p.m., Upson Hall B17, or as decided by the project teams.
Course Assistant: Amy Elser,

Academic integrity

Much of the work in this course is collaborative, but some parts require individual work. To understand when collaboration is appropriate read the web page on Academic Integrity and understand how it applies to this course.

Syllabus and schedule

The overall schedule is posted on the Schedule page of this web site.  Note that the schedule is subject to change as the course progresses.

Lectures and other course materials

All course materials are available online. Each lecture has two versions:

  • The full version is available online for you to study in your own time. Usually there is a video lecture (which may be split into several parts) and a PDF file with slides. See the Course Materials page on the web site.
  • A shortened version will be given in class, summarizing the main points of the full lecture with additional examples.

For each week, there is a course overview that lists the materials for the week including supplementary material about projects, tests, presentations, etc. The Schedule links to these weekly overviews.


Each week, one class is is used to present a short version of the video lectures for that week. For the first few weeks of the course, all classes are used to help the formation of project teams. See the Schedule for more details.

Team meetings

The recitation period on Monday evenings is available for group project meetings. Project teams may agree to meet at other times, but it is important that each project schedules a team meeting at least once per week.


The groups projects are a central part of the course. See the Projects page for more information.

  • Work on the projects is divided into four parts, each of which ends in a milestone. At each milestone, the team submits a written report.
  • After the second, third, and final milestones, the team also makes a presentation to the client and the course team.

For more information, see the Assignments page.


There are four tests that are based on the material covered in the full version of the lectures. For more information, see the Tests page.


With each of the four major assignments, there is a survey about the progress of your project. It is a required part of the course. See the Surveys page.


The weightings given to the components of the course are expected to be as follows, but these weightings may be changed:

Group project 45%
Tests 30%
Individual project contribution    25%

[ Home | Description and Overview | Course Materials | Projects | Schedule | List of Assignments & Tests
Assignments | Presentation Times | Tests | Surveys | Books and Readings | Academic Integrity | About this Site ]