CPS 108/208, Software Design and Implementation


Object-oriented programming, design,and analysis

[ Requirements | Syllabus | Books | Assignments | Project | Students/Groups | Teaching staff | Tools | Class notes ]

Overview

The course overview has moved to its own page .

Requirements

There will be a large group project (four to six person teams), two smaller group projects, and two individual "mastery" projects. The mastery projects are designed to ensure that everyone who completes the course is "certified" as capable of writing and understanding reasonably complex C++ programs. Since some people on the large team project may not write any C++ code, the mastery projects are necessary for this certification. One of the mastery projects will also use python.

Grading
intangibles (class presentation/participation) 10 %
mastery exams 20 %
small group projects 30 %
large group project 40 %

Differences between 108 and 208

Students enrolled in 208 will be expected to do an additional mastery exam involving design patterns. There will also be a problem set or paper covering material on formal methods of software development. As I iron out details in the next week or so I'll fill in material that more carefully discusses the differences.

Syllabus

The syllabus has readings, topics for discussion.

Assignments

Assignments for the course

Books

There are several books we'll use in the course and a coursepak for Python material.
* Mastering Object-Oriented Design in C++ by Cay Horstmann
* Object-Oriented Analysis and Design with Applications by Grady Booch
* Debugging the Development Process by Steve Maguire
* Effective C++: 50 Specific Ways to Improve Your Programs and Designs by Scott Meyers
* The Mythical Man-Month by Fred Brooks

Books Required for 208, Optional for 108

* Design Patterns: Elements of Reusable Object-Oriented Software by the "gang of four"
* A Discipline of Programming by Edsger Dijkstra

Teaching staff

Support personnel: one professor, two TAs (one TA, one UTA)
* Professor Owen Astrachan

* TA Syam (Sam) Gadde
* UTA Steve Wolfman

Groups

* Groups Students and groups , with links to student home pages. To add a link to your home page, send email to gadde@cs.duke.edu the TA for the course.

Group evaluation


Project

The project has moved to its own page

Signup and Information on group presentation and submission

Group Evaluations: Each group member MUST submit a group evaluation for full credit on the group assignment.


Programming Tools

* gprof
Information on profiling programs

* python

* ILU

* CVS (postscript)
Concurrent Versions System, a front end to RCS with more options. This is the man.1 page with a desription of all the options.

Class Notes

These class/reading notes are written by a different group for each class. Notes are due two class meetings after the class meets.
* class 1
by Group 8, John Dean and Anna Campbell

* class 2 and readings
by Group 13, Sam Cheung and David Hoffman


Back to Owen Astrachan's home page