Course Info

The course is a combination of lectures and programming projects in which we will study the internals of modern database management systems. It will cover the core concepts and fundamentals of the components that are used in both high-performance transaction processing systems (OLTP) and large-scale analytical systems (OLAP). The class will stress both efficiency and correctness of the implementation of these ideas. The course is appropriate for graduate students in software systems and for advanced undergraduates with dirty systems programming skills.

  • Instructor: Joy Arulraj
  • Time: Tue/Thu 3:00 – 4:15 PM
  • Location: Instructional Center 109
  • On-line discussion: Piazza
  • Grading tool: Gradescope
  • TAs: Prashanth Dintyala, Sonia Matthew
  • Office hours:
    Joy: Tue/Thu 2:00 – 3:00 PM @ KACB 3324
    Prashanth: Mon 1:30 - 2:30 PM, near KACB 3324
    Sonia: Wed 11 - 12 AM, near KACB 3324



The course is a combination of lectures and programming projects in which we will study the internals of modern database management systems. The course will provide research opportunities in the areas of data management, machine learning, and computer vision.


Students are expected to have completed three undergraduate-level computer systems courses:

  • Data structures and Algorithms (CS 1332) (strict)
  • Computer Systems and Networks (CS 2200) (strict)
  • Design Operating Systems (CS 3210) (recommended)
  • Introduction to Database Systems (CS 4400) (recommended)

and to be comfortable with programming in C/C++. The course is open to both graduate and undergraduate students.

Academic Honesty

All students should adhere to the Georgia Tech Honor Code. Don't forget that the person you would be cheating the most is yourself. University Policies will be followed strictly in this course. Please, pay particular attention to academic misconduct and the policy on incompletes.

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 week and a final exam. Upon successful completion of this course, the student should be able to:

  • Understand and apply state-of-the-art implementation techniques for database management systems following modern coding practices.
  • Identify trade-offs among database systems techniques and contrast alternatives for both on-line transaction processing and on-line analytical workloads.
  • Develop and justify design decisions in the context of a high-performance database system.
  • Implement and evaluate complex, scalable components of database systems, with emphasis on providing experimental evidence for design decisions.
  • Analyze pertinent research papers, including writing reviews of them.

Grading Scheme

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

  • 50% Project
  • 30% Homeworks
  • 15% Exams
  • 5% Reading Reviews


This website is based on a design by Andy Pavlo.