COMS4111 Summer 2017

Policies  | TAs and office hours  
Project 1: Part 1Part 2Part 3  |  Project 2   

Course Information

Meeting 
Monday/Wednesday 5:30 - 8:40pm, location: 545 Mudd Building (map)
Instructor
Alex Biliris (biliris@cs.columbia.edu), 457 Mudd Building, Phone: 973-906-3919, Office hours: right before and after lecture.    
Assistants
Chandra Shankar Kappera, ck2840@columbia.edu
Yingfan Linda Du, Yingfan Linda Du 
Description
The fundamentals of databases and how to develop database-backed applications (data modeling, design/build/query relational/SQL databases). We will also cover basic database engine internals to understand performance (storage, query optimization, transaction processing).  
Prerequisites
Students are expected to be comfortable with data structures. Basic HTML and Python (or, ability to learn on your own during the early weeks of the class) is required for one of the projects although we offer a non programming option (see project 1 description). 
Textbook
Database Management Systems, by Ramakrishnan and Gehrke, 3rd Edition, McGraw Hill, ISBN 0-07-246563-8. Textbook supporting material (including solutions to some problems) can be found online
Grading and workload
15% Four equally weighted homework assignments 
20% Two projects - Project 1 is worth 15% and Project 2 is worth 5% 
25% Midterm (closed books)
40% Final (cumulative, closed books)
 
Grade is on a curve, modified to account for overall class quality. As a guideline, a total weighted numeric score higher than the median will possibly translate to a letter grade of B+ or above and a numeric score below the median will possibly translate to a letter grade of B or below.  Extra credit is added in a way that only benefits the recipient and does not penalyze others in the course.

Syllabus

This schedule is subject to changes as the course progresses. All deadlines for assignments that have not been posted yet are tentative. Lecture notes for a particular lecture will be available on Courseworks ahead of the lecture.   

 

# Date    Topic, Reading Due
1 Mon
May 22
Course Overview. Introduction to Database Systems. 
The Entity-Relationship Model.
Chapters 1 and 2. 
Think of applications for Project 1; interact with other students to discuss ideas and find teammate; use Piazza. Form a team by tomorrow (no deliverable).
2 Wed
May 24

The Relational Model, SQL Schema.
Chapter 3.

Monday May 29: No class, Memorial Day (make up class on Friday June 3)
Project 1.1 approval; Wednesday May 25 just before and just after lecture, Thursday and Friday May 25-26 (no deliverable).
3 Wed
May 31
The Relational Model (cont.) Project 1.1, Thursday June 1, 5pm.
4 Fri
June 2
Relational Algebra.
Chapter 4, Sections 4.1 and 4.2 only. 
5 Mon
June 5
SQL Queries. 
Chapter 5. 
HW1, Monday June 5, 5pm.
6 Wed
June 7
SQL (cont.).  Project 1.2, Thursday June 8, 5pm.
7 Mon
June 12
SQL (cont.), Triggers.

Security and Authorization.
Chapter 21, Sections 21.1 - 21.3 and 21.6.

Normalization.
Chapter 19, except for Sections 19.6.2 (Decomposition into 3NF) and 19.8 (Other Kinds of Dependencies). 

Object-Relational DBMS: Database Design.
Chapter 23, Sections 23.1 through 23.7.
 
Q&A about the midterm exam.
HW2, Monday June 12, 5pm.
Wed
June 14
Midterm Exam (closed book/notes). It covers topics of lectures #1 to #6; it does not include the topics of lecture #7.
8 Mon
June 19
Overview of Storage and Indexing.
Chapter 8 (only at the level of detail covered in class).
Project 1.3
Monday June 19, 5pm.
9 Wed
June 21
Introduction to Query Processing and Optimization.
Chapter 12 (only at the level of detail covered in class).
HW3, by Thursday June 22, 5pm.
10 Mon
June 26

Introduction to Transaction Processing.
Chapter 16 (only at the level of detail covered in class), except for Sections 16.5 ("Performance of Locking") and 16.6 ("Transaction Support in SQL").

Q&A about the final exam.

HW4, by Tuesday June 27, 5pm.
Wed
June 28
Final Exam (closed book/notes).   The final exam is cumulative.
New location: MAT 203 
Project 2, by Wednesday June 28, 5pm.