CMSC 235000 / 335000 Introduction to Database Systems Spring 2025
Course Description
The course will cover the foundations of Database Management Systems (DBMS). This includes data models, database design, SQL, core database system components (e.g., transactions, recovery, query processing), distributed databases, and systems for data analytics (e.g., column-orientated databases, data warehouses).
The goals of this class are for you to have:
- The ability to model and design a database
- An understanding of the core components of a database management system
- The ability to understand SQL queries and write your own
- An understanding of the differences between database systems and data models
- To develop your systems' thinking skills
Course Staff
Instructors
Suhail Rehman Office: Ry 161B Office Hours: Tue 2-3:30 Ry 161B Aaron Elmore Office: JCL 241 Office Hours: Tue 11-12:30 Zoom
TAs
TA | OH Schedule | |
---|---|---|
![]() |
Riki Otaki | Weds 10-12 JCL 205 |
![]() |
Jun Hyuk Chang | Mon 1-2 JCL 205, Fri 1-2 Zoom |
![]() |
Charles Benello | Friday 10-12 JCL 205 |
![]() |
Henry Bloom | Thurs 7-9pm JCL 205 |
![]() |
Kathir Meyyappan | Tue 4-5 JCL 205, Thur 4-5 JCL 205 |
![]() |
Charlie Sabino | Thurs 2-4 JCL Common Area 2b |
Office Hours
Office Hours will start from the Second Week onwards; an announcement will be made on Ed Discussion with the times and locations. Zoom links will be on the pinned Ed post.
Date-Time | Person | Location |
---|---|---|
Mon 1-2 | Jun | JCL 205 |
Tue 11-12:30 | Aaron | Zoom |
Tue 2-3:30 | Suhail | Ry 161B |
Tue 4-5 | Kathir | JCL 205 |
Wed 10-12 | Riki | JCL 205 |
Thurs 2-4 | Charlie | JCL Common Area 2b |
Thurs 4-5 | Kathir | JCL 205 |
Thurs 7-9 | Henry | JCL 205 |
Fri 10-12 | Charles | JCL 205 |
Fri 1-2 | Jun | Zoom |
Course Information
Lectures
Lecture Section | Time | Location |
---|---|---|
Section 1 (Rehman) | Mon/Wed (1:30-2:50pm) | Rosenwald 011 |
Section 2 (Elmore) | Mon/Wed (3-4:20pm) | Rosenwald 011 |
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.
-
Discussion and announcements: - We will use Ed 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. Your homework is not considered submitted unless you turn it in on Gradescope, github pushes will not count.
-
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
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.
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, a midterm, and a final exam
Homework assignments will consist of programming problems to help practice and reinforce concepts learned in the lecture.
Details & Due Dates are listed on the Calendar page.
Homework and Project Due Dates
The dates for homework and projects are subject to change with notice.
Late Policy
Late submissions will be accepted with a penalty. See the Late Submissions section for more details.
Git History Requirement
Note that for the Crusty Project milestones you will be required to have at least 8 git commits per milestone that are non-trivial (e.g. completing some significant piece of functionality or bug fix). Failure to use adequate pushes will result in a 50% penalty
Exams
This course consists of two exams: a midterm and a final exam. If you require special accommodations for the exams, please reach out to SDS, as indicated in the Accessibility Section of the course policies.
If you have a conflict with the midterm, please reach out to the instructor as soon as possible.
For the final, the registrar schedules the finals so there should be no conflict. We require that all students are present on campus for the final and will not offer early or remote finals.
Midterm Exam
The Midterm exam will be held on Wednesday, April 30th from 7:00pm - 9:00pm at Kent 107. Further details will be announced closer to the date.
Final Exam
TBD
Grading Breakdown
Your final grade will be broken down as follows:
- 34% Exams (equal weight between midterm and final exam)
- 11% Homeworks Assignments (HW0, Rust Primers I & II and SQL)
- 51% Project Milestones (CrustyDB I, II, III)
- 4% Participation / Good Citizenship
Students taking the course for graduate credit will have an additional project milestone and a different grading breakdown.
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 5 days (120 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. Note you are not able to retroactively take back submissions or change what submission are used.
Final Grade Penalties
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 options:
-
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.
-
Graduate Students: If you have an emergency and feel it warrants an exception to this policy, you should email the instructors.