CS U670: Software Development
Spring 2008

[ Administrivia | Outline ]

Administrivia

Instructor: William D Clinger
Home page: http://www.ccs.neu.edu/course/csu670/
Directory: /course/csu670

Required Textbook: Andrew Hunt and David Thomas. The Pragmatic Programmer. Addison-Wesley, 2000.
Recommended Textbook: Joshua Bloch. Effective Java Addison-Wesley, 2001.
Recommended Textbook: Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Addison-Wesley, 1995.

Catalog description:

Considers software development as a systematic process, involving specification, design, documentation, implementation, testing, and maintenance. Examines software process models; methods for software specification; modularity, abstraction, and software reuse; issues of software quality. Students, possibly working in groups, will design, document, implement, test, and modify software projects. Prerequisites: CS U370 and CS U390.

The course will be organized around a semester project. During the early part of the course, most homework assignments will emphasize individual writing. During the second half of the course, most project work will be done in teams. Students should expect to present some of their work to groups of other students, including one presentation before the entire class. For reasons to be explained in class, the semester project will involve writing a program that runs under some version of Unix.

The writing, presentation, software projects, and other assignments will account for about three quarters of the final grade. A midterm will account for about one quarter. No final exam will be given, but project walkthroughs and demonstrations will be conducted during the last week of class.

This is not a course in software engineering, primarily because we will avoid most of the management issues. Software engineering does, however, provide the context for our discussion of the more technical aspects of software quality.

Security is an important aspect of software development. In this course, students are expected to protect the software they develop from plagiarists and thieves. The quality of this protection will be graded.


Outline


Last updated 7 January 2008.