Welcome to CS 121! We’re super excited to have you here this term!
Announcements
-
Join Project ReleasedProject 2, Join, has now been released on the course website and is due on Thursday, Feb. 12, at 11:30 pm....(continued here)
-
NanoDB and Storage Project ReleasedThe NanoDB repository has been released and the project registration link is on the course website. Setup instructions can be found there as well. Project 1 is due on Thursday, Jan. 29 at 11:30pm....(continued here)
Due Next
-
join due @ 11:30 pm on Thu, Feb 12 -
statistics due @ 11:30 pm on Thu, Feb 19
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
Course Staff
Instructor
Teaching Assistants


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 |
