top of page


Database System Technology

Instructor: Niv Dayan

Lectures: Tuesday 2-4 pm, MS2170

Tutorials: Thursday, 3-4 pm, SS2110

TAs: Akshay Bapat & Pooyan Habibi

Office Hours: Tuesday & Thursday at 4 pm

Artificial Intelligence

Course Description

Database management systems are the bookkeepers of modern civilization. This course covers the algorithms and data structures that constitute the guts, bones, and arteries of these systems. Much of this course is about understanding the properties of modern hardware devices and designing data structures and access methods that optimize for them. We will also see that there is usually never one "correct" way for storing data: it is a question of managing trade-offs to optimize for what the user is trying to do. This course is important for anyone who intends to work with, tune, extend, or build data management systems. 


We will be using Piazza as our main discussion board. You are responsible for reading all postings made by me or the TAs. Please use Piazza to ask questions about assignments and course lecture materials so that everyone can benefit.


Course announcements will arrive through Quercus. Aside to that, this course website is required reading. It contains essential material and will be updated throughout the semester. Please use Piazza whenever possible to ask questions about course material. For personal questions, email me to Please include "csc443" in the subject line along with your full name. If you do not hear back quickly, we are always available during office hours to help.

Final Project

The course involves a major group programming assignment. as described in the following google doc. The cheatsheet is here. The grading sheet is here

Final Exam

the final exam will be scheduled by Arts & Science and take place during the examination period. 


The University of Toronto is committed to accessibility. If you require accommodations or have any accessibility concerns, please visit Accessibility Services as soon as possible.


Students should have taken the courses listed in this calendar entry or have equivalent knowledge in algorithms, data structures, relational algebra, SQL, and operating systems. Hands-on experience with C/C++, Java or Python is also required.

Reading Material

The course textbook is "Database Management Systems" by Raghu Ramakrishnan and Johannes Gehrke, 3rd Edition. It is available new and used at the UofT bookstore and in the library. We are interested in Parts III to V. While this textbook is classic, it is also dated (20 years old). Therefore, the reading material will also draw from various sources, including research papers and articles, about state-of-the-art advances in the field. 

Academic Integrity

Homeworks should be done individually and the work you submit must be your own. It is an academic offence to copy someone else's work. Whether you copy or let someone else copy, it is an offence. Academic offences are taken very seriously. At the same time, we want you to benefit from working with other students. It is appropriate to discuss course material related to homeworks, and we encourage you to do so.

Marking Scheme

There will be a midterm (20%), a final (40%) and a group project (40%) for this course. 

Academic Integrity

The project hand-ins must be the group’s own work. It is an academic violation to copy code or experimental results from other groups, whether you copy yourself or let someone else copy. That said, we encourage you to discuss course material widely with your fellow students within and across groups. 

Course schedule

We hope this course will get you excited about research. For students who excel in this course and seek research opportunites, check out my home page and get in touch. 

bottom of page