Welcome to Computer Science 235!

This course offers both a theoretical and practical introduction to the design and implementation of database systems. To enroll in the course, you must have taken the introductory CS major courses up to 153 and 154.

Your instructor is Adam Shaw, whose email address is ams at cs dot uchicago dot edu and whose office is Ryerson 157.

Lectures are Tuesdays and Thursdays from 1:30 to 2:50 in Ryerson 251.

Lab sessions are Tuesdays from 4:30 to 5:50 in the MacLab (Regenstein A01C).

The text for the course is Fundamentals of Database Systems, Sixth Edition by Elmasri and Navathe. The book is available on campus at the Seminary Co-op Bookstore and on the Internet, new and used, at the usual online bookstores.

We will use the piazza system to manage questions and answers pertaining to the course and course content. You will need a piazza account to participate. Apart from online assistance, in-person help is available during office hours, listed on the staff page.

Evaluation

There will be no final exam for CS235. The last part of the three-part project will be due during finals week.

Lecture Schedule

(subject to change)

WeekTuesdayThursday
1 course overview; relational databases in a nutshell DBMS architecture; data models; DLL and DML; relational model
2 relational model; constraints; referential integrity relational algebra; tuple calculus
3 relational algebra; tuple calculus SQL
4 SQL; views; aggregation; triggers entity-relationship model
5 entity-relationship to relational web databases and PHP
6 web databases and PHP exam (Thurs May 3)
7 functional dependencies Armstrong's axioms; FDs and normal forms; 2NF, 3NF, BCNF
8 query optimization query optimization
9 transactions and serializability two-phase locking
10 NoSQL (reading period)

Academic Honesty

College-wide honesty guidelines are here.

The following rules of thumb summarize honesty as it pertains to CS 235:

As a corollary to the fourth rule, sharing completed work in advance of its deadline in any way, including posting to the Internet, is expressly forbidden.

As a corollary to the fifth rule, when it is time to do the actual coding, writing, etc., do your own work. Identical submissions from different students will be considered a breach of honesty.

Any student who behaves dishonestly will suffer serious consequences.