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
]
The course overview has moved to
its own page .
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 %
|
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.
The syllabus has
readings, topics for discussion.
Assignments
Assignments for the course
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
Support personnel: one professor, two TAs (one TA, one UTA)
Professor
Owen Astrachan
TA
Syam (Sam) Gadde
- Office: 339, LSRC
- email: gadde@cs.duke.edu
- phone: 660-6594
- office hours: Monday 2:00 - 3:30, Thursday 10:00-11:00, by
appointment and anytime I'm/he's not busy
UTA
Steve Wolfman
- Office: D240, LSRC (yurt)
- email: saw1@cs.duke.edu
- phone: 660-6526
- office hours: Friday 2:00 - 4:00 yurt (D240, LSRC)
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
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.
-
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.
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