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 (40%): There are four homeworks, to be completed individually, 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 or Director of Graduate Studies to email the instructor regarding your circumstances.
  • Project (30%): The course project are to be done in teams. Teams can select from one of the three tracks: standard, open, and internals. The standard and open tracks focus on developing application of database systems, and we expect teams of 5. The internal track focuses on developing database system internals, and we expect teams of 2-3. Details will be released on the website.
  • In-class quizzes (30%): There are two in-class quizzes, one before the Spring Recess and the other before the Graduate Reading Period. Both quizzes are open-book and open-notes, but no use of smart phones or laptops is allowed. As the difficulty of the quizzes is sometimes hard to calibrate, the instructor may apply a uniform adjustment to all quiz 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.”

Communication: 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. You should also check your email regularly for important course-related announcements send through Ed. Other inquiries/requests (e.g., SDAO or other private matters) should be directed to, 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 containers—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 quizzes. On many occasions when working on homeworks and projects, it is useful to ask others (the instructor, the TA, other students, or even generative AI tools) 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.