CS 4500: Software Development
Spring 2014

[ Administrivia | Outline ]

Administrivia

Instructor: William D Clinger
Home page: http://www.ccs.neu.edu/course/cs4500sp14/
Directory: /course/cs4500sp14
Piazza signup: https://piazza.com/northeastern/spring2014/cs4500
Piazza: https://piazza.com/northeastern/spring2014/cs4500/home

Required Textbook: Frederick P Brooks. The Mythical Man-Month, Anniversary Edition. 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.
Prerequisite: CS 3500 (object-oriented design)

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 at least one video presentation that will be viewed by the entire class. The semester project will involve writing a program that runs on a CCIS Linux machine.

The writing, presentation, software projects, and other assignments will account for about two thirds of the final grade. Two midterms and possibly some quizzes will account for most of the remaining third. No final exam will be given, but presentations will be viewed and discussed 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.

Students are also responsible for knowing and abiding by Northeastern University's Academic Integrity Policy.


Tentative Outline

7, 10 Jan Introduction
The Tar Pit
The Mythical Man-Month
Chapter 1 (The Tar Pit)
Chapter 2 (The Mythical Man-Month)
14, 17 Jan Passing the Word
Software quality
Software process models
Chapter 6 (Passing the Word)
Chapter 7 (Why Did the Tower of Babel Fail?)
21, 24 Jan Project-specific theory and standards
28, 31 Jan Calling the Shot
Software Architecture and Design
The Surgical Team
Chapter 8 (Calling the Shot)
Chapter 9 (Ten Pounds in a Five-Pound Sack)
Chapter 10 (The Documentary Hypothesis)
The Story of Mel, a Real Programmer
Chapter 3 (The Surgical Team)
Chapter 4 (Aristocracy and System Design)
4, 7 Feb Interchangeable parts and black-box testing
Plan To Throw One Away
Chapter 11 (Plan to Throw One Away)
11, 14 Feb Scaling up, part 1:
  asymptotic complexity & efficiency
18, 21 Feb Scaling up, part 1 (continued) first midterm
25, 28 Feb Scaling up, part 2: invariants
4, 7 Mar No class: spring break
11, 14 Mar Testing & debugging
Reliability & security
Scaling up, part 3: reuse
Sharp Tools
Hatching a Catastrophe
Silver bullets
Chapter 13 (The Whole and the Parts)
Chapter 14 (Hatching a Catastrophe)
Chapter 15 (The Other Face)
Chapter 5 (The Second-System Effect)
Chapter 12 (Sharp Tools)
18, 21 Mar Specifications
Case studies
25, 28 Mar Code reviews
1, 4 Apr Scaling up, part 4: maintenance
8, 11 Apr second midterm
15 Apr semester project due

Last updated 11 March 2014.

Valid XHTML 1.0!