CS 501
Software Engineering
Spring 2005

Professor William Y. Arms


Presentation May 4-5

The final project presentations will be on May 4 and 5. See the instructions for Assignment 4 for information about the presentations. The following time slots are available. Reservations are on a first-comre-first -served basis. To reserve a time slot, send email to Anat Nidar-Levi (anat@cs.cornell.edu).

Wednesday, May 4, 8:30-9:30 (unreserved)
Wednesday, May 4, 1:00-2:00 (JGSM Project Team)
Wednesday, May 4, 2:00-3:00 (unreserved)
Wednesday, May 4, 3:00-4:00 (Intimate Objects group)

Thursday, May 5, 8:30-9:30 (Ringtones group)
Thursday, May 5, 10:30-11:30 (unreserved)
Thursday, May 5, 11:30-12:30 (Firebot SAC team)

Course Description

An introduction to the practical problems of specifying, designing, and building large, reliable software systems. Students work in teams on projects for real clients. This work includes a feasibility study, requirements analysis, object-oriented design, implementation, testing, and delivery to the client. Additional topics covered in lectures include professionalism, project management, and the legal framework for software development.

Offered: Spring only
Prerequisites: COM S 211 or equivalent experience programming in Java or C++
Grade options: Letter or S/U
Credit hours: 4

Basic Information

Lectures: Tuesday and Thursday 1:25-2:40 p.m., Olin Hall 255
Instructor: William Arms, wya@cs.cornell.edu, 255-3046
Cornell Information Science, 301 College Avenue
Instructor's Assistant: Anat Nidar-Levi, anat@cs.cornell.edu, 255-5925
Cornell Information Science, 301 College Avenue
Instructor's Office Hours: Tuesday and Thursday 9:30 to 10:30 a.m., or contact Anat Nidar-Levi to schedule an appointment
Team meetings: Wednesday 7:30 to 8:30 p.m.
Teaching Assistant 1: Lin Guo, guolin@cs.cornell.edu
Teaching Assistant 2: Amar Phanishayee, ap345@cornell.edu

The Teaching Assistants do not have scheduled office hours but are available to help you by email.  Please send all message about the course to: cs501-l@lists.cs.cornell.edu.  Messages to this addresses are forwarded to the Instructor and all Teaching Assistants.

Notices and Syllabus

Urgent notices about the course are posted on the Notices page of this page.  Check the page regularly for current information.

The course syllabus is posted on the Syllabus page of this web site.  It has the schedule of lectures, assignments and quizzes.  The quizzes are within regularly scheduled class times.  Three of the fours assignments include group presentations.  Note that the syllabus is subject to change as the course progresses.

Assumed Background

CS211 (or equivalent) plus a reasonable knowledge of the C, C++, or Java programming languages. Sufficient maturity to be able to learn new programming languages on your own if your project requires it.


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

Computing Laboratory

Unix and Windows computers with appropriate software are available in the Computer Science Undergraduate Lab, Upson Hall Room 315/317. M.Eng. students may also use the M.Eng. computing lab.  If your project requires other software or facilities, contact the Teaching Assistant assigned to your project.

Assignments and Grading

The course is built around four major projects Assignments, three of which include presentations.  These assignments will include both group work and individual work.  In addition, there will be several quizzes.  The Quizzes test material in the lectures.  The weightings given to these components are expected to be as follows, but these weightings may be changed:

Individual project assignments25%
Group project assignments45%

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.

[ Home | Syllabus | Projects | Readings | Assignments | Quizzes | Academic Integrity | About ]

William Y. Arms
Last changed: April 18, 2005