CMSC 235000 / 335000 Introduction to Database Systems Spring 2023
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
Aaron Elmore Office: JCL 241 Office Hours: Monday 2-2:50 JCL 241 - OH Queue Virtual OH on Zoom: TBD
Suhail Rehman Office: JCL 208 Office Hours: Wed 12pm -- 1 pm JCL 205 - OH Queue Virtual OH on Zoom: TBD
Note: Use the Virtual OH Queue to get in line for OH.
Rui Liu, Office Hours: Weds 5-6:30 (except April 5th) - JCL 207
Zhe Heng Eng, Office Hours: Mon 10-11:30 - JCL 207
Jingyi Jia, Office Hours: Fri 10:30-12:00 - JCL 205
Eric Liu, Office Hours: Thurs 6-7:30 - JCL 207
Zachary Rothstein, Office Hours: Tues 2:15-3:45 - JCL 205
Nicolas Rinn, Office Hours: Thurs 10:30-12 - JCL 205
Section 1 (CMSC235/335) - Aaron Elmore
Monday/Wednesday 3:00pm to 4:20pm - Stuart Hall 102 - Class Schedule
Section 2 (CMSC235) - Suhail Rehman
Tuesday/Thursday 12:30pm to 1:50pm - Ryerson 177 - Class Schedule
Section 3 (CMSC235) - Suhail Rehman
Tuesday/Thursday 3:30pm to 5:50pm - Rosenwald 011 - Class Schedule
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 Discussion which is linked in the sidebar as well as from Canvas.
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.
If you need to communicate with the instructional staff and the matter is not private, you should use Ed.
Course work 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 course work, you’re free to ask about or discuss things that are related directly or indirectly with the course or with computer science more generally. To be seen for an OH you should use the virtual OH queue web and not show up directly.
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
- 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.
This is a fast-paced course, if you feel that you are falling behind or need help please reach out via Ed Discussion or by coming to office hours. In particular, it is highly recommended to start on the projects early, so that you have ample time to reach out to the course staff.
In addition to attending lectures, there are a number of programming projects, a midterm and a final exam
Homework assignments will consist of programming problems to help practice and reinforce concepts learned in lecture.
Details & Due Dates are listed on the Assignments page.
The dates for homework and projects are subject to change with notice.
Your final grade will be broken down as follows:
- 34% Exams (equal weight between midterm and final exam)
- 62% Homeworks (1 SQL assignment, 3 crusty assignments, hw0, rust primer)
- 4% Participation / Good citizenship
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 discussion, watching the videos, and asking for help with HW on Ed or OH does not count as participation.
- Showing up to most (not all) classes and participating through 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.
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.
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).
23500: 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.
33550: If you have an emergency and feel it warrants an exception to this policy, you should email email@example.com and firstname.lastname@example.org (Megan Woodward, Student Affairs Administrator).
The Midterm exam will be held on Tuesday, April 25th from 6:30pm - 8:30pm at Kent 107. See Announcement
The Final exam will be held on Wednesday, May 24th from 8:00pm - 10:00pm at KPTC 106 and KPTC 120. | See Announcement | Registrar's Site
You must adhere to The University of Chicago policy on academic honesty:
The above rules have the final say in all cases, but to summarize as it pertains to this course:
- Do not copy anyone's work.
- Do not allow your work to be copied.
- Do not submit work identical to another student's (this means more than just copying. Writing up detailed pseudo-code together can result in identical code that was not "copied").
- Document all collaboration.
- Credit all sources.
- You are not allowed to use any AI/ML-based code assist/completion tools such as ChatGPT, Github Copilot etc. All code you submit must be your own.
- If you use any source for a small question (e.g. how to loop through the keys of a hash map), please include the source as a comment in your code. For example:
// Referred to https://stackoverflow.com/questions/58611896/how-to-return-an-iterator-over-the-keys-of-a-hashmap-from-a-trait-implementation
Sharing work in advance of the deadline in any way, including posting to the internet, is expressly forbidden. We take academic honesty seriously and violations will result in serious consequences. Please note: if you are found in violation of our academic honesty policy, either through sharing or through copying, the effect on your grade will be severe. At minimum, your final course grade will drop one full step (letter). At maximum, you will receive an F in the course. Furthermore, please note that the instructors are required to report all infractions to the College. If you violate our academic honesty policy, you may be subject to further penalty or disciplinary action by the College.
The University of Chicago is committed to diversity and rigorous inquiry that arises from multiple perspectives. We concur with that commitment and also believe that we have the highest quality interactions and can creatively solve more problems when we recognize and share our diversity. We thus expect to maintain a productive learning environment based upon open communication, mutual respect, and non-discrimination. We view the diversity that students bring to this class as a resource, strength and benefit. It is our intent to present materials and activities that are respectful of diversity: gender, sexuality, disability, socioeconomic status, ethnicity, race, religious background, and immigration status. Any suggestions as to how to further such a positive and open environment in the class will be appreciated and given serious consideration. If you have a preferred name different from what appears on the class roster, or preferred gender pronouns you would like us to use, please let us know.
The University of Chicago is committed to ensuring equitable access to our academic programs and services. Students with disabilities who have been approved for the use of academic accommodations by Student Disability Services (SDS) and need reasonable accommodation(s) to participate fully in this course should follow the procedures established by SDS for using accommodations. Timely notifications are required in order to ensure that your accommodations can be implemented. Please meet with me to discuss your access needs in this class after you have completed the SDS procedures for requesting accommodations.
See UChicago forward for latest Covid policies.