CompSci 316 - Introduction to Databases -Fall 2020 (original) (raw)

Yesenia Velasco.

Grad TAs

UTAs

Weekly Office Hour Calendar:

Office Hour Calendar

Grading

You have a considerable amount of control over the final grade you would receive in this class if you work hard, and should have a fair idea where you approximately stand at any point of time!

Weights of each component:

See details in Workload below.

Component Weight
Homeworks 40%
Written problem solving /programming 30%
Gradiance exercises 10%
Exams 25%
Midterm 12%
Final exam 13%
Project 20%
Class participation 15%
Attending discussion sessions (quizzes and collaboration) 7%
Attending lectures/watching videos 3%
Quizzes from lectures 3%
Communication 2%

Workload

How much time should I allocate to get work done in CompSci 316?

You should plan for the following every week. You should approximately allocate 10-12 hours every week for the class, although it may vary from student to student.

Activity Hours/Week Days of Weeks
Online live lectures 1.25 x 2 = 2.5 Tues, Thurs (for time zone differences, lecture videos to be watched within the next day after each class ends)
Discussion session 1.25 Mon
Assignments 3-5 (varies) Tues (typically) + Lecture quizzes within the next day
Project 2-4 (heavier work likely later in the course, if you do an "open project", expect 1.5x or so more work (and more fun!)) Mon (weekly updates) + Two milestones and a final project

Resources / Communication / Toolkits

Book: The textbooks are optional as many students would not have access to the library. Lecture slides and regular class participation would be sufficient for this class.

If you would like to consult a textbook, we use the following book:

Database Systems: The Complete Book, by Hector Garcia-Molina, Jeffrey D. Ullman, and Jennifer Widom. 2nd Edition. Prentice Hall. 2008.

See the publisher's book page and the Amazon book page. Relevant chapters for reading are posted under Schedule. In a typical semester, textbooks for this course are available for 3-hour checkouts at the Duke Libraries. Search the Libraries' Top Textbooks program here: https://library.duke.edu/course-support/course-reserves/textbooks. Please consult the library for options during the COVID-19 situation.

