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