Many classes will be based on research papers. All papers will be linked to from the course schedule; however, in many cases you will need to access from a UMD IP address for free access to the paper. You will never have to read more than one paper per class period. In some cases, we will spend multiple class periods on the same reading.


In the first half of the course, there will be a small number of database implementation programming assignments. These assignments are designed to give you experience building parts of database systems. All assignments will be written in C++.

In the second half of the course, you will submit a response to a series of questions on each paper that we will read in the second half of the course. The purpose of these questions is to make sure that everyone has read the paper before coming to class and will allow us to avoid having to have a final exam in the course. The questions are designed to be non-trivial and make students think about the paper and derive information that is not directly stated in the paper. We cannot accept answers to these questions after class begins, since their purpose is to make sure each student arrives to class prepared.

Each student will be expected to serve on an expert panel for one lecture (there will be a sign-up sheet distributed prior to the expert panel lectures). Members of an expert panel will be expected to perform the reading for that lecture extra carefully and will be given the first opportunity to answer discussion questions during lecture. Many discussion questions will not necessarily have a correct answer, but the goal of the expert panel should be to demonstrate that they have done the reading carefully and are able to discuss it intelligently.

A final project is due at the end of the course. For most students, this will be a single assignment that is more in-depth relative to the assignments given in the first half of the semester. However, students who have grade average above 90% in the course or who otherwise request special permission are welcome to complete a mini-research project instead of the default assignment. More details about the final project will be given after the midterm exam.


This is a graduate level course, and by the end of this class you should have a good understanding of database system architecture and implementation, and be able to use them to solve real problems of modest complexity. The grading breakdown is as follows:

  • Programming Assignments: 15%
  • Answers to paper questions: 20%
  • Class participation: 10%
  • Expert panel: 5%
  • Midterm Exam: 30%
  • Final project: 20%

Note that this class does not have a final exam.