CS 115 Database Systems

Syllabus, Fall 2021, 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.


  • 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.)

  • Mondays & Wednesdays, 6:00 – 7:15 PM
  • Anderson Wing SEC, room 206

The first class will be Wednesday, Sept. 8, 2021. The last day of class will be Tuesday, Dec. 14, 2021.

Instructor & TAs

Dave Lillethun is the instructor. TAs are to be announced.

Office hours and contact information will be posted in Canvas.


Take-Home Tests

There will be several tests (every other week, alternating with the quizzes), 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 other week, alternating with the tests), 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 Monday, Dec. 20 in the usual classroom. It will have the same format and rules 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

There are no late penalties or “late passes” in this class. If you will not have work completed by the deadline, then email Dave (contact information is in Canvas) before the deadline and tell him when you have the work completed. 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 Dave if you will miss any of these.

Course Grades

Your numeric course grades will be calculated as a weighted average as follows:

  • Test average (50%)
  • Quiz average (35%)
  • Final exam (15%)

Your course letter grade will be determined from your numeric grade as follows:


I reserve the right, at my sole discretion, to apply adjustments to the grading scale when calculating final course grades. All students will be graded on the same scale. However, you can expect the following numerical grades to result in at least the above letter grades. If a curve is applied (which is not guaranteed) it can only help your grade. But you should not assume or count on this happening.

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.


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.