Syllabus
CMSC 23530 – Advanced DB Sys – Winter 2025
University of Chicago | Aaron Elmore |
Computer Science | Use Ed to contact |
Course Description
The course will cover advanced topics in database systems. The goals for this class are for you to have:
- A deeper understanding of database systems implementation and research
- Understand how to implement and evaluate your own database system component
- Begin to read database research publications
Planned Topics
Planned Topics:
- Advanced Concurrency Control (Multi-Version Concurrency Control, Snapshot Isolation, Modern OCC, hybrid CC schemes)
- Advanced Indexes (Modern B+ Trees, Adaptive Radix Tree, SurF)
- Multidimensional Data and Indexes (Quad-Trees, KD-Trees, Nearest Neighbor Search, Approximate Nearest Neighbor, LSH, Random Projections)
- Compression in Databases (Basics of compression, Dictionary Compression and variations, Run-length encoding, Compression in query processing, Prefix Coding, PIDS, BuFF)
- Multitenant and Cloud Native Databases (Cloud/Virtualization basics, Decomposed DB design, virtualization, performance isolation, migration, serverless query execution, cold storage)
- Materialized Views (focus on Incremental View Maintenance)
Course Staff
OH Schedule | ||
---|---|---|
Aaron Elmore | JCL 241 - Weds 1:30-2:30 | |
Zoom - Fri 11-12 | ||
Jun Hyuk Chang | JCL 207 - Mon 1:30-2:30 | |
Zoom - Thur 3-4 | ||
Pranav Subramaniam | JCL 205 - Tue 10:30-11:30 | |
JCL 205 - Fri 3:30-4:30 |
Office Hours will start from the Second Week onwards; an announcement will be made on Ed Discussion with the times and locations.
Course Information
Lectures
Lecture Section | Time | Location |
---|---|---|
Section 1 | M/W 3:00pm to 4:20pm | Ryerson 276 |
Communication
There are a number of different ways we’ll be communicating about the class.
-
Course materials: Assignments and other course materials will be made available on Ed which is linked in the sidebar as well.
-
Discussion and announcements: - We will use Ed Discussion for course discussion and announcements. See the applications on the left side of the screen for a link to our Ed Discussion site.
-
Asking Questions: If you need to communicate with the instructional staff and the matter is not private, you should use Ed.
-
Coursework and feedback - We will use Gradescope to collect your homework and projects and to return feedback. See the applications on the left side of the screen for a link to our Gradescope site.
-
Office hours - Office hours are times when the course staff are available for you. The instructor and teaching assistants will have scheduled office hours in person and/or online. While most students use this as an opportunity to ask about coursework, you’re free to ask about or discuss things that are related directly or indirectly to the course or to computer science more generally.
Textbook
Some readings will be assigned from the following textbook: Database System Concepts by Silberschatz, Korth, and Sudarshan 7th edition preferred, 6th edition OK More Info: https://www.db-book.com/index.html
In addition to the textbook, we will also be using the Rust Guide as a guide for the Rust programming language. The Rust Programming Language is also a good resource for learning Rust, and is available online for free or in print for purchase.
Paper readings will also be assigned from various database conferences and be made available on Ed.
Software Needed
- Access to a *-nix Terminal Shell (Linux/Mac/WSL on Windows)
- Rust Compiler and Toolchain (Covered in the Rust Primer)
- Editor of your choice (VSCode Recommended)
See the UChicago CS Student Resource Guide for guidance on getting your environment set up.
Getting Help
This is a fast-paced course; if you feel that you are falling behind or need help, please reach out via Ed Discussion or during office hours. In particular, it is highly recommended that you start the projects early to have ample time to reach out to the course staff. It is essential to understand the concepts and material well before implementation and to ask questions early and often.
Coursework
In addition to attending lectures, there are several programming projects, paper summaries, and several short quizzes.
Details & Due Dates are listed on the Calendar page.
:::{note} The dates for homework and projects are subject to change with notice. :::
Quizzes
This course consists of 4 short quizzes. If you require special accommodations for the quizzes, please reach out to SDS, as indicated in the Accessibility Section of the course policies. The intention to offer many short quick quizzes in class to help you gauge your understanding of the material.
Grading Breakdown
Your final grade will be broken down as follows:
- Homeworks/write-ups (~13%)
- Project (~65%)
- Quizzes/Exams (~18%)
- Class participation/good citizenship (~4%)
We reserve the right to determine the final score to grade mapping, but you can expect that a 90% will earn a minimum an A-, 80% earns a B-, and 70% earns a C-.
Participation/ Good Citizenship
A small part of your grade comes from participation. If your grade ends up on a border between two grades (e.g. B+ and A-), this can sway your grade. You start off with 2% (out of 4%). Participation can be earned in several ways listed below. Excelling in 1 category will you ~+2% (e.g., one of the most active students in answering questions on Ed). Doing well in 1 category will get you ~1%. Showing up and listening to every lecture, and asking for help with HW on Ed or Office Hours do not count as participation.
- Showing up to most (not all) classes and participating in discussion/questions
- Being active on Ed by answering other students' questions/helping with small technical issues
- Reporting issues and providing fixes/patches with homework/instructions. This could be in the form of adding additional documentation, providing fixes to bugs, adding new tests that capture corner cases/possible bugs, etc.
You can lose participation/good citizenship points via: Not following question-asking guidelines (there will be a pinned ed post) - Messing up Gradescope/GitHub submissions after the first assignment (e.g. we have to fix submissions for you) - Asking for exceptions to things that say no exceptions (extenuating circumstances have guidelines to circumvent this, which following the guidelines does not result in any participation penalty) - Asking a TA to solve your HW/MS. - Emailing things that should be posted on Ed.
Late Submissions
You are allowed a total of 4 days (96 hours) of late submission time for use in this course. You may use this slack time as you wish. You do not need to request for an extension - Gradescope will automatically keep track of your late submissions for this course. No homework will be accepted more than 5 days late.
::: {warning} A total/final grade penalty of 4% per additional late day used will apply to submissions that exceed the threshold. This penalty is applied per minute, which equates to ~ 0.166% per hour past the given 120 hours or ~.0027% past the given 7200 minutes (120 hours). :::
Extenuating Circumstances
If you believe you have extenuating circumstances that warrant an exception to this policy, you have the following option:
-
Undergraduate Students: If you have an emergency and feel it warrants an exception to this policy, you should first be in contact with your College advisor, as the College should be aware of the emergency and ensure that any proper university or department policies are followed if needed (for example, an injury might require SDS accommodations). Once you have contacted the College, please contact us by email with a CC to your college advisor. Contacting us as early as is practical given the emergency will make the process of accommodating your situation work more smoothly for everyone. We care about your well-being and success in the class, and have put these policies in place to be fair and give students agency.
** Not following this procedure will be counted as poor class citizenship**