CPS 100: Fall 1996 Syllabus


Professor: Susan Rodger

Teaching Assistant: Scot Ransbottom

Course Meeting Time

Tue, Thu: Old Chemistry 116, 10:55-12:10

Course Description:

Continuation of CPS 6 and 8. Topics include data structures, analysis of algorithms, data abstraction and abstract data types, object-oriented programming, proofs of correctness, complexity and computability, sorting and searching.

Required Background:

Prerequisite: CPS 6 or CPS 8.

Text

Reading

In general you should read the text in order to be prepared to ask and answer questions in class. If you've looked at material before it's discussed in class you'll get much more out of the class discussion.

Web page

Many of the materials for this course (including this page) are available on http://www.cs.duke.edu/~rodger/courses/cps100/intro.html

Newsgroup

You should regularly read the newsgroup duke.cs.cps100 as it may contain announcements, hints, and information relevant to this class. The Introduction to the Public Unix Clusters at Duke explains how to read newsgroups.

Computing

All programming projects should compile and execute on the acpub Sun SparcStations. Projects may be developed on other platforms, but the final version must compile and execute on the SparcStations. Sparc clusters are found in Teer 106, Engineering 139, Soc-Psych 133, Bio-Sci 002CC, Carr 125 and other places on campus. There will be additional clusters on East Campus. All projects will be submitted electronically.

Collaboration

You may consult with one or two other students (and as many times as you want with TA's and Professor Rodger) on assignments and programs, but should limit collaboration otherwise. This means you can discuss the programs before writing code, and get help with debugging your program, but you should write your own code. Writing one program and making multiple copies of it is not acceptable! For each assignment and program you are expected to include a list of the people with whom you have consulted (including students, TA's, tutors, professors). Finally, you may not consult with the same students on two consecutive assignments/programs.

Grading

programming/written assignments 45%
random quizzes/groupwork 5%
tests (2) 20/30%
final exam 20/30%

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.

There may be several optional assignments. Completion of these can earn points towards raising a grade. Sometimes optional quizzes or extra credit will be given. These can earn points only in their category, i.e., optional quizzes can earn quiz points to bring you up to a 100. The maximum grade recorded in any category is 100.

The tests and final exam will be closed-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. The final will count less if you receive a lower grade on the final than your test average. Both grades will be calculated and the higher grade will be used. For example, if your final exam grade is lower than your test average, then your final exam will count 20% and your test average will count 30%.

The random quizzes/groupwork grade includes your quiz grade and your participation in group activities during class. These activities may involve some preparation work before class.

Late Programming Assignments

Almost all programming assignments will be due on Monday at 8:00 am (note that programming assignments are submitted electronically). Late programming assignments are penalized 10% for each day late (three days late is 30% off) and Sundays do not count as late days.

If you are having lots of problems, please do NOT give up --- talk to Professor Rodger.

Dishonesty Policy:

Quizzes and Tests must be your own work. On programming/written assignments, you may discuss problems with other students in the class, but the final writeup or program turned in must be your own. Merely copying answers is NOT permitted. For each assignment and program, you must list the people whom you have worked with. You may not consult with the same students on consecutive assignments/programs!

Tentative Schedule for CPS 100

Test dates are fixed, but the topics are just a guideline. See below for the Actual Schedule.

Date Topic Reading
Sept 3 Introduction, Pointers, Linked Lists Chaps. 1, 6.4
Sept 5 Linked Lists, Classes Chaps 2, 16
========= ====================================== =========
Sept 10 Analysis, Big-Oh Chap 5
Sept 12 Templates, Stacks Chaps 3, 6.2, 15
========= ====================================== =========
Sept 17 Queues, Recursion Chaps 6.3, 7, 15
Sept 19 Stacks, Expressions Chap 11
========= ====================================== =========
Sept 24 Sorting Chap 8
Sept 26 Trees Chaps 6.5, 6.6, 17
========= ====================================== =========
Oct 1 Trees Chap 18.1-3
Oct 3 Trees
========= ====================================== =========
Oct 8 Review
Oct 10 Test 1
========= ====================================== =========
Oct 15 Balanced Trees Chap 18.5
Oct 17 Balanced Trees
========= ====================================== =========
Oct 22 FALL BREAK
Oct 24 Hashing/Tables Chaps 6.7, 19
========= ====================================== =========
Oct 29 Priority Queues Chap 6.8. 20
Oct 31 Priority Queues
========= ====================================== =========
Nov 5 Graphs Chap 14
Nov 7 Graphs
========= ====================================== =========
Nov 12 Huffman Coding Chap 12
Nov 14 Huffman Coding
========= ====================================== =========
Nov 19 Review
Nov 21 Test 2
========= ====================================== =========
Nov 26 Inheritance Chap 4
Nov 28 Thanksgiving Break
========= ====================================== =========
Dec 3 Computational Geometry
Dec 5 Computational Geometry
========= ====================================== =========
Dec 10 Special Topics
Dec 12 Special Topics
========= ====================================== =========
Dec 16-21 FINAL EXAM PERIOD


The final exam COULD THEORETICALLY be held on the last day of the exam period. DO NOT MAKE PLANS TO LEAVE DUKE BEFORE THIS TIME.