Home » Info


Grading: Grading is done on an absolute, but adjustable scale. In other words, 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% or more guarantees a grade in the B range; 70% or more guarantees a grade in the C range; 60% or more guarantees a grade in the D range.

  • Homeworks (25%): There are four homeworks, with a mix of written and programming problems. All homeworks have an initial due time of 11:59pm, and there will be an hour grace period without penalty. Late submissions beyond that will only be made in the case of documented excuses; follow the standard university procedure for filing them—in other words, you must submit an Incapacitation Form, Religious Observance Notification Form, or Notification of Varsity Athletic Participation Form; or you must arrange for your academic dean to email the instructor regarding your circumstances.
  • Gradiance Exercises (10%): Gradiance is an online service pioneered by one of the authors of the textbook, Prof. Jeffrey Ullman at Stanford. One of the best features of Gradiance is that you are permitted to test yourself on a particular topic as many times as you like. You receive immediate feedback for each attempt, which avoids the shortcoming of the traditional submit-and-then-wait-for-grades assignments where one error in understanding can permeate solutions to multiple problems and does not get rectified until much later. We encourage you to continue testing on each topic until you complete the part of the assignment with a 100% score. Gradiance access is free. For more information on obtaining and using Gradiance, please see the Gradiance Help document. There will be about 10-12 Gradiance exercises throughout the semester, timed to exercise materials from recent lectures. Gradiance deadlines are hard; no late submissions will be considered. However, when calculating your final grade, we will automatically drop your two lowest Gradiance exercise scores.
  • Project (25%): The course project are to be done in groups of about five members. Details will be released on Sakai soon.
  • Midterm (20%) and final (20%): Both midterm and final exams are open-book and open-notes, but no use of smart phones or laptops is allowed. Final is comprehensive but will focus on materials not already covered by the midterm. As the difficulty of an exam is sometimes hard to calibrate, the instructor may apply a uniform adjustment to all exam scores such as the class average is not too low. Such an adjustment, if any, will only be positive; in other words, the grades will never be “curved down.”

Gradescope: We will use Gradescope (follow the link from the navigation bar) for submission and grading of (non-Gradiance) homework and project work, as well as grading of exams. Be sure to read Gradescope Help for instructions.

Communication: You should check your email regularly for important course-related announcements. Old email messages can be found under “Email Archive” on Sakai. All questions about course materials or those of general interest to the class should be directed to Ed; do not email the course staff. You will get your questions answered faster on Ed than via personal emails to the course staff, because Ed is monitored closely by everybody in the class, not just the course staff. Other inquiries/requests (e.g., SDAO or other private matters) should be directed to compsci-316@duke.edu, which will reach all senior course staff. Emailing individual instructors or TAs will have much longer delays.

Computing: You will need access to a computer (any major OS will do) on which you are allowed to install new software. We will also use cloud-based virtual machines—see Help for details. Students with demonstrated high financial need who have limited access to computers may request assistance in the form of loaner laptops.

Standards of Conduct: Under the Duke Community Standard (see also here), you are expected to submit your own work in this course, including homeworks, projects, and exams. On many occasions when working on homeworks and projects, it is useful to ask others (the instructor, the TA, or other students) for hints or debugging help, or to talk generally about the written problems or programming strategies. Such activity is both acceptable and encouraged, but you must indicate in your submission any assistance you received. Any assistance received that is not given proper citation will be considered a violation of the Standard. In any event, you are responsible for understanding and being able to explain on your own all written and programming solutions that you submit. The course staff will pursue aggressively all suspected cases of violations, and they will be handled through official University channels.