Compsci 100, Fall 2006


*Professor Owen Astrachan

*TA Christopher Painter-Wakefield


These books are available at the Duke bookstore. If you want to buy books online, click on the book images below to buy from Amazon and contribute to undergraduate computer science research at Duke.

Data Structures and Algorithms in Java, fourth edition, Required, by Michael Goodrich and Roberto Tomassia


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 (A- to A+); 80% = B, 70% = C, 60% = D. This scale may go down, but it will not go up.

To receive a grade of A or A+ 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.

In order to earn an A+ you must do several of the optional assignments and exceed expectations in general.

major programming assignments  30%
APT programs 10%
recitation/classwork/community 5%
quizzes/group-work/written  11%
tests (2)  24%
final exam  20%

Late Programming Assignments

Assignments turned in on time receive no penalty. Assignments turned in up to two days late incur a 10% penalty. Assignments turned in more than two days late incur a 25% penalty. Assignments will not be accepted after one week has passed from the due date.

In general, the weekend counts as one day. However, nearly all assignments will be due Thursday.

If you're having trouble, be sure to see a UTA/TA and preferably the professor in charge of the course as far before the due date as possible. Don't give up, ask for help.

Individual extensions will be granted for medical reasons (see the Short-term Illness Notification policy) or other circumstances beyond your control that must be presented with an official Dean's excuse. We do not grant extensions after an assignment is due.

If you have personal reasons to ask for an extension, and you do so at least a week in advance, it's possible to get one, so please ask.

You cannot make up an in-class or recitation assignment. We will provide opportunities to earn "extra" points on in-class work so that if you miss a small number of these your grade won't be affected. However, frequent absences from class will affect the portion of your grade based on quizzes and in-class work.

Points on assignments will vary. Harder assignments will be worth more than previous assignments, and most assignments will get harder as the semester progresses (harder means takes more time, requires more thought).

Course Policies

Quizzes and Exams taken online or in-class must be your own work, you should not collaborate on them.

On programming assignments, you may consult with professors, and TAs/UTAs about any aspect of the assignment. You may consult with other students only in a general way, e.g., about debugging or Java issues, or questions about wording on the assignment. You cannot actively work with someone unless the assignment specifically grants permission to work together with another student.

Consult 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 you are expected to include a list of the people with whom you have consulted (including students, TA's, tutors, professors) as part of your submission. This is required, it's called thre README file, and failure to provide it will result in rejection of the assignment as complete (you can resubmit.).


Tests will be held during the lecture time and in the same room. The final will also be in the same room.

The tests are open book. The final is open book.

Owen L. Astrachan
Last modified: Fri Jan 20 11:25:25 EST 2006