• Grading: Grading will be done on an adjustable curve.  Based on the overall class performance, 30% or more students will get a grade in the A range, the next 40% or more will get a grade in the B range, and 30% or less will get a grade in the <= C range. At the discretion of the instructor, the grading scale may slide down (i.e., grades go higher), but it will not slide up. (note “more” and “less”, i.e. a good performance of the entire class may lead to a higher average grade!)
  • Homeworks (35%): There are four homeworks, with a mix of written problems, programming problems, and supplemental online Gradiance (see below) problem sets and labs. Gradiance deadline is hard; no late submissions will be considered. Parts of the non-Gradiance homework that are submitted late will receive an automatic deduction of 5% per hour late, and will receive no credit after the sample solution becomes available. Exceptions will only be made in the case of documented medical/dean’s excuses; follow the standard university procedure for filing these excuses.
    • 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 Help/Gradiance section.
  • Project (25%): The course project are to be done in groups of up to four. Details can be found in the project description under Schedule.
  • Midterm (20%) and final (20%): Both midterm and final exams are open-book and open-notes. Final is comprehensive but will focus on materials not already covered by the midterm.

Book: We use the following book: Database Systems: The Complete Book, by Hector Garcia-Molina, Jeffrey D. Ullman, and Jennifer Widom. 2nd Edition. Prentice Hall. 2008. See the publisher’s book page and the Amazon book page. Relevant chapters for reading are posted under Schedule.

Communication: You should check your email regularly for important course-related announcements. Old email messages can be found in the email archive. All questions that may be of general interest to the class should be directed to Piazza; do not use the mailing list. You will get your questions answered faster on Piazza than via personal emails to the course staff, because Piazza is monitored closely by everybody in the class, not just the course staff.

Sakai: We will use the Sakai course management system for grades and sample solutions. Sample solutions will be posted in Sakai under “Resources.”

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.

Standards of Conduct: Under the Duke Community Standard, 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.