CS 5500: Managing Software Development
Fall 2013

[ Administrivia | Outline ]

Administrivia

Instructor: William D Clinger
Home page: http://www.ccs.neu.edu/course/cs5500sp13/
Directory: /course/cs5500sp13
Piazza signup: https://piazza.com/northeastern/fall2013/cs5500
Piazza: https://piazza.com/northeastern/fall2013/cs5500/home

Textbook: There are no required textbooks for this course.

CS 5500 is being revised to emphasize programming in the medium instead of programming in the large. Its catalog description is therefore out of date, with much of its old catalog content being moved to a new course that is currently under development. Here is the obsolete catalog description, for whatever nostalgia value it may have:

Catalog description:

Covers software life cycle models (waterfall, spiral, and so forth), domain engineering methods, requirements analysis methods (including formal specifications), software design principles and methods, verification and testing methods, resource and schedule estimation for individual software engineers, component-based software development methods and architecture, and languages for describing software processes. Includes a project where some of the software engineering methods (from domain modeling to testing) are applied in an example.
Prerequisites: CS 5010 (Programming Design Paradigm) and admission to MS program or completion of all transition courses.

CS 5010 is still a prerequisite for CS 5500. The new version of CS 5500 will still cover specifications, testing, and many aspects of software design and development. As taught this semester, CS 5500 will still include a team project.

During the early part of the course, students will complete a series of individual assignments. After students have formed teams, many but not all assignments will be team assignments.

Students should expect much of their work on these assignments to be reviewed by other students, both within their team and outside their team. Near the end of the course, each student will participate in a team presentation that will be reviewed by other students in the course.

The semester project will involve writing a program that runs on a CCIS Linux machine.

Each student's reviews, presentations, contributions to the team project, and other assignments will account for between one half and two thirds of the final grade. Two exams and several quizzes (possibly including pop quizzes) will account for most of the rest. No final exam will be given, but presentations, demonstrations, and reviews of other teams' code will continue through the very last day of class.

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

4 Sep Abstraction Barriers
specifications
code
assignment 1
11 Sep Information Hiding
interchangeable parts and black-box testing
unit testing and integration testing
assignment 2
18 Sep Project-specific Theory and Standards assignment 3
25 Sep Teamwork
psychology of computer programming
code reviews
assignment 4
2 Oct Object-oriented Programming
polymorphism
reuse
inheritance considered harmful
assignment 5
9 Oct Plan to Throw One Away
prototyping
refactoring
first midterm exam
16 Oct Performance
asymptotic notation
three rules of optimization
how to write more efficient programs
quiz
23 Oct Performance, continued assignment 6
30 Oct Correctness, Safety, and Liveness
correctness of small modules
invariants
assignment 7
6 Nov Passing the Word
consequences of communication failures
preserving history
specifications
Case Studies: Specifications
plain text and Unicode
formal and executable specifications
assignment 8
assignment 9
13 Nov No class assignment 10
20 Nov Scaling Up
automation of programming chores
standard libraries
reusable software
second midterm
assignment 11
27 Nov No class: Thanksgiving recess
4 Dec Code Reviews quiz

Last updated 6 November 2013.

For debugging: Click here to validate.