Compsci 100, Fall 2009, About


image *Professor Owen Astrachan
  • office: D241, LSRC
  • email: ola at
  • AIM: ola314159
  • phone: 660-6522
  • office hours: Tuesday 11-12, Thursday 1-2, whenever my door is open.

CS Department
	          Image *TA Dima Korzhyk
  • office: D343 LSRC
  • email: dima AT cs DOT duke DOT edu
  • phone: 660-6564
  • office hours: Tuesday 4:30-5:30, Friday 11:30-12:30, by appointment


UTA hours and information


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

Introduction to Programming in Java: An Interdisciplinary Approach, Required, by Robert Sedgwick and Kevin Wayne


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  35%
APTs 10%
recitation/classwork/community 5%
quizzes/group-work/written  5%
tests (2)  20%
APT quiz/tests 5%
final exam  20%


APTs are Algorithmic Problem-solving/Programming Testing problems and programs. You'll be given a description of a problem and asked to write code to solve it -- testing the code online and when you're happy with the code submitting it for grading. We don't look at the source code when grading, we run it and test it. However, you should strive to make your code small and beautiful. APTs will typically be due on Tuesdays or Thursdays. We will not accept late APT programs this semester. Keeping up with APTs ensures you understand the topics we're discussing in class. You'll have many chances to do extra APTs, thus being able to make up for missed submissions.

We'll have four APT quiz/tests where you'll be given a straightforward APT to code and 24 hours to submit the solution. Think of these as online quizzes. Four will count, but we'll give you at least eix -- so you have a chance to finish early or make up for points missed.

Late Programming Assignments

Assignments turned in on time receive no penalty. Assignments turned in up to four days late incur a 10% penalty. Assignments turned in more than four 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 programming assignments will be due on Tuesday. This means if you turn in an assignment before the Monday after it's due (on Tuesday) you'll earn a 10% penalty -- that's not too much! (wed, thur, fri, sat/sun is four days).

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. This means you don't talk to anyone or look up anything on the web unless you're given instructions otherwise. You can always use notes and the book for quizzes and exams.

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. You can ask for hints or help, but if you do you must acknowledge this in your README that you submit with each assignment. Similarly, if anyone looks at your code to offer your help, guidance, or words of encouragement you must acknowledge this in your README.

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 the 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. See the syllabus page for dates and times.

The tests are open book/notes. The final is open book/notes. This doesn't mean you should rely heavily on books or notes.