Data is at the heart of modern commercial application development, and its use includes environments and domains where large amounts of data must be stored for efficient update, retrieval, and analysis. The purpose of this course is to provide a comprehensive introduction to the use of management systems for applications. Some of the topics covered are the following: data models (relational and json), query languages (SQL, datalog, etc), transactions, parallel data processing, and database as a service.
The grade breakdown is as follows:
Homeworks: 50%
Lecture Activities: 15% (but see "90% is 100%" policy, below)
Discussion Board: 3%
Midterm: 11%
Final: 21%
Although we do not provide enough information for students to reverse-engineer their course percentage (eg, we don't release the relative weighting of individual homeworks), course grades are assigned as follows:
Usually, there are 1-3 students every quarter whose superlative performance in the course "breaks the curve". We assign these students a 4.0 and remove them from all further calculation.
The next highest student's score becomes the "course denominator".
All other students have their grade calculated using the new course denominator. We then assign course grades according to these approximate buckets:
>98% = 4.0; >92% = 3.5+; >86% = 3.0+; >75% = 2.5+; >60% = 2.0+
Please do not attempt to reverse-engineer your course percentage and then email us with a complaint; the process of answering your questions with specificity without actually revealing private information makes us very grumpy. We are happy to discuss regrades, however.
We will have 6 programming homeworks this quarter, with duedates approximately every week. Homeworks must be submitted individually; collaboration is permitted, subject to the guidelines below. They are due at 10:00pm PDT.
There are absolutely no late submissions accepted for take-home exams or lecture activities.
For homework assignments, you are allowed a total of 6 late days, which are defined as the 24-hour period after a due date: num_late_days = ceil(hours_late/24). Think of late days as an optional tool for managing your time; if CSE 344 were your only class and your only job, you wouldn't use them at all. In recognition of this fact, unused late days have no impact on your grade at the end of the quarter. On the other hand, if you exceed the late days afforded to you, you will lose 20% off your score for each day a homework is overdue. Regardless of how many late days you have remaining, no homework will be accepted after 2 days have elapsed.
Lectures have a variety of before- and in-class activities submitted via PollEverywhere; these activities can be submitted asynchronously (eg, if you are re-watching lectures after class). If you choose to submit your activities asynchronously, you will have approximately ~36 hours to do so. For this component, you will receive credit for completing the activity (ie, your answer can be incorrect). Furthermore, our "90% is 100%" policy means that you will receive full credit for this category as long as you participate in 90% of the offered activities. For example, you will receive full lecture points if you complete 72 out of the ~80 questions asked during the quarter. There is no bonus or extra credit for exceeding 90% (eg, if you answer 75 of the ~80 questions).
In-person participation can be tricky to assess equitably, so we do not attempt to do so. Instead, we will grade your course participation solely on your Ed board activity. Specifically, you are expected to participate (ie, create a new thread or comment on an existing thread) approximately once every other week.
You will have ~48h to complete a take-home midterm and a final, both administered via Gradescope. These two exams are open book (ie, you can use any available resource, including personal notes, lecture recordings, and the internet). Although you must submit your answers individually, you may collaborate with a group of any size; however, we recommend that you keep your group to <=5 students, as large groups have historically struggled with this format.
Our code and our projects are made better by considering a variety of viewpoints. Your course staff is committed to the values outlined in the Allen School’s inclusiveness statement, and you are expected to uphold a supportive and inclusive learning environment.
If, at any point, you are made to feel uncomfortable, disrespected, or excluded by a staff member or fellow student, please report the incident so that we may address the issue and maintain a supportive and inclusive learning environment. Should you feel uncomfortable bringing up an issue with a staff member directly, consider submitting anonymous feedback or contacting the Office of the Ombud.
If you have conceptual questions or need assistance with debugging your homework assignments, we strongly recommend attending office hours.
We recognize that not every question is appropriate for office hours, however. For example, you may wish to discuss your extenuating circumstances, need support/advice for a personal issue, or have followup questions from a previous office hour. In these circumstances, we recommend requesting a one-on-one.
We are using Ed for discussion and announcements. This includes both private "staff-only" discussion and public class-wide discussion.
We are using Gradescope for homeworks and exams. We will use Canvas only for Panopto recordings, Zoom links, and late-day tracking. Gradescope is the "master copy" of your scores; we will not copy scores into Canvas.
We are using PollEverywhere to administer before- and in-class lecture activities.
We will be using Database Systems: The Complete Book (2nd Edition) (errata here)
If you need an alternative explanation for a particular topic, the library has the following:
Fundamentals of Database Systems, by Elsmasri and Navathe
Database Management Systems, by Raghu Ramakrishnan and Johannes Gehrke
Foundations of Database Systems, by Abiteboul, Hull and Vianu
You can send anonymous feedback to Hannah via this form. Note that she cannot respond to you directly.
Learning these ideas is challenging. We encourage you to discuss course activities with your friends and classmates as you are working on them, because you will definitely learn more in this class if you work with others than if you do not. Ask questions, answer questions, and share ideas liberally; we want a class that is open, welcoming, and collaborative, where we can help each other build the highest possible understanding of the course material.
Learning collaboratively is different from sharing answers. A good rule-of-thumb for distinguishing between collaboration and sharing answers is this: Can I attempt an immaterially-different question (eg, calculating the max instead of the average), by myself, without my collaborator? If the answer is “yes”, then you learned from your collaboration; that’s great! Please do more of it! However, if the answer is “no”, then you were sharing answers. In particular:
Do not take away any work product (eg, code), notes, or screenshots from your discussion. This includes writing code in lock-step with another person.
Cite the names of all your collaborators, regardless of whether they are currently taking CSE 344.
Take a 30 minute break before writing up your solution (eg, writing code, drawing a parse tree).
You are responsible for understanding and applying Allen School's Academic Misconduct Policy. If you are in doubt about what might constitute misconduct, contact the course staff describing the situation and we will be happy to clarify it for you. When it comes to the potential for sharing answers, it is better to ask permission than to beg forgiveness.
Please refer to university policies regarding disability accommodations and religious accomodations. These policies have strict timelines associated with them, so we encourage you to read through and apply these policies at the start of the quarter if you believe they may apply to you.
More generally, we recognize that our students come from varied backgrounds and can have widely-varying circumstances. If you have any unforeseen or extenuating circumstance that arise during the course, please do not hesitate to contact the instructor to discuss your situation. The sooner we are made aware, the more easily these situations can be resolved. Extenuating circumstances may include:
Work-school balance
Familial responsibilities
Unexpected travel
... or anything else beyond your control which may negatively impact your performance in the class