Lecture: MW 10:30AM-12:15PM @ SENSQ 5502
Instructor: Nicholas Farnan (nlf4 [at] pitt.edu)
GitHub: nfarnan
Office: 6313 SENSQ
Office Hours:
M W 1-2:30PM
Recitations: M 9:30-10:20AM @ SENSQ 5502
W 9:30-10:20AM @ SENSQ 5502
TA: Ekaterina Dimitrova (Grader) (ekaterina@cs.pitt.edu)
GitHub: ekaterinadimitrova2
Office: 6150 SENSQ
Office Hours:
T H F 8:30-10:30AM

Ronian (Ziyu Zhang) (Recitation) (zhangziyu900526@gmail.com)
GitHub: Ronian526
Office: 6805 SENSQ
Office Hours:
M 10:40AM-1:40
7-24 Term project phase 3 has been posted.
7-24 Homework 4 has been posted.

Extra serialization problems (not due as homework) can be found here: extra.
7-16 To connect to PostgreSQL using JDBC, you will need to do the following:
  • First, generate a password for your user with the \password command in psql
  • Next, copy the file /afs/pitt.edu/home/n/l/nlf4/public/postgresql-42.1.3.jre6.jar into the directory where you will run you Java program
  • Compile as normal, but run you Java program as follows:

    java -cp postgresql-42.1.3.jre6.jar:. PROGRAM_NAME

    This will ensure that you have access to the proper PostgreSQL JDBC driver.
7-12 Homework 3 has been posted.
6-26 Term project phase 2 has been posted.
6-13 Homework 2 has been posted.
5-30 Term project phases 0 and 1 have been posted.
5-23 Homeworks 0 and 1 have been posted.
5-14 Welcome to CS 1555/2055!
Class web site is up. Please look over the Course Policies.
5-14 The midterm will be held in class on Wednesday June 20th.
The second exam will be held in class on Wednesday August 1st.
0 Introduction to the course
Data Management overview
Elmasri Ch. 1, 2
1 Relational data model slides
Elmasri Ch. 5.1
2 Using SQL as a DDL
Basic integrity constraints
Elmasri Ch. 5.2, 6.1, 6.2
3 ER Modeling
Elmasri Ch. 3, 4, 9
4 Normalization slides
Elmasri Ch. 14, 15
5 Relational algebra slides
Elmasri Ch. 8.1, 8.2, 8.3
6 Using SQL as a DML slides
Elmasri Ch. 5.3, 6.3, 6.4, 7.1
7 SQL as a VDL
Access controls
Elmasri Ch. 7.3, 30.2, 30.3
8 Advanced integrity constraints
Elmasri Ch. 6.2, 20.1, 20.2, 20.3, 20.6
9 Check constraints
PL/pgSQL documentation
PostgreSQL error code reference
Elmasri Ch. 7.2
10 Database programming
PostgreSQL JDBC info
Elmasri Ch. 10
11 File Storage slides
Elmasri Ch. 16
12 Indexing slides
B+ tree visualization
Elmasri Ch. 17
13 Query Processing slides
Elmasri Ch. 18, 19
14 Concurrency control slides
Elmasri Ch. 20, 21
15 Recovery slides
Elmasri Ch. 22
16 Advanced topics in data management slides
NewSQL article
Elmasri Ch. 18.8, 23, 24

Submission Instructions

If your submission is comprised of multiple files, create a zip file containing the files specified in the assignment.

The submission site must be accessed from within Pitt's network. You can log into the submission site using your Pitt username (e.g., "nlf4") and your PeopleSoft ID (this 7-digit number can be found under "Demographic Information" on the Student Center).

Only your most recent submission will be graded. If you need to amend your submission before the deadline, change the name of your file (e.g., append "-v2") and upload again.

Homework 0

Posted: 5-23 Due: 5-30 @ 11:59PM
Homework 0 is a simple exercise to test that you have no problems submitting homework assignments. Create a text file that contains your full name and title it as follows: hw0-PITT_USERNAME.txt. Submit that for Homework 0

Homework 1

Posted: 5-23 Due: 6-6 @ 11:59PM

Homework 2

Posted: 6-13 Due: 7-2 @ 11:59PM

Homework 3

Posted: 7-12 Due: 7-23 @ 11:59PM

Homework 4

Posted: 7-24 Due: 7-30 @ 11:59PM

We will be using the git version control system via GitHub for the development and submission of term project this term. Please visit the above URL to register an account. You will need to have an account before the first assignment is released.

Some slides on using Git can be found here. The official documentation on how to use git can be found here: https://git-scm.com/documentation

You will NEED a private repository on GitHub to host your project. They are rovided for free to students, see https://education.github.com/ for details on how to apply. Apply for a private repository NOW.

Submission Instructions

