Course Syllabus

CS 122A: Introduction to Data Management (Summer 2025)

Lectures: Tuesdays/Thursdays, 9:30 am - 10:50 am, Rowland Hall 104

Discussion Section A1: Fridays, 10:00 - 10:50 am,  Rowland Hall 114

Discussion Section A2: Fridays, 11:00 - 11:50 am,  Rowland Hall 114

Staff

Office Hours (Subject to change)

Email
Instructor: ​Prof. Chen Li

Tuesdays 11 am - noon, DBH 2086

chenli AT ics DOT uci DOT edu
TA: Sarah Asad

Thursday 11am - 12pm (ICS 458A)

sasad2@uci.edu
TA: Yunyan Ding

Monday 1:00 - 2:00 p.m. (ICS 458A)

yunyad1@uci.edu

Lectures

ID Date Instructor Content Textbook
1 06/24/25 (Tu) Sarah Asad Logistics and DBMS Introduction: PDF1 PPT1 Ch. 1
2 06/26/25 (Th) Sarah Asad Big Picture, ER Modeling: PDF2 PPT2 Ch. 2
3 07/01/25 (Tu) Sarah Asad ER Modeling cont: PDF3 PPT3 Ch. 2
4 07/03/25 (Th) Sarah Asad ER to Relational: PDF4 PPT4 Ch. 3
5 07/08/25 (Tu) Chen Li ER to Relational, cont: PDF5, PPT5 Ch. 3
6 07/09/25 (Th) Chen Li Relational Algebra (I), PDF6, PPT6 Ch. 4.1-4.2
7 07/15/25 (Tu) Sarah Asad, Chen Li Learning relational operators in Texera, PDF7, PPT7 hub.texera.io
8 07/17/25 (Th) Chen Li SQL (1): SPJ, Nested Queries, Aggregation, PDF8, PPT8 Ch. 3.4, 5.1-5.5
9 07/22/25 (Tu) Chen Li Ditto, brief review  
10 07/24/25 (Th) Chen Li Midterm, in class  
11 07/29/25 (Tu) Chen Li SQL (2): Null, Outer Joins, CRUD, ICs, PDF9, PPT9 Ch. 5.5-5.7
12 07/31/25 (Th) Chen Li SQL (3): Triggers, Views, Access Control, PDF10, PPT10 Ch. 3.3, 3.6, 5.7-5.9, 21.1-21.3
13 08/05/25 (Tu) Chen Li Relational Design Theory (1), PDF11, PPT11  (S13) Ch. 19.1-19.6
14 08/07/25 (Th) Chen Li Relational Design Theory (2), PDF12, PPT12 (S7)  Ditto
15 08/12/25 (Tu) Chen Li Ditto (S16) Ditto
16 08/14/25 (Th) Chen Li Record storage and indexing,  PDF13, PPT13  (S6) Ch. 9.1, 8.1-8.3, 10.1, 10.3
17 08/19/25 (Tu) Sarah Asad Ditto Ditto
18 08/21/25 (Th) Chen Li Physical DB Design, PDF14, PPT14 (S9) Ch. 8.5, 20.1-20.7
19 08/26/25 (Tu) Chen Li Ditto.    Ditto
20 08/28/25 (Th) Chen Li Beyond CS 122A, PDF15, PPT15. Review  

Homework

Due Date Late Due Date Solution
HW1 - ER Diagram  7/3 Thursday 11:59PM  7/4 Friday 11:59PM  Team Work Allowed Available in HW2
HW2 - Relational Modeling 7/14 Monday 11:59PM 7/15 Tuesday 11:59PM Done Individually HW2 Solution
HW3 - Relational Algebra  7/25 Friday 11:59PM  7/26 Saturday 11:59PM Done Individually HW3 Solution
HW 4 - SQL 8/6 Wednesday 11:59PM 8/7 Thursday 11:59PM Done Individually  HW4 Solution
HW5 - Advanced SQL 8/16 Saturday 11:59PM 8/17 Sunday 11:59PM Done Individually  HW5 Solution
HW6 - Relational Design Theory and Indexing 8/28 Thursday 11:59PM 8/29 Friday 11:59PM Done Individually  HW6 Solution

Exams

  • Midterm: July 24, Thursday, in-class, in-person. [Sample Midterm]
  • Final: Friday, August 29, 2025, 9:30 AM – 11:30 AM, same classroom (Rowland Hall 104). [Sample Final]

Course Objectives

This course provides students with an introduction to the design of databases and the use of database management systems in support of applications. It covers the entity relationship (E/R) approach to database design. It then covers the relational data model, mapping of E/R designs to relations, relational database design principles, abstract query languages such as the relational algebra and relational calculus, and the industry-standard query language, SQL. Students will gain exposure to how relational database management systems are used to manage an actual database. Time permitting, the course will also touch lightly on advanced database management topics.

This course is aimed at database design and the use of database management systems in implementing database applications. It feeds into a follow-on project course, ​CS122B, whose focus is data-centric Web applications. The CS122A/B course sequence does NOT cover the internals of database systems; that material is covered in the undergraduate course ​CS122C (co-listed as ​CS222) and its graduate-level follow-on course CS223. There is also CS 122D titled "Beyond SQL Data Management." Interested students are strongly encouraged to take one, two, or all of these courses.

Prerequisites

Students should have programming experiences in Java, C#, or C++.

Required textbooks

Database Management Systems (3rd Edition) by Raghu Ramakrishnan and Johannes Gehrke, a.k.a. "the Cow book".

Grading Criteria

Homework: 30%
Quizzes: 5%
Midterm: 30%
Final: 35%

Homework Assignments

Each assignment must be turned in by the assigned due dates/times on GradeScope. For each assignment, we will offer a 24-hour "grace period", and will therefore accept submissions turned in within 24 hours of the due date, with a 10-point penalty. It's 10 points, not 10 percent. For example, if your late project got 87 points, then your real score will be 87-10=77 points. Late assignments will NOT be accepted beyond the grace period, so do always aim to be on time! Please don't even ask, as this is what the 1-day grace period is intended for.

Discussion Sessions

There will also be short weekly quizzes in the discussion section to give you further practice with the course material. Those will count very little towards your final grade. They are mostly a discussion session participation score, and they're really just there for your benefit to give you another opportunity to check your understanding of things. You will get the full credit for each discussion session if you attend it, or 0 if you are absent.

 

Grade Change Policy

For all of the graded assignments as well as the exams, if you disagree with the grading, you may discuss your concerns with the relevant staff member within 1 week after they are returned. After that, all grades will be considered final.

Policy on Academic Honesty

  • All students will be expected to adhere to the UCI and ICS Academic Honesty policies (see https://conduct.uci.edu/students/academic-integrity/index.php for details). Any student found to be involved in cheating or aiding others in doing so will be academically prosecuted to the maximum extent possible: that means you will fail this course. Just say no to cheating!
  • In case you reuse another party's source code for certain generic tasks (e.g., JDBC access) make sure you explicitly comment on its origin in your source code.

Course Summary:

Course Summary
Date Details Due