CS 5500: Managing Software Development
Spring 2014

[ Administrivia | Outline ]

Administrivia

Instructor: William D Clinger
Home page: http://www.ccs.neu.edu/course/cs5500sp14/
Directory: /course/cs5500sp14
Piazza signup: https://piazza.com/northeastern/spring2014/cs5500
Piazza: https://piazza.com/northeastern/spring2014/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

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

Last updated 27 February 2014.

For debugging: Click here to validate.