Announcements
Welcome to CS44!
-
Lab 0 has been posted. It is practice with some course tools and resources and to prepare you for Wednesday’s lab session. Please complete this before your Wednesday lab session.
-
Purchace Required Textbook/Materials. Please bring bring your clicker to class on Thursday.
Class announcements will be posted here and/or sent as email. You are expected to check your email frequently for class announcements. Questions and answers about assignments should be posted on EdStem. All assignments are posted to the class Class Schedule ( jump to the current week on the schedule).
Class Info
Professor: Tia Newhall, and Lab Lecturer: Charlie Kazer
Lecture |
TR 1:15-2:35pm |
Sci Cntr 204 (between Martin and Cornell Library) |
Lab A |
Wed 1:05 - 2:35 |
Clothier 16 |
Lab B |
Wed 2:45 - 4:15 |
Clothier 16 |
-
Office hours
Mondays
1:30 - 3:30
Charlie
Sci Cntr 262A
Tuesdays
3:30-5:00
Tia
Sci Cntr 149
Fridays
2:15-3:30
Tia
Sci Cntr 149
and by appointment
-
EdStem: Q&A Forum
-
GitHub: CS44 Swarthmore GitHub Org
-
Gradescope: {gradescopeurl}[Gradescope]
Course Description and Goals
Welcome to CS44! Databases sit at the core of all modern commercial software/systems, managing the storage, update, and retrieval of large amounts of data in an efficient manner. This course provides an introduction to database management systems (DBMS); in particular, concentrating on the theory, design, and implementation of relational database management systems. Topics covered include data models (ER and relational model); data storage and access methods (files, indices); query languages including SQL and relational algebra; query evaluation; query optimization; transaction management; concurrency control; crash recovery; and advanced topics (parallel and distributed DBMS, security, others) Lab projects that involve implementing and testing components of a relational database management system are a large component of the course.
To enroll in this course you must have completed CPSC 35 AND CPSC 31. This course is designated as a natural sciences and engineering practicum (NSEP) and qualifies as a Group 2: Systems course for the CS major/minor requirements.
Course Learning Goals
-
Understand the components of a database management system, and design choices for managing system resources to support efficient and correct DB storage, DB accesses, and data constraints
-
Understand the importance of abstraction in database systems
-
Learn how to represent data conceptually using entity-relationship models
-
Learn how relational databases maintain data integrity
-
Understand the importance of considering system, resources when designing and choosing data structures
-
Learn how to utilize SQL and modern databases to represent large, real-world datasets
-
Learn solutions for efficiency and scalability in database systems (query optimization, parallel and distributed databases)
Required Textbook/Materials
-
Textbook: Database Management Systems (Third Edition), by Raghu Ramakrishnan and Johannes Gehrke.
There will also be a few readings from: Dive into Systems (the CS31 textbook, which is free online).
-
Clicker device: you can purchase a clicker (iClicker devices) It is one of the required materials for the course of which you can use your TAP fund to purchase.
Class Schedule
This is a very tentative schedule. It will be updated as we go. We recommend that you review Tips for reading CS texbooks to help you determine what to focus on and how to get the most out of required readings.
WEEK | DAY | ANNOUNCEMENTS | TOPIC | ASSIGNMENT |
---|---|---|---|---|
1 | Jan 21 |
Intro to Database Management SystemsData StorageWeekly Reading:
| Lab 0: course tools | |
2 | Jan 28 | Buffer ManagerWeekly Reading:
| Wed W2 Lab: TBA | |
3 | Feb 04 | Drop/add ends (Feb 07) | ER ModelRelational ModelWeekly Reading:
| Wed Lab: TBA |
4 | Feb 11 | Relational ModelFile OrganizationWeekly Reading:
| Wed Lab: TBA | |
5 | Feb 18 | Files and IndiciesB+ Tree IndexWeekly Reading:
| Wed Lab: TBA | |
6 | Feb 25 | TBD | Wed Lab: TBA | |
7 | Mar 04 | B+ Tree IndexHash IndicesWeekly Reading:
| Wed Lab: TBA | |
Mar 11 | Spring Break | |||
8 | Mar 18 | Hash IndicesComparing File and Index OrganizationsRelational AlgebraWeekly Reading:
| Wed Lab: TBA | |
9 | Mar 24 | Midterm (7-9pm, Sci Cntr. 101) | ||
Mar 25 | CR/NC and Withdraw deadline (Mar 28) | SQLWeekly Reading: T: 5 - 5.3 | Wed W9 Lab: TBA | |
10 | Apr 01 | SQLExternal SortingQuery EvaluationWeekly Reading: T 5.5 | Wed W10 Lab: TBA | |
11 | Apr 08 | Query EvaluationQuery OptimizationWeekly Reading: T: 12-12.3 | Wed Lab: TBA | |
12 | Apr 15 | Query OptimizationParallelizationTransactionsWeekly Reading: T: 14.4, 14.7 | Wed Lab: TBA | |
13 | Apr 22 | TransactionsCrash RecoveryT: 16-16.5 | Wed Lab: TBA | |
14 | Apr 29 | Distributed DatabasesNon SQL DatabasesWeekly Reading:
| Wed Lab: TBA | |
15 | May 06 |
|
|