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, json, etc), query languages (SQL, datalog, etc), transactions, parallel data processing, and NoSQL.
The grade breakdown is as follows:
Homeworks: 45%
Course Project: 12%
Lecture Activities: 10%
Interview: 8%
Exams (Midterm + Final): 25%
We have homeworks with due dates approximately every week. They assess a variety of skills, including coding, database theory, and more. Homeworks must be submitted individually; collaboration is permitted, subject to the guidelines below. They are always due at 11 pm.
We have a single large course project during the middle of the quarter, which synthesizes your understanding of many concepts, including SQL queries, schema design, and Java programming. To help with time management, we've broken this project into 3 "milestones", due each week. As with homeworks, each milestone must be submitted individually and is due at 11 pm.
Lectures have a variety of before- and in-class activities designed to enhance lecture topics and provide an opportunity to interact with classmates. These are intended to be low-pressure and lenient.
These activities are administered via Gradescope and 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; late submissions will not be accepted.
Due to our desire for low-pressure activities, grading primarily reflects participation. You will primarily receive credit for attempting the activity; notably, your answer can be incorrect as long as you are actively participating in lecture. There may, however, be occasional checks built into the activity to ensure it is completed in conjunction with watching the associated lecture. Furthermore, our "90% is 100%" policy means that you will receive full credit for this category as long as you attempt 90% of the offered activities. For example, you will receive full points in this category if you watch lecture and complete 72 out of ~80 questions asked during the quarter. There is no bonus or extra credit for exceeding 90% (eg, if you answer 75 of ~80 questions).
In-person participation can be tricky to assess equitably, so we do not attempt to do so.
Two days of section have been reserved for interviews. Each student should sign up for a ~10 min slot with a TA on one of these days. Once interviews have been scheduled, each student will receive a time and in-person location that their interview will take place. Please arrive 5-10 minutes early as TAs will be administering these interviews back-to-back and will not be able to grant you time outside of your allotment. Should you know ahead of time that you will not be able to make one of these in person days, you may submit an explanation as to why you cannot attend. Staff will review your situation and may grant you a zoom interview.
Interviews are meant to be low pressure. When you sit down for your interview, your TA will present you with 2-4 topics to pick from. Topics will be in direct alignment with content from lecture, section, and homeworks. You can select whichever topic you feel most confident in. Your TA will then ask you a few questions from the topic of your choice. The TAs are not trying to trick you! If you give an incomplete answer, they will prompt you to fill in the gaps in your explanation. If you have not given an explicitly incorrect answer, they will give you the chance and direction to get to a full credit answer.
Note that questions across topics will aim to be of similar difficulties and lengths. Interviews with the same topics presented will mostly happen on the same day, but we still ask that you not share what topics you were presented or what questions you were asked with other students. Different students may be presented with different topics to choose from and within the same topic, different students will be given different questions. As such, it will be difficult to leak questions to help another student.
You will have 2 take-home exams, administered via Gradescope. These are "open book": you can use any available resource, including personal notes, lecture recordings, current classmates, former 344 students, and the internet. Although you must submit your answers individually, you may collaborate with a group of any size, subject to our collaboration policy; however, we recommend that you keep your group to <=5 students, as large groups have historically struggled with this format. Exams are always due at 11 pm and late days cannot be used for them.
There are absolutely no late submissions accepted for exams or lecture activities.
We expect assignments (homeworks + project milestones) to be submitted on time; however, we realize that our deadlines may occasionally overlap with another class's, or that work may schedule you for an unexpected shift, or that you may contract a routine illness. In recognition of this fact, you are allowed a total of 8 late day tokens, which are defined as the 24-hour period after a due date: num_late_days = ceil(hours_late/24). Unused tokens have no impact on your grade at the end of the quarter.
Typically, you may spend up to 2 tokens per assignment, though some assignments may adjust this threshold. Regardless of how many late days you have remaining, no assignment will be accepted after 2 days have elapsed.
For each late day you use that exceeds your token allowance, you will lose 20% off your score on one of the late assignments.
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 & 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 debugging your 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 follow-up 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 assignments and exams. We will use Canvas only for Panopto recordings. Gradescope is the authoritative copy of your scores; we will not copy scores into Canvas.
We have a few suggestions for how to write code which your course staff will be able to grade.
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 Ananya 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. Ultimately, the difference between collaboration and sharing answers boils down to "whose brain generated the submitted material?". A good rule-of-thumb for distinguishing between these two is: Can I/my collaborator successfully answer an immaterially-different question (eg, calculating the max instead of the average), by myself/themself? If the answer is “yes”, then someone learned from your collaboration; that’s great! Please do more of it! Go you!
However, if the answer is “no”, then you were sharing answers; please don't do that. In particular:
Do not use any collaboration-generated materials (eg, code, hand-written notes, screenshots) when you are working on the materials that you will submit for grading. You MAY NOT ALLOW your collaborators to take away materials, either.
Cite the names of all your collaborators, regardless of whether they are currently taking CSE 344.
Take a 30 minute break (eg, go for a run, watch a TV show, wash the dishes) before writing up your solution (eg, writing code, drawing a parse tree).
Treat coding assistants and generative AIs (eg, Github Copilot, OpenAI ChatGPT) as if they were another human; you may "discuss" class problems with these tools (eg, ask them to write an additional example or to explain code that you wrote), but your submitted work must comply with the above (ie, be written independently and without referencing any output from that tool). When citing your "collaborator", please also provide the prompts you used.
Ultimately, YOU are responsible for understanding and applying Allen School's Academic Misconduct Policy, which applies to students who provide answers in addition to those receiving them. 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 staff 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
Military duties
Unexpected travel
Acute health issues (notably: recall that mental health is still health)
Concerns for personal safety
... or anything else beyond your control which may negatively impact your performance in the class