Educational Objectives

This is a graduate-level course on the internals of database management systems. This course has a heavy emphasis on programming projects. There are also readings assigned for each class and a final exam. Upon successful completion of this course, the student should be able to:

Grading Scheme

The final grade for the course will be based on the following weights:

Reading Assignments & Reviews

For each class, there is set of assigned readings. Each student is required to turn in a one paragraph synopsis of the mandatory paper (denoted by the symbol on the course schedule). Students are encouraged to peruse the supplemental readings to enhance their knowledge about a particular, but this not required and these papers will not be covered in the final exam. Students are allowed to miss reading review submissions for three classes during the semester. Late submissions will not be accepted without prior approval from the instructor. You are must also submit a synopsis even for the class that you are the assigned notetaker.

Each review must include the following information:

Students will submit their synopsis using this Google Form before class begins. Late submissions will not be accepted.

WARNING: These reading reviews must be your own writing. You may not copy from the papers or other sources that you find on the web. This includes using on-line tools to generate a paper summary. Plagiarism will not be tolerated. See CMU's Policy on Academic Integrity for additional information.

Lecture Notes

Each student will be assigned as the notetaker for one lecture during the semester. The idea is to compress the slides down into sentences that discuss the main points from the class. All the notes are written in latex.

The notes for each class are due seven days after the lecture date. You will submit the notes as a PR on Github. You are allowed to use assistive technologies (i.e., ChatGPT) for this assignment but you are ultimately responsible for the content.

More information is available on the notes page.

Group Project

The main component of this course will be the group programming project. Students will organize into groups and to implement a part of a larger database system. The projects are designed to be (1) relevant to the materials discussed in class and (2) require a significant programming effort from all team members. The projects will vary in both scope and topic, but they must satisfy this criteria.

There will be multiple milestone deadlines throughout the semester to ensure that students are making progress on their projects.

More information is available on the project page.

Final Exam

The final exam will be a take-home assignment that will be given out on April 24 at the end of the semester. The exam will be long-from questions based on the mandatory readings and topics discussed in during the entire semester. Students will turn in their exam in paper during the final project presentations (to be announced). It's going to be raw, son.