Syllabus CS 5500 Fall 2011

Prerequisites: Take PDP concurrently.

Objective: Improve your problem solving skills related to all aspects of a software development project. How to learn about the existing software so that you can start modifying it. Analysis/Design/Implementation/Testing for new features. Good interface design. Modular design that supports parallel development. Writing testable code. Using standard tools and processes. The students are given a code base for SCG Court, a crowdsourcing platform used to generate crowdsourcing systems. They test the platform code as well as various playgrounds=crowdsourcing systems and then enhance the system based on the maintenance list described below.

See http://www.ccs.neu.edu/home/lieber/courses/se-courses/cs5500/f11/msd-f11.html for more details.

Grading Criteria:

This is subject to change. We might switch to an absolute grading scheme
where all actively participating students get at least a B-
if the project passes an acceptance test that we define jointly.

Weekly projects: 30%
Midterm: 20%
Final Exam, Class Participation: 20%
Final Project: 30% (includes performance of your avatars)

The syllabus is subject to adjustments.

The syllabus for the course will follow the text book by Bruegge. The sequence will not be linear through the book because we maintain the SCG Court project and use the material from the book to help us. We will also cover additional topics that help us with the project: Modularity and Aspect-Oriented Software Development.

Week 1: Introduction to SCG Court and its current implementation. What is missing that we want to correct and add to the software? What is involved in managing this project. P1: Informal playground and avatar definition

Week 2: Learning about the details of SCG Court. Class dictionaries (comparison of data binding technologies). Predefined Protocols. P2: Implement a playground and a simple avatar (from P1). Start with the baby avatar and add intelligence to it. Check for the correctness of the implementation. Tournament.

Week 3: Testing chapters of text book. Preparation for Attack the Administrator Night. We are looking for flaws in SCG Court so that we can write an avatar that wins without intelligence but by cheating the system. You should try to write an "evil" avatar that breaks the system by accumulating reputation through cheating. Writing Clean Code (Google Tech Talk presentation). P3: Attack the administrator night Tournament. To be repeated in a later week after repairing SCG Court.

Week 4: The life cycle for adding a new feature from the maintenance list. http://www.ccs.neu.edu/home/lieber/courses/se-courses/cs5500/f11/maintenance/maintenance-tasks.txt P4: Analysis, design and implementation of a feature from the maintenance list. Design reviews.

Week n: Choose a new feature. Same topics as week 4 applied to new feature. Code reviews for the feature from week n-1.