Gradescope: We will use Gradescope (for submission and grading of (non-Gradiance) homeworks and project work, as well as grading of exams. Communication and Piazza: You should check your email regularly for important course-related announcements. All important announcements will be sent through both Piazza and Sakai. Old email messages can be found under "Email Archive" on Sakai.

All questions that may be of general interest to the class should be directed to Piazza. do not use the mailing list. You will get your questions answered faster on Piazza than via personal emails to the course staff, because Piazza is monitored closely by everybody in the class, not just the course staff. You are highly encouraged to answer each others' questions on Piazza and the course staff would endorse/add to those answers.

You would be added to Piazza the day before the class starts.

Sakai: We will use the Sakai course management system for posting sample solutions (under "Resources") and for checking grades (under "Gradebook").Computing: You will need access to a computer (any major OS will do) on which you are allowed to install new software. We will also use cloud-based virtual machines - see Help for details.

Course Policy

Standards of Conduct: Under the Duke Community Standard, you are expected to submit your own work in this course, including homeworks, projects, and exams.

Help

The help section will be updated when the class starts.

Schedule

(subject to change) "Notes" will be uploaded before the class and are intentionally left incomplete for interactive lectures. Completed "slides" will be uploaded after the lectures.

D = Discussion session

A = Assignments

-->

| | Day | Topic | Slides | Assignments / Remarks | Optional Reading | | | ----------- | ---------------------------------------------- | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ | | 1 | 8/18 (T) | Introduction | Lecture-1-notes Lecture-1 (up to slide 35) | pgweb instructions (we will use this in class). | 2.1, 2.2, 6.1, 6.2 | | 2 | 8/20 (Th) | Relational model, Basic SQL, and Relational algebra | Lecture-2-notes Lecture-2 (up to slide 25) | | 2.3, 2.4 | | D1 | 8/24 (M) | Setup and basic SQL | Discussion-1 | | | | A | 8/25 (T) | None (but finish your setup for SQL) | | | | | 3 | 8/25 (T) | contd. | | | | | 4 | 8/27 (Th) | Database design in E/R model | Lecture-3-notes Lecture-3 | | 4.1-4.4 | | D2 | 8/31 (M) | RATest and RADB | | | | | A | 9/1 (T) | HW-1 (SQL-1) is due | | | | | 5 | 9/1 (T) | contd. | | 4.5, 4.6 | | | 6 | 9/3 (Th) | Project mixer | Guest lecture by Danai Adkisson (slides-colab)and by Meredith Brown and Florence Liu | | | | D3 | 9/7 (M) | RA | Lecture Quiz 0903 is due | | | | A | 9/8 (T) | HW-2 (RA) + Gradiance-1 is due | | | | | 7 | 9/8 (T) | E/R to relational translation | Lecture-4-notes Lecture-4 (Up to slide 10) | Names of 5 members for each project team due | | | 8 | 9/10 (Th) | SQL: aggregation, subqueries, NULL, outerjoin, modifications, constraints, triggers, views | Lecture-5-notes Lecture-5 (up to slide 8) | 2.3, 6.1.1-6.1.7, 6.2-6.5, 7.1-7.5, 8.1-8.3 | | | D4 | 9/14 (M) | Demo of RA | | | | | 9 | 9/15 (T) | contd. | (up to slide 32) | 3.1-3.4, 3.6, 3.7 | | | A | 9/16 (W) | HW-3 (ERD) + Gradiance-2 is due | | | | | 10 | 9/17 (Th) | contd. | (up to slide 62) | | | | D5 | 9/21 (M) | SQL | LecQuiz-0917-SQL is due + Project update due on piazza threads | | | | A | 9/22 (T) | HW-4 (SQL-2) is due | | | | | 11 | 9/22 (T) | Database design theory: FD, BCNF | Lecture-6 (up to slide 7) | 9.1, 9.3, 9.4, 9.6, 10.2 | | | 12 | 9/24 (Th) | contd. | Up to slide 21 included in the midterm | Project MS1 is due. | | | D6 | 9/28 (M) | Midterm practice problems | | | | | A | 9/29 (T) | NO HOMEWORK DUE | | | | | 13 | 9/29 (T) | Midterm exam | | | | | 14 | 10/1 (Th) | Storage & Index | Lecture-7 (up to slide 17 of Lecture-7, Finished Lecture-6) | 14.1, 14.2 | | | D7 | 10/5 (M) | BCNF + Project | | | | | 15 | 10/6 (T) | contd. | (up to slide 46 of Lecture-7) | | | | 16 | 10/8 (Th) | Query Processing | Lecture-8 (up to slide 2) | | | | A | 10/9 (F) | HW-5 and Gradiance-3 (Constraints and Triggers) is due | | | | | D8 | 10/12 (M) | Project | | | | | 17 | 10/13 (T) | Join Algorithms and external sorting | (up to slide 14) | 15.1-15.6, 15.8 16.1, 16.7.3-16.7.5 | | | 18 | 10/15 (Th) | contd. | (up to slide 28) | | | | D9 | 10/19 (M) | Index/Cost/(Un)Clustered | Project MS2 is due (along with a basic version of your website). | | | | 19 | 10/20 (T) | Contd. | (Finished Lecture-8) | 16.2-16.6 | | | 20 | 10/22 (Th) | XML | Lecture-9 (up to slide 35) | 11, 12.1, 12.2 | | | A | 10/22 (Th) | HW-6a (Index + Sorting) is due | | | | | D10 | 10/26 (M) | Keys/BCNF/Join Algo | | | | | A | 10/27 (T) | HW-6b (Join Algorithms) is due | | | | | 21 | 10/27 (T) | XML-relational mapping, NoSQL: JSON and MongoDB | Lecture-10 (Finished Lecture-9 and Lecture-10 (overview)) | | | | 22 | 10/29 (Th) | Transaction | Lecture-11 (up to slide 17) | A note on SQL Programming (slides) for the class projects | | | D11 | 11/2 (M) | TBD | | | | | 23 | 11/3 (T) | Contd. | (Up to slide 35) | | | | 24 | 11/5 (Th) | Transaction: Recovery | Lecture-12 (Up to slide 8, Finished Lecture-11) | Gradiance4-XML is due. | | | D12 | 11/9 (M) | TBD | | | | | A | 11/10 (T) | HW-7 (JSON/MongoDB) is due by each project group | | | | | 25 | 11/10 (T) | Contd. | | | | | 26 | 11/12 (Th) | Map-Reduce, Parallel DBMS | Lecture-13 | Gradiance5-Transactions is due. | | | D13 | 11/16 (M) | TBD | | | | | A | 11/16 (M, last day of class) | Final project report and demo video are due | | | | | 11/22 (Sun) | Online Final Exam, 2-5 pm EST, details TBA | | | | |