*

CPS 100 (CS 2)

Programming Design and Analysis II

[ Overview | Syllabus | Assignments | Quizzes | Grades | Group Work | Tests | Code ]


* Practicum Problems required for Test 2

Extra Problems to add on to Test 1


* Professor Owen Astrachan
* Professor Dee Ramm

* TA Michael Loeb
* UTA Rachel Pottinger

Course Overview

This course naturally follows CPS 06 (or the former CPS 08). Topics covered include data structures, analysis of algorithms, data abstraction and abstract data types, object-oriented programming, proofs of correctness, complexity and computability, sorting and searching.

Texts

Computing

All programs should compile and execute on acpub Sun workstations. They should be compiled with g++ v. 2.7.2.1 You will need to alter your path to have access to this version of the compiler. On the acpub system you should be sure that /afs/acpub/project/cps/bin is in your path before /usr/local/bin. You can check the dot files (e.g., .cshrc in ~ola/newuser on the acpub system for how to ensure that your path is set up properly.

You should use xemacs to edit files. This editor has built in support for color-coding, supports multiple buffers, and is great at editing HTML files too! You might want to use the .emacs file in ~ola/newuser/.emacs which will ensure that your code is indented according to CPS conventions.

Sparc Clusters are found in Teer 106, 139 Hudson Hall, Soc/Psych 133, Bio-Sci 002CC, and Carr 125. All programs/projects will be submitted electronically.

Grading

major programming assignments 30%
minor programming assignments 15%
written assignments 5%
random quizzes 5%
tests (2) 25%
final 20%

Grading is done on an absolute, but adjustable scale. This means that there is no curve. Anyone earning 90% or more of the total number of points available will receive a grade in the A range; 80% = B, 70% = C, 60% = D. This scale may go down, but it will not go up. In order to earn an A+ you must do several of the optional assignments. These points count even if you don't earn an A+.

There will be several optional assignments. Completion of these can earn points towards raising a grade by a half-step, e.g., from C+ to B-. In some cases it may be possible to raise a grade by more than one step. Completion of some of the optional assignments is mandatory in order to earn an A+.

To receive a grade in the A range on programs you must exceed expectations. This means you must do everything required extraordinarily well or you must do more than is required and do this well. In other words, to earn an A you must do more than merely meet the requirements, you must go beyond them.

The tests will be closed-book, the final exam will be open book. The final exam may be used to bring up your test grade if you receive a higher grade on the final than your test average.

Random quizzes will be given out in class and then flipped-for at the next class. Optional quizzes may be given from time to time.

Late Assignments

Assignments turned in on the early due date will earn a 10% bonus. Assignments turned in on time receive no penalty. Grades drop 10% every two days an assignment is late. Assignments will not be accepted after two weekends have passed from the due date.

Syllabus

The syllabus includes information on what to read and when tests are given.

Assignments

Extra Credit Assignments

Written Assignments


Random Quizzes


Grades

All course grades by beta number.

Group Work


Tests from previous semesters

Note: topics may not be covered in the same order (or even covered) in different semesters


Code

Code for many of the data structures we use in class lives on the Data Structures Home Page.
ola@cs.duke.edu
Last modified: Mon Aug 18 13:05:39 EDT 1997