CPS 108/208 Syllabus

Reading/Topics
Date Topic Reading
Jan. 12 Overview of OO concepts, Design
Intro to C++
Brooks Chapters 1, 16, 17
Booch Chapter 1
Horstmann Chapters 1-3
Jan. 15 Design of multigrep
Efficiency considerations
Horstmann Chapters 7,8,9
Meyers Items 18-28
Jan. 17 C++, code dissection
profiling, make
Meyers Items 11-17
Jan. 19 C++, make catch up
Jan. 22 Design vs Coding, C++ Brooks, Chapters 2-5
Horstmann, Chapters 4,5
Jan. 24 Design, Inheritance, Templates Horstmann, Chapters 11 and 14
Meyers, Items 35-40
Jan. 26 Inheritance, Templates catch up
Jan. 29 Organization: individual/team Brooks, Chapters 6-11
Maguire, Chapters 1-3
Jan. 31 Code Dissection catch up
Feb. 2 Advanced C++: rtti, exceptions catch up

New Reading

Reading/Topics
Date Topic Reading
April 1 Project Brooks Chapters 12-15, 18, 19
April 8 Project Meyers Items 29-34, 45-50
April 15 Project

Compiling

You must use g++ 2.7.x for the projects in this course. This compiler implements exceptions, run-time type identification, and fixes some bugs in 2.6.x. To use this compiler on the acpub system, you'll need to change your path. Add the line below to your .cshrc file to put /afs/acpub/project/cps/bin before /usr/local/bin in your path.
     set path  = (/afs/acpub/project/cps/bin $path)
If you want my bin in your path (for submit to work) you should add /afs/acpub.duke.edu/users8/ola/bin at the end of your path, otherwise you'll need to type ~ola/bin/submit108 to use the submit program.

You'll need to change your path to have access to python, recent versions of Tcl/Tk, and the web-editor asWedit with java support.

Compiling on CS machines

For the moment, to use g++ 2.7.x on CS machines, you'll need to put /usr/pkg/gcc-2.7.2/bin before /usr/local/bin in your path. I hope to have a directory of symbolic links set up so that there isn't the need for individual package bins like this.

Emacs

If you don't use emacs, I urge/require you to start. Emacs has built-in support for RCS, debugger support, etc. etc.

Back to CPS 108/208 home page

Back to Owen Astrachan's home page