CS 5500: Managing Software Development
Fall 2016

Links and a Directory

Instructor: William D Clinger
Home page: http://www.ccs.neu.edu/course/cs5500f1602/
Piazza signup: https://piazza.com/northeastern/fall2016/cs5500
Piazza: https://piazza.com/northeastern/fall2016/cs5500/home
Course Directory: /course/cs5500f1602 (on the CCIS shared file system)

Textbook

There are no required textbooks for this course.

Catalog Description

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.

Accounts

Every student will need a CCIS student account.

Every student will need to sign up for the Piazza course site.

Assignments

During the first few weeks of the course, homework assignments will be completed by individual students working alone. 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 at least one 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.

There will be eight to ten assignments, but the number of assignments and the details of some assignments will be influenced by what we see while grading earlier assignments. If students need more feedback on their semester projects, for example, then we will assign additional homework that's designed to provide that feedback. If students perform poorly on an assignment, we may assign a second variation of that assignment so students can get more practice (and raise their grades, because second chances are usually given more weight when computing the final grades).

Grading

The assignments will not be weighted equally. More important assignments are likely to be weighted more heavily, and assignments for which an unusually large number of students score poorly are likely to be weighted more lightly or not at all. Although this course will not be graded on a bell curve, some easy assignments may be weighted more heavily just to raise the overall class average.

Each student's reviews, presentations, contributions to the team project, and other assignments will account for approximately two thirds of the final grade.

Two exams and a few quizzes (which might include pop quizzes) will account for approximately one third of the final grade.

No final exam will be given, but presentations, demonstrations, and reviews of other teams' code will continue through the very last day of class, which is Friday, 9 December. The final project will be due on that date.

Plagiarism, Theft, and Software Security

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 responsible for doing individual assignments by themselves. Do not tell another student how you did your individual assignment. Do not allow another student to tell you how he or she did the assignment. Do not show another student your computer screen if it displays information that could reveal part of your solution to an assignment. Do not look at other students' computer screens. Do not leave printed copies of your work lying around where other students could find them. Do not share files. Use appropriate technical means (including file permissions, at the very least) to keep other students from viewing your files.

For team assignments, those rules continue to apply for students not on your team, but you are expected to collaborate with your teammates. With team assignments, you have extra responsibility: Failing to protect the software your team is developing from other teams can lower the grade for every student on your team, not just you.

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

Deliberate violations of the rules stated above will be regarded as violations of the Academic Integrity Policy and will be reported to OSCCR. Accidental violations of the rules will lower your grade.


Last updated 8 September 2016.

For debugging: Click here to validate.