MPCS 53001 Databases (Spring 2026)

Section 1
Instructor(s) Khaled, Ahmed (ahmedkhaled)
Location Crerar 390
Meeting Times Wednesday 5pm - 7:30pm
Fulfills Core Systems Elective

Syllabus

Course Description:

This course introduces the fundamental concepts associated with the design and work of databases, including 1) the main steps to design a database and the Entity-Relationship (ER) model for an initial database design; 2) the different categories of data and an overview on the other data models with a comparison between SQL and NoSQL databases; 3) the essential properties and theories for the work of a database.

The course focuses on three main types of databases: 1) Relational SQL-based, where we learn about the relational data model, the normalization forms for an optimized design, and the Structured Query Language (SQL) to build relational databases and to store, manipulate, and retrieve data (using MySQL RDBMS); 2) Document-based NoSQL, where we learn about the document data model (using MongoDB) and the MongoDB Query Language (MQL); and 3) Graph-based NoSQL, where we learn about the graph data model (using Neo4j) and the graph query language (Neo4j's Cypher).

The students, in the final project, will design and implement a database for a system/scenario of their choice, then develop a user interface (e.g., web-based) using a programming language (e.g., Java, Python) of their choice that connects and interacts with the created database to execute user interactions through database supported queries.

Course Contents:

  • An Introduction:
  • Entity-relationship (ER) model
  • SQL-Databases:
    • Relational Data Model and Schema Refinement
    • Structured Query Language (SQL) using MySQL:
      • Essential commands, constraints, and operators
      • Join operator, aggregate functions, and nested queries.
      • Interfacing Java/Python programming languages with SQL
  • NoSQL-Databases:
    • Categories of data and properties of big data
    • MongoDB: an example of document-based NoSQL databases
    • Neo4j: an example of graph-based NoSQL databases
  • Further Topics

Coursework:

  • Assignments [homeworks] (60%)
  • Midterm (15%)
  • Quizzes (5%)
  • Group-based final project [multi-parts] (20%)

Recommended (optional) Textbooks

  • Database Systems: A Practical Approach to Design, Implementation, and Management. Authors: Thomas Connelly and Carolyn Begg, 6th Edition.
  • Database management Systems. Authors: Raghu Ramakrishnan and Johannes Gehrke. 3rd Edition.
  • MongoDB: the definitive guide: powerful and scalable data storage. Authors: Shannon Bradshaw, Eoin Brazil, and Kristina Chodorow. 3rd Edition.
  • Graph databases: new opportunities for connected data. Authors: Ian Robinson, Jim Webber, and Emil Eifrem. 2nd Edition.

Course Prerequisites

Completed or concurrently taking MPCS 51036, 51040, 51042, 51046, 51100, CAPP 30122, MACS 30122, or have a Core Waiver for Programming.

This course can not be taken if you are taking or have already completed MPCS 53020 Foundations of Database Systems. There is significant overlap between the two courses.

Other Prerequisites

This course requires competency in Unix and Linux. If you attended the MPCS Unix Bootcamp you covered the required material. If you did not, please review the UChicago CS Student Resource Guide here: https://uchicago-cs.github.io/student-resource-guide/.

Course request information for non-MPCS students: https://masters.cs.uchicago.edu/student-resources/non-mpcs-student-course-requests/

Overlapping Classes

This class is scheduled at a time that conflicts with these other classes:

  • MPCS 53810-1 -- Topics in Algorithmic Game Theory
  • MPCS 52030-1 -- Operating Systems
  • MPCS 52060-1 -- Parallel Programming
  • MPCS 51235-1 -- Advanced User Interface and User Experience Design
  • MPCS 51260-1 -- Human-Computer Interaction
  • MPCS 51238-2 -- Design, Build, Ship

Eligible Programs

MA in Computational Social Science (Year 2) Bx/MS in Computer Science (Option 2: Professionally-oriented - CS Majors) Bx/MS in Computer Science (Option 3: Profesionally-oriented - Non-CS Majors) Masters Program in Computer Science Masters Program in Computer Science (new) Placement: Pass I