COMS4111-02 Spring'17

Syllabus  |  Policies  |  TAs & Office Hours   
Project 1: Part 1Part 2Part 3  |  Project 2   

Course Information

Meeting 
Wednesday 4:10pm 6:40pm, location: 517 Hamilton (map)
Instructor
Alex Biliris (biliris@cs.columbia.edu), 457 Mudd Building, Phone: 973-906-3919, Office hours: Wednesday 3 - 4.        
Topics
The fundamentals of relational databases and how to develop database-backed applications: entity-relationship modeling, logical design of relational databases, relational algebra and SQL, object-relational databases. We will also cover database systems internals such as storage and indexing, query processing and optimization, transaction processing.
Prerequisites
A Data Structures/Algorithms course (COMS W3134 or W3136 or W3137 or an equivalent course taken elsewhere). Fluency in Java or other advanced programming languages is required as well as ability to learn basic Python on your own during the early weeks of the course (see also project 1 description for a non-programming option). This is a first course on databases, intended for both Computer Science majors as well as non-majors. You do not need to have any prior knowledge (practical or theoretical) on databases to take this course.
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 project assignments: Project 1 is worth 15% and Project 2 is worth 5%. Students may choose between a programming option (to be done in Python) and a non-programming option
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 (but not definitely) translate to a letter grade of B+ or above and a numeric score below the median will possibly (but not definitely) translate to a letter grade of B or below. 

Syllabus

This is an approximate schedule; it is subject to changes as the course progresses. All deadlines for assignments that have not been posted yet are tentative and may change during the course. Lecture notes for a particular lecture will be available in courseworks ahead of the lecture. The notes are PDF files, one slide per page; if you plan on printing the notes, you may want to set up the printer to print at least two slides per page.  

 

# Date    Topic, Reading Due
1 Wed
Jan 18
Course Overview. Introduction to Database Systems. 
The Entity-Relationship Model.
Chapters 1 and 2. 
Think of an application for Project 1; interact with other students to discuss ideas and find teammate (no deliverable).
2 Wed
Jan 25
The Relational Model, SQL Schema.
Chapter 3. 
Form a team for Project 1, by Friday Jan 27 (no deliverable).
3 Wed
Feb 01
The Relational Model (cont.) Project 1.1 approval madness; Monday Jan 30 through Friday Feb 03.
4 Wed
Feb 08
Relational Algebra.
Chapter 4, Sections 4.1 and 4.2 only. 
Project 1.1, by Monday Feb 06, 5pm.
5 Wed
Feb 15
SQL: Queries, Constraints. 
Chapter 5. 
HW1, by Wednesday Feb 15, 4pm.
6 Wed
Feb 22
SQL (cont.). Project 1.2, by Tuesday Feb 22, 5pm.
7 Wed
Mar 01
SQL: Triggers.

Embedded SQL, APIs.
Chapter 6. 
 
Q&A about the midterm exam.
HW2, by Friday Mar 03, 5pm. You can not use grace days for this homework.
  Wed
Mar 08
Midterm Exam (closed book/notes)

March 15 - No class (spring break)

8 Wed
Mar 22
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). 

9 Wed
Mar 29

Object-Relational DBMS.
Chapter 23, Sections 23.1 through 23.7.


10 Wed
Apr 05
Storage and Indexing.
Chapter 8 (only at the level of detail covered in class).

Project 1.3, by Tuesday April 4, 5pm.
11 Wed
Apr 12
Query Processing and Optimization.
Chapter 12 (only at the level of detail covered in class).

 HW3.
12 Wed
Apr 19
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").

Project 2

13 Wed
Apr 26
Overflow material, misc topics
Q&A about the final exam.

May 03  - No class (study day)
HW4

  Wed
May 10
Final Exam (closed book/notes)