To submit a given project phase, simply push all required code to GitHub, and send and email to the TA (Cc'ing the instructor) that gives the commit ID representing your submission of that phase of the project.

Project phase 0

Posted: 5-30 Due: 6-6 @ 11:59PM
Phase 0 and phase 1 description

Project phase 1

Posted: 5-30 Due: 6-13 @ 11:59PM
Phase 0 and phase 1 description

Project phase 2

Posted: 6-26 Due: 7-17 @ 11:59PM
Phase 2 description

Project phase 3

Posted: 7-18 Due: 8-2 @ 11:59PM
Phase 3 description


Fundamentals of Databse Systems, 7th Ed.
by Ramez Elmasri and Shamkant B. Navathe

ISBN-13: 978-0-13-397077-7

Grading Breakdown

First Exam 25%
Second Exam 25%
Homework Assignments 20%
Term Project 25%
Participation 5%

Tentative Syllabus

Course Policies

Course Communications

The instructor and TA will periodically post announcements to the course website. It is every student's responsibility to regularly monitor these announcements. The instructor and TA will periodically email enrolled students with announcements. Students must check their Pitt email at least once per day to ensure these announcements are received. When contacting the course staff via email, messages must be addressed to (or CC) both the instructor and the TA. Email subject should be prefaced with the appropriate prefix (e.g., "[CS15XX]").

Academic Integrity

All assignment submissions must be the sole work of each individual student. Students may not read or copy another student's solutions or share their own solutions with other students. Students may not review solutions from students who have taken the course in previous years. Submissions that are substantively similar will be considered cheating by all students involved, and as such, students must be mindful not to post their code publicly. The use of books and online resources is allowed, but must be credited in submissions, and material may not be copied verbatim. Any use of electronics or other resources during an examination will be considered cheating.

Cheating in this course will result in a grade of F for the course and may be subject to further disciplinary action.

Lecture Attendence

Students are encouraged to attend all lectures, which frequently include material that is not directly taken from the text. If a student misses a lecture, he/she is still responsible for the material covered and is advised to copy the notes from a classmate.

Respectful Discussion

This course may include open discussion or other interactions among students. To allow all participants to express their viewpoints, all discussion must remain civilized and respectful, and participants must avoid comments and behaviors that disparage others. A student who feels their viewpoints are not being respected is encouraged to contact the instructor, who will work to correct the situation without revealing the student's specific concerns to the rest of the class. A student in this situation who does not feel comfortable contacting the instructor directly is encouraged to contact the TA, who will uphold the same degree of confidence in relaying the issue to the instructor.

Audio/Video Recordings

To ensure the free and open discussion of ideas, students may not record lectures, discussion or other course activities without the advance written permission of the instructor. Any recording properly approved in advance can be used solely for the student's own personal use.

Copyrighted Materials

All course material is subject to copyright, including notes, slides, assignments, and solutions. Students are allowed to use the provided material only for personal use, and may not share the material with others, including posting the material on the Web or other file sharing venues.


We believe that students should be able to distinguish between helping one another understand the core concepts of the course material and cheating. We encourage students to discuss the content of the course in ways that will improve understanding without violating academic integrity, such as clarifying the objective of an assignment or discussing general solution tactics.

Late Assignments

All assignments specify a precise due date and time. Late assignments will not be accepted. Students must ensure they understand each assignment's submission procedure in advance of its deadline to ensure that submission difficulties do not cause an assignment to be rejected.

Grade Appeal

An assignment grade can be appealed up to two weeks after it has been returned. After this point, no appeals will be considered. When appealing a grade, attach a single-page cover sheet that provides a clear description of why you feel the assignment was graded unfairly; the entire assignment will be re-graded.

The goal of a grade appeal is to ensure a fair and consistent score. Thus, a score will not be adjusted on an issue of partial credit if the awarded points are consistent with the grading policy adopted for the problem for the class as a whole.

After grades have been posted at the end of the term, any further questions or concerns must be presented to the instructor in office hours at the beginning of the following term.

Make-up Exams

Students must be present for all exams. Make-up exams will be given only in the event of a documented emergency. The instructor must be informed of the emergency in advance of, or as soon as possible after, the missed exam. Missing an exam under any other circumstances will result in a score of 0 for the exam.

Grade Records

All graded materials that a student receives back should be saved in a safe place until after the term has ended and he/she has received and accepts his/her final grade. In this way, any grade discrepancies can be easily resolved.

Students with Disabilities

If you have a disability for which you are or may be requesting an accommodation, you are encouraged to contact both your instructor and Disability Resources and Services, 140 William Pitt Union, 412-648-7890, drsrecep@pitt.edu, as early as possible in the term. Disability Resources and Services will verify your disability and recommend reasonable accommodations for this course.

Religious Observances

In order to accommodate the observance of religious holidays, students should inform the instructor (by email, within the first two weeks of the term) of any such days which conflict with scheduled class activities.

git http://git-scm.com/
Pitt Academic Calendar http://www.provost.pitt.edu/information-on/calendar.html
Pitt Student Counseling Center http://www.studentaffairs.pitt.edu/cchome
Pitt Disability Resources http://www.studentaffairs.pitt.edu/drswelcome