Please see the main page of this website for scheduling information (lectures, sections, office hours, exams).
Instructor: Shana Hutchison, shutchis@cs.washington.edu
Databases are at the heart of modern commercial application development. Efficient update, retrieval, and analysis are requirements. The purpose of this course is to provide a comprehensive introduction to the use of management systems for applications. Some topics covered are data models (relational and json), query languages (SQL, Spark, etc), transactions, parallel data processing, and database-as-a-service. For the detailed list of topics and schedule, please see the course site's main page.
Lectures: three times per week. We will follow parts of the textbook (see below). While lectures are designed to be clear and self-contained, and cover all the material used in class, you are strongly encouraged to read from the textbook, both in order to better understand the material covered and to learn about related topics, which are not covered in class. Lectures will be recorded and made available via Panopto.
Sections: Thursdays, taught by TAs. The sections will discuss the material taught in class, will give detailed instructions on how to use some of the software needed for homework assignments, and will give you an extra opportunity to ask questions.
Homework: involve light programming and written questions. Homework assignments may be individual or in partnerships.
Exams: midterm and final.
Office hours: while not technically a requirement of the course, we suggest you attend one office hour per week in order to (1) meet other students taking this course, (2) ask TAs questions, and (3) force yourself to work on this course.
Introduction to Data Management: Introduces database management systems and writing applications that use such systems; data models (e.g., relational, semi-structured), query languages (e.g., SQL, datalog), language bindings, conceptual modeling, transactions, security, database tuning, data warehousing, parallelism, and Web-data management. Prerequisites: CSE 143 (minimum grade of 2.5). 4 credits.
Here is a more specific list of potential topics that will be covered in this quarter's course:
As this class is evolving, the list of topics might change over the quarter.
Required: Database Systems: the Complete Book, by Hector Garcia-Molina, Jennifer Widom, and Jeffrey Ullman. Available from the University Bookstore. Second edition.
Other texts: the library has the following that you might find useful if you require another explanation of a topic.
Before each assignment is released, you will receive an email with a team assignment. A repository on CSE GitLab will be created for your team. Please submit your assignments by pushing a commit with your solution to your repository by the assignment due date.
Please do your best to submit homework on time! Yes, life happens, but we expect you to communicate with your team to ensure that you can meet the deadline.
Homework may be submitted late, with a penalty of 10% per day, up to two days following the due date. No submission will be accepted from two days after the due date. "Days" are counted in 24 hour chunks.
You are allowed one free late day per partnership. A free late day will not incur a 10% penalty. Partnership late days do not carry over to future partnerships.
Technical difficulties are the most commons source of late day use. If you are submitting minutes before the deadline, you will not have time to work through submission difficulties you may encounter. Some tips:
Please note that these breakdowns are preliminary as this class is constantly evolving. We reserve the right to change them.
Some programming will be necessary in this course. One can only start to appreciate database systems by actually trying to use one. Databases only hold the data, the application logic needs to be written in some general purpose language. We will use the following tools in class:
The course website is the main source of course information. A calendar is available for subscription should you wish to add the lecture/section times, homework deadlines, and exam dates to your own calendar. There is a discussion board that everyone should use to keep in touch outside of class. The class mailing list will be used for occasional announcements. Please see the main webpage of the course for details.
You are encouraged to discuss the content of this course with anyone you like. Each team should write and submit their own assignment solutions.
Some excerpts from the campus policies. Take them seriously: "You must use all UW [computing] resources in strict accordance with local, state, and federal laws. These laws cover such areas as illegal access to computer systems, networks, and files; copyright violations; and harassment issues... Software and information resources provided through the university for use by faculty, staff, and students may be used on computing equipment only as specified in the various software licenses. Unauthorized use of software, images, or files is regarded as a serious matter and any such use is without the consent of the University of Washington...If abuse of computer software, images, or files occurs, those responsible for such abuse will be held legally accountable."
An iSchool professor, Amy Ko, wrote the following guidelines. I repeat them here as they really hit the spot!
You're here to learn, aren't you? Plagiarism is not the way! If you really feel that the course structure incentivizes you to cheat in order to maximize your learning, please contact me (the instructor). I'd rather receive your feedback proactively than report your actions to the university reactively.
The guidelines for this course and academic integrity in general are in a separate document. You are responsible for knowing the information in that document.
There are two important kinds of accommodations you can request to support your learning in this class: