CS 115 Database Systems, fall 2022

Syllabus v1.0

Course Description

Fundamental concepts of database management systems. Topics include: data models (relational, object-oriented, and others); the SQL query language; implementation techniques of database management systems (storage and index structures, concurrency control, recovery, and query processing); management of unstructured and semi-structured data; and scientific data collections.

Learning Outcomes

Upon completion of the course, students will be able to:

  1. Explain database design concepts (including ACID, CAP, eventual consistency, and vertical/horizontal scaling) for both relational (SQL) and Not-only SQL (NoSQL) databases, what they mean, why they matter, and which database they apply to.
  2. Write queries that correctly and efficiently retrieve (SELECT), INSERT, UPDATE, and DELETE data in relational (SQL) databases, as well as queries that perform equivalent operations in several types of NoSQL databases.
  3. Design a relational (SQL) database schema from a problem description and express the design as an Entity-Relationship (ER) or UML diagram or SQL language schema.
  4. Enforce constraints on the data in relational (SQL) databases using schema constraints in the SQL language as well as using triggers/rules.
  5. Prove that a relational (SQL) database is or is not in a particular normal form (3NF, BCNF/3.5NF, or 4NF), and transform a database schema into a particular normal form.
  6. Choose the appropriate database system to use for a particular application, from relation (SQL) or several types of NoSQL databases.
  7. Design databases for each of several types of NoSQL databases.
  8. Use software design patterns that facilitate application code interfacing with database systems.

Prerequisites

  • CS 15 (Data Structures) or Graduate Student standing
    • Grad students are expected to have had some sort of Data Structures course (e.g., CS 15, CS 205, or a Data Structures programming course from another college).
  • Ability to program in some high-level language (e.g., C, C++, Java, etc.) and a willingness to learn new languages
    • You will receive explicit instruction on the SQL language in this class.
    • We will look at examples in Python and a very little bit of JavaScript (and possibly other languages), and you will be expected to get up to speed on your own with what you need to know to follow along with the examples. However, you will not be expected to write complete programs yourself in any of these languages; just a few lines at the most.
    • In order to best understand some of the example and database concepts, you should be familiar with basic object-oriented programming concepts (classes, methods, abstraction/interfaces, etc.) as well as common data structures, such as trees

Course Materials

Required Textbook:

Database Systems: The Complete Book, 2nd Edition. H. Garcia-Molina, J. Ullman, and J. Widom (c) 2009. Pearson.

ISBN-13: 9780131873254

(Hardback, paperback, and digital editions are all fine. New, used, and rented/borrowed are also fine. But it must be the 2nd edition.)

You will also need a laptop or desktop computer at home that you can either install database software on, or run a virtual machine that has the database software on it. Windows, Mac, and Linux systems are all acceptable, and all required software is freely available online.

Class Times & Location

This class will be held in-person for fall 2021. (Keep an eye on your email for announcements form the university or AS&E schools about COVID-19 precautions, and for announcements from the course instructor.)

  • Tuesdays & Thursdays, 6:00 – 7:15 PM
  • Joyce Cummings Center, room 160

The first class will be Tuesday, Sept. 6, 2022. The last day of class will be Thursday, Dec. 8, 2022. The final exam will be Friday, Dec. 16, 2022, at 7:00 pm.

Instructor & TAs

Dave Lillethun is the instructor. TAs are Tomislav Zabcic-Matic and Mona Ma.

Office hours and contact information will be posted in Canvas.

Assessments

Take-Home Tests

There will be several tests (every other week, 6 in total), which you will complete at home. Tests must be completed individually. Collaboration of any kind is strictly prohibited. Tests will be take-home open-notes style tests. They will not be proctored and will not be strictly timed, but will be released at a certain time and due at a certain later time. You may work on the test any time before the deadline and take as long as you like, up to the deadline. Materials you are allowed to use when working on tests are:

  • While taking the test, you may refer to the textbook, your notes (including previous tests, quizzes, class exercises, etc.), the Internet, and generally any other pre-written/recorded sources.
  • You may not collaborate or discuss test questions or answers with anyone else (whether they are a student in this class or not). This also means that you may not post online (e.g., Stack Overflow, Reddit, etc.) to ask questions pertaining to the test; you may only use information online that already existed before you looked at the test.
  • You must write all answers in your own words. Even though you may refer to other materials to help you figure out the answers, you may not plagiarize those materials on your answers. Even making minor modifications after copying is forbidden. You must completely rewrite/rephrase it using your own words.
  • If ever in doubt, ask the instructor before you do something. It is better to ask for permission than forgiveness, in this case.

In-Class Quizzes

There will be several quizzes (every 2-3 weeks, 5 in total), which you will take in class. You will be given 30 minutes to complete the quiz at the beginning of class on days when quizzes are given, and normal class will be held for the rest of the period following the test. Quizzes are cumulative, and you may be asked about any material covered in any lecture or required reading assignment from the textbook.

Quizzes will be proctored, and you may not use any calculators, other electronic devices, books, or notes except for a one-page note sheet. You will be allowed to prepare a single letter size (8.5″x11″) sheet of paper with notes that you may use during the exam. You may write on both sides, and there are no rules about text size or margins, but it must be hand written (unless a disability accommodation allows otherwise). However, you will not be allowed to use any magnification devices (except for routine corrective eyewear, such as glasses), so you must write it such that you will be able to read it. While you are welcome to discuss what to put on the note sheet with other students, each student must hand write their own copy of the note sheet. Photocopies, and other kinds of copies, will not be permitted.

You will be required to turn in your note sheet with your quiz. Among other reasons, the will force you to rewrite a new one for each quiz, which is beneficial for several reasons:

  • The act of writing things down will help you to remember. Therefore, rewriting the things you need help remembering several times will help you remember them better than just writing them once. (Also, hand writing it will help you remember better than typing would.)
  • There will be new material on each quiz that you’ll want to add to your notes sheet.
  • You should also remove old material from the notes sheet. If you find that you were able to remember something without the notes sheet, you may decide to remove it. More importantly, you’ll want to make room for the new material that you’re adding.

Final Exam

The final exam will take place at 7:00 pm on Friday, Dec. 16 in the usual classroom. It will have the same rules, format, and types of questions as the quizzes (including the notes sheet), with the same types and formats of questions, except that it will be fully cumulative. All material from the entire class will be eligible for exam questions. The length of the exam will be approximately twice that of a quiz. (So in essence, it’s a longer, more fully cumulative quiz.)

Late Work Policy

In this class, each students starts the semester with 5 “late tokens” that are each worth an extra day (24 hours) on a take home test assignment. (With the exception that you will get Saturday and Sunday as a bundle for 1 token. Since tests will be due on Fridays, that means 1 token gives you until Sunday, 2 tokens until Monday, and an additional token for every day past then that you need.) There are no penalties for lateness as long as you use a sufficient number of late tokens. If you will not have work completed by the deadline, then email the instructor (contact information is in Canvas) before the deadline and tell him how many extra days you need. A corresponding number of late tokens will be deducted. You don’t need to provide any excuses, just the new date when you will submit the work. As long as you send that email before the assignment deadline, your late submission will be graded for full credit. (However, if there is an emergency situation that makes it impossible or unreasonable to contact us before the deadline, then just send the email as soon after the deadline as is reasonable.)

Note that the quizzes and final exam are scheduled to occur in specific class periods, and therefore the deadline cannot be extended. However, make up quizzes and exams can be provided if you miss it due to a legitimate excused absence (such as illness). Email the instructor if you will miss any of these.

Course Grades

Each test, quiz, or exam will not be given a percentage score or letter grade, but rather each individual question will be rated as “Exceeds Expectations”, “Meets Expectations”, “Needs Improvement”, or “Not Assessable” (“N/A” for short). These mean the following:

  • Exceeds Expectations – This assessment shows that you have significant proficiency in the relevant topic, beyond the minimum expected by the course learning expectations.
  • Meets Expectations – This assessment shows that you have some proficiency in the relevant topic, in line with the course learning expectations.
  • Needs Improvement – This assessment shows some knowledge but does not yet demonstrate full proficiency in the topic.
  • Not Assessable – This assessment is too incomplete to accurately assess whether you have met expectations or not, or it shows little evidence of knowledge or skills. This could be, for example, a question in which not all parts were attempted fully, was left blank, or was partially answered but too much was missing to really be able to assess the student’s knowledge/skills.

Here is what you need to do to earn each letter grade. You must meet all of the criteria for a letter grade in order to get that grade.

  • A
    • Exceeds Expectations on at least 50% of test questions, and
    • Meets Expectations (or higher) on a total of at least 95% of test questions, and
    • Exceeds Expectations on at least 50% of quiz & exam questions, and
    • Meets Expectations (or higher) on a total of at least 90% of quiz & exam questions
  • B
    • Exceeds Expectations on at least 20% of test questions, and
    • Meets Expectations (or higher) on a total of at least 85% of test questions, and
    • Exceeds Expectations on at least 30% of quiz & exam questions, and
    • Meets Expectations (or higher) on a total of at least 85% of quiz & exam questions
  • C
    • Meets Expectations (or higher) on a total of at least 75% of test questions, and
    • Meets Expectations (or higher) on a total of at least 75% of quiz & exam questions
  • D
    • Meets Expectations (or higher) on a total of at least 65% of test questions, and
    • Meets Expectations (or higher) on a total of at least 65% of quiz & exam questions

Students who meet all the criteria for a letter grade, plus at least 10% (percentage points) more than required Exceed Expectations on each of the test questions category and the quiz & exam questions category, will receive a plus (+) on their grade. (e.g., B+ for 30% of test questions and 40% of quiz & exam question, or C+ for 10% of test questions and 10% of quiz & exam questions Exceed Expectations.)

Students who are within 5% (percentage points) of the required number of questions Meeting or Exceeding Expectations, on each of the test questions category and the quiz & exam questions category, and within 10% (percentage points) of the required number of questions Exceeding Expectations on each of the test questions category and the quiz & exam questions category, will receive that letter with a minus (-), rather than the next lower letter. (e.g., Exceeding Expectations on 10% of test questions and 20% of quiz questions, while Meeting (or Exceeding) Expectations on 80% of test questions and 80% of quiz & exam questions is a B-. However, if you instead Exceed Expectations on only 10% of quiz questions, then that’s a C+, and if you Meet (or Exceed) Expectations on only 79% of test questions, then that’s a C no matter how many questions you Exceeded Expectations on.)

Students who do not meet the criteria for at least a D- will receive an F.

Course Policies

Students in this class are responsible for reading, understanding, and following all of the course policies listed here. For fall 2021, there are also additional COVID-19 policies for the course. By continuing to take this course, you indicate your agreement to follow all the policies. If there is any policy that you do not understand, please ask. Ignorance will not be accepted as an excuse for violating any policies.

Changes

This syllabus and any policies for this course are subject to change during the semester in response to changing conditions. Such changes are at the sole discretion of the course instructor. If any changes are made, the appropriate documents will be updated and the change will be announced to the entire class in a timely fashion.

This document has a version number at the beginning to help you tell when changes have been made. When there is a new version, the changes that were made will be listed in the following Change Log. (This may help, for example, so you don’t need to re-read the entire document just to find a small change.)

Change Log

v1.0: Initial version.

Dave Lillethun, Ph.D.

Dave Lillethun, Ph.D.

Dave Lillethun teaches classes about programming (CS1), computing systems, databases, and the CS senior capstone at Tufts University.

View Full Profile →

Contact Info
You may find my contact information on my faculty profile page.