CS 3733-D01: Software Engineering

Course Details

Staff | Discussion Board | Textbooks | Groups | Grading | Software | Policies | 3733 Home Page

Course staff

PositionNameEmail PhoneOfficeOffice Hours
ProfessorKathi Fislerkfisler 508-831-5118Fuller 145Tuesday 2-3,
Thursday 10-11,
and by appt
TAChoong-Soo Leeclee01@cs x5202*FLA20Thursday 2-4
TAMike Sao Pedrofalcor@wpi x5202*FLA20Wednesday 1-3
*=phone number during office hours; TAs are not at this number at other times

Discussion Board

Direct all course-related discussion to the
discussion board in the MyWPI area for this course.


Required: Object-Oriented Software Engineering: Concquering Complex and Changing Systems. Bernd Bruegge and Allen H. Dutoit. Prentice Hall, 2000. ISBN 0-13-489725-0.

Recommended: The Mythical Man-Month. Frederick P. Brooks, Jr. Addison-Wesley, 1995. ISBN 0-20-183595-9. (older editions also fine). This book has many fine insights on the process of software engineering and some of its notable pitfalls. It's a classic in the field of software engineering and highly recommended for anyone planning to work in software development.


Several of the course projects are group projects. Each group will contain three students. You may form your own groups by specifying group member names on a form to be provided on the first day of the course. The course staff will create or complete groups for students who do not express preferences.

If your group is having problems working together, you may discuss the problems with the course staff. We will not reassign groups unless there are extenuating circumstances, however, as learning to work through group problems is an important job skill. See the groups page for information on which students are in each group and which project component each group is implementing.


There will be four projects (one individual and three group) and two exams. Details on the projects will appear on the
assignments page as they become available. The four projects will be as follows:
  1. Individual Project: You will need to integrate two components written in different languages.

  2. Requirements Analysis Project: Your group will need to produce a detailed requirements document for a large system.

  3. Component Implementation (with Interface Document): Your group will implement one component for a large system that the entire class is developing (several groups will design versions of each component). Each group will present its design and implementation to the course staff in an oral code review (to be explained in detail on the project handout).

  4. Component Extension: Your group will have to augment or alter the behavior of the component that you implemented for the previous project.

Course grades will be based on the following weights. Details on the grading for each project will appear on the project handouts.

Course Software


We will use the MzScheme variant of Scheme for all coding projects in the course. You must use the MzScheme variant of Scheme. No other Scheme implementation provides the object-oriented and component features that we will use in this course.

You can use MzScheme with your favorite editor, or you can use the DrScheme programming environment, which sits on top of MzScheme and provides several nice features, such as source correlation of errors and a project manager. Both DrScheme and MzScheme are installed on CCC (/usr/local/plt/bin/mzscheme and /usr/local/plt/bin/drscheme). Alternatively, you can download either package (for free) to your own computer (Unix, PC, Mac all supported, with files portable between them). Note that installing DrScheme also installs MzScheme.

Both DrScheme and MzScheme support language levels (which tailor the keywords available to the user). You should work in the "Full Scheme" level; turning on graphics support as you need or choose.


CVS is a version-control system. Using CVS, multiple team members can share access and merge updates to files without manually tracking who has the most up-to-date versions. You are not required to use CVS, but you may find it helpful. It is installed on CCC. The documentation page contains more details and usage instructions.

Administrative Policies

Make-up Exam Policy

Make-up exams will only be allowed in the event of a documented emergency. The two exam dates are listed on the syllabus. You are responsible for avoiding conflicts with the exams. Do not plan to leave campus for the term before the final exam.

Late Homework Policy

The syllabus lists the due dates and times for each assignment. No assignment will be accepted beyond the official due date without prior consent of the professor (the TAs are not allowed to grant extensions). Extensions will be granted only in the event of unforseen and documentable emergencies, or extenuating circumstances that you discuss with the professor well in advance. The inability of one group member to make a deadline will not be considered an acceptable excuse for an extension in most circumstances.

Collaboration and Cheating Policy

The collaboration policy will vary across assignments. Each assignment handout will contain a clearly marked collaboration policy. Failure to follow the collaboration policy on an assignment will constitute cheating. No collaboration is allowed on exams, which will be closed-book and closed-notes.

Violations of the collaboration policy on any assignment or exam will result in no credit (NR) for the course and a referral to the Student Affairs Office for disciplinary action. Your only chance of escaping an NR is to admit to the cheating to the professor before the course staff detects it. If we detect it first, an NR is assured.

Special Needs and Disabilities Policy

Students requiring accommodation on exams or assignments due to disabilities must speak with the professor at the start of the term (and at least two weeks before the assignment due date or exam in question) to work out appropriate arrangements.

This page maintained by Kathi Fisler
Department of Computer Science Worcester Polytechnic Institute