CS4604 Spring 2021
CS 4604 is intended to be a first course in database systems for advanced undergraduates in computer science. It offers students an introduction to the design and programming of database systems. In particular, we will cover the ER (entity-relationship) approach to data modeling, the relational model of database management systems (DBMSs) and the use of query languages such as SQL. We will also cover relational algebra and the use of SQL in a programming environment. We will also touch upon query processing and the role of transaction management. We will also devote some time to current topics of research such as NoSQL databases, data mining and warehousing, cloud databases. Topics outside the scope of this course are how to implement a DBMS in detail, active database elements, and object oriented DBMSs.
Class meets Tuesday and Thursday from 3:30 PM to 4:45 PM using Zoom: https://virginiatech.zoom.us/j/87379829096 (Online with Synchronous meetings).
Students are required to complete these two online sessions:
3:00 PM - 4:00 PM
11:00 AM - 12:00 PM
2:00 PM - 3:00 PM
3:30 PM – 4:45 PM
11:00 AM - 12:00 PM
12:00 PM - 1:00 PM
Hongjie, by request Zoom
3:30 PM – 4:45 PM
10:00 AM – 12:00 PM
Instructor Office Hours, Zoom
The course homepage (this page) is at http://courses.cs.vt.edu/cs4604/Spring21/.
Canvas: CS4604 and should be visible to all users with a Virginia Tech login.
A grade of C or better required in CS3114. (3H,3C)
Please speak with the instructor if you are concerned about your background.
If any student needs special accommodations because of any disabilities, please contact the instructor during the first week of classes. Such students are encouraged to work with The Office of Services for Students with Disabilities to help coordinate accessibity arrangements.
|1||01/18-01/22|| Introduction and Course Logistics (pdf)
|| Architecture & Classification (pdf) (recording)
|| Project 1
|2||01/25-01/29||The Relational Model and Relational Algebra (pdf) (recording)|| Entity/Relationship Models I (pdf) (recording)
Homework 1 / Google G-Suite
|3||02/01-02/05|| Entity/Relationship Models II (pdf) (recording)
| SQL I (pdf) (recording)
Lab 1 / Homework 2
| Project 1 due 02/04
Spring Break Day 02/05
|4||02/08-02/12|| SQL II (pdf) (recording)
Lab 2 / Project 2
| SQL III (pdf) (recording)
| Homework 1 due 02/09
Lab 1 due 02/11
|5||02/15-02/19|| Storing Data and Indexes (pdf) (recording)
Lab 4 / Homework 3
| No Class (University closed)
|| Lab 2 due 02/15
Homework 2 due 02/22
|6||02/22-02/26|| Hashing and Sorting (pdf) (recording)
Lab 5 / Handout: Midterm
|Spring Break Day 02/25 - No Class|| Lab 3 due 02/22
|7||03/01-03/05||Query Processing (pdf) (recording)|| Midterm Review (pdf)
PHP Intro (pdf)
| Homework 3 due 03/01
|8||03/08-03/12|| Project Interim presentation (recording)
||Midterm 3:30pm – 5:30pm||Project 2 due 03/08|
|9||03/15-03/19|| Query Optimization (pdf) (recording)
| Security & SQL injection (pdf) (recording)
Homework 4 / Lab 6
|Spring Break Day 03/17|
|10||03/22-03/26||Functional Dependencies (recording) (pdf)||BCNF, 3NF and Normalization (recording) (pdf) Homework 5|
|11||03/29-04/02||NoSQL databases (pdf) (recording)||Transactions Part 1: Intro. to ACID (pdf) (recording)|
|12||04/05-04/09||Spring Break Day 04/06 - No Class||Transactions Part 2: 2PL/2PLC and Deadlocks (pdf) (recording)|
|13||04/12-04/16||Logging and Recovery Part 1 (pdf) (recording)|| Logging and Recovery Part 2 (pdf) (recording)
Homework 6 / Handout: Final
|14||04/19-04/23||Cloud databases / Data Mining and Warehousing (pdf) (recording)||Final review (pdf) (recording)|
|15||04/26-04/30||Project Final presentation I (recording)||Project Final presentation II (recording)|| Project 3 Due 04/30
Spring Break Day 04/26
|16||05/03-05/07||No Class||No Class - Reading Day||05/08 Final Exam - 7:45 – 9:45am|
Requests for regrading due to grading errors must be submitted in writing to a TA within one week of the release of grades.
Homework submitted late without permission will be penalized according to the following formula:
(Penalized score) = (Your raw score) * (1 - 0.1 * (# of days past deadline))
This formula will apply for up to three days, after which the homework will not be accepted and you will receive a grade of zero. Avoid invoking these penalties by starting early and seeking extra help.
Based on the grading breakdown above, each student's final grade for the course will be determined by the final percentage of points earned. The grade ranges are as follows:
The Undergraduate Honor Code pledge that each member of the university community agrees to abide by states: "As a Hokie, I will conduct myself with honor and integrity at all times. I will not lie, cheat, or steal, nor will I accept the actions of those who do."
Students enrolled in this course are responsible for abiding by the Honor Code. A student who has doubts about how the Honor Code applies to any assignment is responsible for obtaining specific guidance from the course instructor before submitting the assignment for evaluation. Ignorance of the rules does not exclude any member of the University community from the requirements and expectations of the Honor Code. For additional information about the Honor Code, please visit: https://www.honorsystem.vt.edu/
This course will have a zero-tolerance philosophy regarding plagiarism or other forms of cheating. Your homework assignments must be your own work, and any external source of code, ideas, or language must be cited to give credit to the original source. I will not hesitate to report incidents of academic dishonesty to the Office of the Undergraduate Honor System.
Because the course will include in-class discussions, we will adhere to Virginia Tech's Principles of Community. The first two principles are most relevant:
The remaining principles are also important and we will take them seriously as a class.