cs121-26wi

Relational Databases (Winter 2026)

Welcome to CS 121! We’re super excited to have you here this term!

Announcements

Due Next

Calendar

Wellness and Inclusion

It is very important to us that you succeed in CS 121. We provide many extra resources to help you.

It is also very important to us that you maintain your mental wellness throughout the course. A few points are not worth losing sleep over. Everyone on the course staff is available to chat, and you can always attend office hours for a non-academic conversation if necessary. You can also visit the counseling center if you find you need help beyond the course staff. If you have a temporary health condition or permanent disability (either mental health or physical health related), you should contact accessibility services if you have not already. Additionally, if there is something we can do to make your experience better, please let us know.

Diversity, inclusion, and belonging are all core values of this course. All participants in this course must be treated with respect by other members of the community in accordance with the honor code. If you feel unwelcome or unsafe in any way, no matter how minor, we encourage you to talk to Prof. Ordentlich or one of the Deans. We view these sorts of honor code violations as completely unacceptable, and we take them very seriously.

Tools

Airtable Project Registration Extension Link

Course Staff

Instructor

he/him
Book an appointment!
Annenberg 122

Teaching Assistants

Alex Kumar
he/him
askumar@
Andrew Qin
he/him
asqin@

Handouts

The following is a list of handouts that you might find helpful throughout the course. We’ve categorized them by when they are useful.

Syllabus – an overview of the course and administrative information

Collaboration Policy – the course collaboration policy

Project Submission – submitting projects on Gradescope

NanoDB Javadocs – documentation for NanoDB codebase

Schedule

L00 Mon, Jan 05 Relational Databases
Course administrivia
L01 Wed, Jan 07 SQL II
L02 Fri, Jan 09 DB Architecture, Storage I (disks, heap files)
L03 Mon, Jan 12 Storage II (page structure)
L04 Wed, Jan 14 Query Eval pipeline; relational algebra
:( Fri, Jan 16 No Class
DUE Thu, Jan 15
11:30 pm
sql [ guide ]
The main goal of this project is to introduce you to SQL and what kinds of operations relational databases support.
SQLite Setup, Lahman Database, Lahman Documentation
:( Mon, Jan 19 No Class (Martin Luther King Day)
L05 Wed, Jan 21 Query Eval I
L06 Fri, Jan 23 Query Eval II
L07 Mon, Jan 26 Query Eval III
L08 Wed, Jan 28 Query Eval IV
DUE Thu, Jan 29
11:30 pm
storage [ guide ]
This project focuses on adding, removing, and optimizing tuple storage in NanoDB.
NanoDB Setup
L09 Fri, Jan 30 Query Eval V
L10 Mon, Feb 02 Query Eval VI (Join Nodes)
L11 Wed, Feb 04 Midterm (in-class)
L12 Fri, Feb 06 Statistics
L13 Mon, Feb 09 Join Optimization
L14 Wed, Feb 11 Join Optimization
DUE Thu, Feb 12
11:30 pm
join [ guide ]
This project focuses on implementing query planning and join execution in NanoDB.
L15 Fri, Feb 13 Join Optimization
:( Mon, Feb 16 No Class (President's Day)
:( Wed, Feb 18 No Class
:( Fri, Feb 20 No Class
DUE Thu, Feb 19
11:30 pm
statistics
L16 Mon, Feb 23 B+Trees
L17 Wed, Feb 25 B+Trees
L18 Fri, Feb 27 B+Trees
L19 Mon, Mar 02 B+Trees
L20 Wed, Mar 04 Using Indexes
DUE Thu, Mar 05
11:30 pm
planning
L21 Fri, Mar 06 WAL
L22 Mon, Mar 09 Victory Lap
L23 Wed, Mar 11 Final exam (in-class)
DUE Wed, Mar 18
11:30 pm
btree