[ Administrivia | Outline ]
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.
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.