Skip to content

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

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.