CSE 4/562 - Database Systems (Spring 2026)
Database Systems teaches the inner workings of data management systems. Focus areas include organizational data structures (physical layouts, indexes, materialized views), data processing algorithms (join, sort), query optimization (relational algebra equivalences, query planning, cost modeling), transactional semantics (X-serializability, locking, OCC, MVCC), and recovery (WAL, Undo Logging, ARIES). The course involves a term-long project where students build a query processing system.
3 credit hoursCourse Information
- When
- T/R 3:30-4:50
- Where
- NSC 218
Resources
Textbooks
- "Database Systems: The Complete Book" 2e by Garcia-Molina, Ullman, and Widom (required by: no date)
- "Patterns in Data Management" by Jens Dittrich (optional)
- "A Tour of C++" by Bjarn Stroustrup (optional)
Course Staff
- Location
- Capen 212
- Office Hours
- Tue 10-11 AM; Thu 1-3 PM
- first initial plus last name
You should never hesitate to come ask questions in office hours, whether it be a simple/fundamental question, something more advanced that you are interested in, or simply to chat about the material/department/life in general. Remember that you are always welcome with any level of question and should not be shy to ask. Please report any issues/concerns with office hours ASAP so we can address problems early in the semester.
If you need to email course staff, please include [CSE 4/562] at the beginning of the subject line so your email is not missed. Email omitting this tag from the subject or from non-UB accounts will be ignored.
Important Dates
- 01/22/26
- No Class! Video Lecture
- 03/05/26
- Midterm (in class)
- 03/16/26-03/20/26
- Spring Break
- 04/14/26
- Last day to resign classes
- 05/11/26
- Final Exam (3:30-6:30)
Deadlines
- 01/26/26
- Checkpoint 0: Getting Started
- 01/30/26
- AI Quiz
- 02/09/26
- Checkpoint 1: POSIX IO
- 03/02/26
- Checkpoint 2
- 03/30/26
- Checkpoint 3
- 04/21/26
- Checkpoint 4
- 05/04/26
- Checkpoint 5
Lectures
- 01/22/26
- Introduction, SQL, and C++ (No Class! Video Lecture)
- 01/27/26
- Relations, Relational Algebra
- 01/29/26
- Query Processing Algorithms
- 02/03/26
- Relational Algebra Equivalence Rules
- 02/05/26
- Extended Relational Algebra
- 02/10/26
- Physical Data Layouts
- 02/12/26
- Physical Data Layouts
- 02/17/26
- Indexes/Data Organization
- 02/19/26
- Tree-, Hash-Based Layouts
- 02/24/26
- Write-, Read-Optimized Layouts
- 02/26/26
- Cost-Based Optimization
- 03/03/26
- Midterm Review
- 03/10/26
- Distributed Queries
- 03/12/26
- Approximate Query Processing
- 03/24/26
- Data Sketching
- 03/26/26
- Streaming Queries
- 03/31/26
- Updates & Incremental View Maintenance
- 04/02/26
- Transactions: Intro
- 04/07/26
- Transactions: Pessimistic Methods
- 04/09/26
- Transactions: Optimistic Methods
- 04/14/26
- Logging & Recovery
- 04/16/26
- Distributed Commit
- 04/21/26
- Streaming Data
- 04/23/26
- Provenance
- 04/28/26
- Buffer
- 04/30/26
- Review
- 05/05/26
- Review
Prerequisites
This course assumes that incoming students are comfortable with SQL and asymptotic complexity (Big-O notation). This course also assumes that incoming students know the standard suite of data structures (Arrays, Linked Lists, Search Trees, Heaps, Hash Tables) and is intimately familiar with their tradeoffs. Finally, this course assumes that incoming students are familiar with programming in C++, or at least have prior experience with an object-oriented programming language like Java, Rust, or Scala. At UB, these expectations are covered by CSE 116, CSE 220, CSE 250, and either CSE 350 or CSE 4/560.
Familiarity with functional programming metaphors (CSE 305) may also be helpful.
Course Requirements
Assignments
A special Academic Integrity Quiz will be assigned during the first week of classes. You must score 100% on this exam or you will receive a grade of "F" in the class. You may make as many attempts at the exam as you like.
Submitted work during the semester will consist primarily of a single programming assignment completed over the course of the term in a groups of up to three. This project is subdivided into a setup deliverable (checkpoint 0) and five cumulative checkpoints spaced throughout the semester. Starting with checkpoint 1, your submissions will also include updating a journal, a living document that outlines the design space for your approach.
After each checkpoint submission, every team will meet with the instructor to discuss the ongoing design of their project, and will be expected to understand and justify all code written, and all information included in the journal. Every member of the team will be evaluated and graded independently, and must be able to justify their contribution to each checkpoint.
Late Policy
Late programming assignments will be accepted up to 2 days late, for a penalty of 25% of the total points assigned to the checkpoint per day. For example, if the programming assignment is worth 100 points and you submit it one day late, you will receive the greater of zero points, or your score earned minus 50 points.
You have a total of five grace days to spend over the course of the semester. Each grace day can be used to negates one 'day' of late penalty for a homework or project. You may not use a grace day to submit a written assignment more than one day late or a programming assignment more than two days late. Grace days are automatically applied to the first instances of late submissions, and are non-refundable. Please plan accordingly. You will not be able to recover a grace day if you decide to work late and your score was not sufficiently higher.
Keep track of the time if you are working up until the deadline. Submissions become late after the set deadline, even by 1 minute.
Exams
There will be one midterm exam during the semester and one 3-hour final exam during finals week. The midterm exam is worth 15% of your grade. The final exam is worth 15% of your grade. We reserve the right to change the scaling of the exams.
No makeup exams will be given except in provably extreme circumstances. Please note the following additional policies/suggestions with respect to makeup exams:
- Notify your instructor 24 hours prior to the exam via e-mail or telephone (voice mail) if you are going to miss an exam. If it is medically impossible for you to give prior notice, please obtain a note from a physician detailing the period (and the reason) you were medically incapable of communicating with the instructor.
- If you miss an examination because of sickness or similar reasons, visit a physician and obtain a note detailing the period and the reason you were medically incapable of taking the exam.
- The midterm and final exam dates are posted. Please plan your travel and other activities accordingly.
- The final exam date is scheduled by the university and is posted under the HUB Final Exam Schedule. Exam dates can and do change, so if the date and time posted here and in HUB differ, HUB is correct.
- Exam times are stressful and one could forget about the exam time. Please make sure you arrange for multiple reminders so that you do not forget about the exam(s). This is another reason to religiously follow the course webpage as there will be numerous reminders about the exam when it gets close to the actual exam date.
Attendance and Participation
You are expected to attend lectures. A random subset of lectures (at least 7 during the semester) will include a short in-class quiz. Your lowest two quiz score will be dropped; Note that this means you may miss two in-class quizzes with no penalty.
Grading Policy
Your grade is a weighted combination of the following:- Programming Assignments
- 20%
- Code/Journal Reviews
- 40%
- Midterm Exam
- 15%
- Final Exam
- 15%
- In-Class Quizzes
- 10%
An additional 1 point (max of 3 per student) will be awarded for the first legitimate report of a typo in this syllabus, or any assignment handout materials. Typos should be reported by email or Piazza to the instructor.
In addition to the above, you must complete the preparatory assignments, or you will receive a failing grade in the class. Any student found to be in violation of the academic integrity policy will also receive a failing grade. Please make sure to read and understand this policy.
| Score (x) | Letter Grade | Quality Points |
|---|---|---|
| 90% ≤ x ≤ 100% | A | 4.0 |
| 85% ≤ x < 90% | A- | 3.67 |
| 80% ≤ x < 85% | B+ | 3.33 |
| 75% ≤ x < 80% | B | 3.00 |
| 70% ≤ x < 75% | B- | 2.67 |
| 65% ≤ x < 70% | C+ | 2.33 |
| 60% ≤ x < 65% | C | 2.00 |
| 55% ≤ x < 60% | C- | 1.67 |
| 50% ≤ x < 55% | D | 1.00 |
| 0% ≤ x < 50% | F | 0 |
Students that do not participate in the class at all will receive a grade of F3, which denotes failure for non-attendance.. Students who do not complete a substantial portion of the course, or do not attend more than 60% of the course will receive a grade of F2, which denotes failure for partial non-attendance.. Please note that there may be financial aid repercussions so you should consider resigning courses you are not planning on completing.
Incompletes
A grade of incomplete ("I") indicates that additional course work is required to fulfill the requirements of a given course. Students may only be given an "I" grade if they have a passing average in coursework that has been completed and have well-defined parameters to complete the course requirements that could result in a grade better than the default grade. An "I" grade may not be assigned to a student who did not attend the course. This is especially applicable in instances where a student misses work due to extenuating circumstances and are unable to makeup the work prior to the end of the semester. For example, missing the final exam due to a car accident and/or being hospitalized for an extended period during the semester are two examples where completing all coursework may not be possible before grades are due. Consult the registrar's website for more information regarding the incomplete grade process. Incompletes will not be given as a shelter for poor grades. It is the student's responsibility to resign from the course in a timely manner if doing poorly. The last day to resign with a grade of R is 04/14/26.Accessibility Resources
If you have any disability which requires reasonable accommodations to enable you to participate in this course, please contact the Office of Accessibility Resources in 60 Capen Hall, 716-645-2608 and also the instructor of this course during the first week of class. The office will provide you with information and review appropriate arrangements for reasonable accommodations, which can be found on the web at: http://www.buffalo.edu/studentlife/who-we-are/departments/accessibility.htmlCritical Campus Resources
Sexual Violence
UB is committed to providing a safe learning environment free of all forms of discrimination and sexual harassment, including sexual assault, domestic and dating violence and stalking. If you have experienced gender-based violence (intimate partner violence, attempted or completed sexual assault, harassment, coercion, stalking, etc.), UB has resources to help. This includes academic accommodations, health and counseling services, housing accommodations, helping with legal protective orders, and assistance with reporting the incident to police or other UB officials if you so choose. Please contact UB’s Title IX Coordinator at 716-645-2266 for more information. For confidential assistance, you may also contact a Crisis Services Campus Advocate at 716-796-4399.
Mental Health Services
As a student you may experience a range of issues that can cause barriers to learning or reduce your ability to participate in daily activities. These might include strained relationships, anxiety, high levels of stress, alcohol/drug problems, feeling down, health concerns, or unwanted sexual experiences. Counseling, Health Services, and Health Promotion are here to help with these or other issues you may experience. You can learn more about these programs and services by contacting:
- Counseling Services
-
https://www.buffalo.edu/studentlife/who-we-are/departments/counseling.html
120 Richmond Quad (North Campus), 716-645-2720
- Health Services
-
https://www.buffalo.edu/studentlife/who-we-are/departments/health.html
4350 Maple Road, 716-829-3316 - Health Promotion
-
https://www.buffalo.edu/studentlife/who-we-are/departments/health-promotion.html
114 Student Union (North Campus), 716-645-2837
Miscellaneous Notes
Here are some other policies/suggestions to keep in mind:- Your grade will solely depend on your performance in this semester: you will not get any opportunity to do extra work to improve your grade. It is your duty to make sure you understand what is expected of you. This course will require a fair bit of work so if you are busy this semester, please plan accordingly.
- If there is a genuine reason for re-grading, please contact the instructor within a week of when the graded material is handed out in class/completed in the grader. In particular, if you do not pick up/view your graded material on time, you may lose the opportunity to get back to us within the stipulated time period.
- Feel free to make up a group of students to work on homework and study the course. Piazza offers a mechanism to search for group-mates. In a course like this it is very important to discuss problems with one another to better study. Teaching is the best way to learn material!
Academic Integrity
As a gentle reminder, please re-read the academic integrity policy of the course. I will continue to remind you throughout the semester and hope to avoid any incidents.Overview
In addition to reinforcing your understanding of course content, the objective of the course deliverables is to allow the course staff to assess your understanding of that material. For a deliverable to be an effective assessment, it is critical that course staff be able to trust that it is representative of your knowledge and expertise, especially with respect to course content. By submitting a course deliverable, you are asserting that, except where citations indicate otherwise, the work delivered is your work, and in doing so, take responsibility for its content.
Per departmental policy, the standard sanction for academic integrity violations in this class is "Grade of F".
If you have any questions or concerns about this policy, or if you are unclear how it applies to a specific situation, contact course staff in private (for example through a private Piazza post) as soon as possible.
Generative AI
You are in an educational setting, so almost by definition, the work that you are submitting will be revisiting ideas that have been already explored extensively by many others. Even before recent advances in text synthesis, the building blocks for solutions could be easily found on multiple websites. At this point, it is highly likely that a chatbot can complete all of the course deliverables without difficulty.
You are here to exercise your brains. Your goal is to become better computer scientists. We will provide take-home work to help you do that, but the responsibility to actually do the work is on you. Just like you wouldn't bring a forklift to lift weights, it is expected that you will not use assistive tools that displace the pedagogical value of take-home work. Accordingly, the use of generative AI tools and technologies is not permitted. This includes (but is not limited to):
- Chatbots (ChatGPT, Gemini)
- Generative Coding Assistants (Claude, Copilot)
- Generative Writing Assistants (Copilot)
You should carefully note the grade distribution: Take-home work is not a significant part of your grade. A majority of your grade will be determined through in-person assessments. However, significant portions of these assessments will be used to assess your understanding of the material covered by the take-home assignment. Because take-home assignments are graded, you will be held fully responsible for their content. Significant discrepancies between a student's submitted work and the understanding the student demonstrates in-person, will be treated as academic integrity violations
Permitted Collaboration
I strongly encourage you to discuss course content with your fellow students. Explaining an idea to someone else is a great way to reinforce the idea in your own mind, and your peers are more likely to be experiencing similar difficulties as you. However, collaboration with your peers should limited to concepts and high-level ideas. For example, discussing the high level building blocks you used to reach a solution is acceptable:
I used a stack to store the data and then looked for the value to return.
... while explaining every step in detail/pseudocode is not okay:
I copied the file tutorial into my code at the start of the function, then created a stack and pushed all of the data onto the stack, and finished by popping the elements until the value is found and use a return statement.
Regardless of where you are working, you must always follow these three rules:
- Collaboration with others should be attributed properly.
- Never come away from discussions with your peers with any written work, either typed or photographed.
- You should take steps to secure your work, including locking your computer when unattended.
Amnesty Policy
If you have concerns that you may have violated this academic integrity policy, you may retract any submission at any time prior to course staff discovering that an academic integrity violation has occurred. To do so, notify course staff by sending an email such as the one below:
Dear Dr. Kennedy,
I wish to withdraw my submission on Assignment N to preserve academic integrity.
Sincerely, J.Q. Student
Person #12345678
UBIT: jqstuden
Upon receipt of such an email, I would remove J.Q.'s submission for Assignment N... it would be as if it had not been submitted. While J.Q. will receive a zero for this assignment, it will not be considered to be an AI violation.
What Resources are Allowed?
With all of this said, please feel free to use any [files|examples|tutorials] that we provide directly in your code (with proper attribution). Feel free to directly use anything from lecture or recitations. You will never be penalized for doing so, but should always provide attribution/citation for where you retrieved code from. Just remember, if you are citing an algorithm that is not provided by us, then you are probably overstepping.
More explicitly, you may use any of the following resources (with proper citation/attribution in your code):
- Any example files posted on the course webpage (from lecture or recitation).
- Any code provided by course staff.
- Any code included in a resource provided by course staff.
University AI Policies
Academic integrity is a fundamental university value. Through the honest completion of academic work, students sustain the integrity of the university while facilitating the university's imperative for the transmission of knowledge and culture based upon the generation of new and innovative ideas.
The University Office of Academic Integrity.
The academic degrees and the research findings produced by our Department are worth no more than the integrity of the process by which they are gained. If we do not maintain reliably high standards of ethics and integrity in our work and our relationships, we have nothing of value to offer one another or to offer the larger community outside this Department, whether potential employers or fellow scholars. For this reason, the principles of Academic Integrity have priority over every other consideration in every aspect of our departmental life, and we will defend these principles vigorously. It is essential that every student be fully aware of these principles, what the procedures are by which possible violations are investigated and adjudicated, and what the punishments for these violations are. Wherever they are suspected, potential violations will be investigated and determinations of fact sought. In short, breaches of Academic Integrity will not be tolerated.
Departmental Statement on AI in Homework Assignments
The following statement further describes the specific application of these general principles to a common context in the CSE Department environment, the production of source code for project and homework assignments. It should be thoroughly understood before undertaking any cooperative activities or using any other sources in such contexts.
All academic work must be your own. Plagiarism, defined as copying or receiving materials from a source or sources and submitting this material as one's own without acknowledging the particular debts to the source (quotations, paraphrases, basic ideas), or otherwise representing the work of another as one's own, is never allowed. Collaboration, usually evidenced by unjustifiable similarity, is never permitted in individual assignments. Any submitted academic work may be subject to screening by software programs designed to detect evidence of plagiarism or collaboration.
It is your responsibility to maintain the security of your computer accounts and your written work. Do not share passwords with anyone, nor write your password down where it may be seen by others. Do not change permissions to allow others to read your course directories and files. Do not walk away from a workstation without logging out. These are your responsibilities. In groups that collaborate inappropriately, it may be impossible to determine who has offered work to others in the group, who has received work, and who may have inadvertently made their work available to the others by failure to maintain adequate personal security. In such cases, all will be held equally liable.
Departmental Policy on Violations of Academic Integrity
The CSE Department has a zero-tolerance policy regarding academic integrity (AI) violations.
When there is a potential violation of academic integrity in a course, the course director shall first notify the concerned students. This notification begins the UB Academic Integrity Policy review and appeals process (Consultative Resolution, Departmental Level Procedures, Decanal Level Procedures, Vice Provost Level Procedures).
Upon conclusion of the review and appeals process, if the department, school, and university have determined that the student has committed a violation, the following sanctions will be imposed upon the student:
- Documentation. The department, school, and university will record the student's name in departmental decanal, and university-level academic integrity violations databases.
- Penalty Assessment. The standing policy of the department is that all students involved in an academic integrity violation will receive an F grade for the course and may lose financial aid and/or lose financial support from the department. The course director may recommend a lesser penalty for the first instance of academic integrity violation, and the adjudication committees that hear the appeal at the department, decanal and provost level may recommend a lesser or greater penalty.