CSE 350: Advanced Data Structures and Indexes (Spring 2026)

[Logistics] [Course Requirements] [Academic Integrity] [Grading] [Lecture Schedule] [Assignments] [Accessibility Resources]

Course Description

Welcome to CSE 350 Advanced Data Structures and Indexes of Spring 2026. This course expands on CSE 250 Data Structures by introducing techniques for data organization that account for the memory hierarchy and the need for concurrent access. Topics include relational data model and SQL, IO Complexity, On-Disk Tree- and Hash- based structures, Write-optimized data structures (e.g., LSM Indexes and Beta-Epsilon Trees), Serialization/Data Layout, Caching, Secondary Indexes, Concurrent Data Structures, and Versioned Data Structures. The specific covered topics vary across semesters. This course also introduces SQL queries and Relational Algebra as a framework for reasoning about data access methods.

Logistics

  [back to top]

Course Requirements

  [back to top]

Grading

  [back to top]

Please see PDF syllabus for the mapping between numeric score and letter grades.

Course Schedule

  [back to top]

Hint: If you find the last update date of a slide deck is later than the one you previously downloaded and you opened the slides within the browser, you may want to force a refresh using Ctrl + F5.

The following schedule is tentative and may be adjusted throughout the semester.

Lectures

Date Topics Slides/Lecture Notes Last updated
1/22/2026 Course logistics; abstract data types, in-memory implementation and complexity analysis; overview of storage hierarchy and External Memory model.
Recitation: command-line programming and introduction to C++ programming and I/O syscalls
S01; Bash, Git & C++ basics (CSE562, SP22) 1/22/2026
1/27/2026 Physical Storage Device S02 1/27/2026
1/29/2026 How to work with External Memory: common techniques and cost analysis;
Recitation more on C++ programming and I/O syscalls;
S03 1/27/2026
2/3/2026 B-tree Index: from binary search to multiway search
2/5/2026 B-tree Index: page layout;
Recitation: Bit manipulation
2/10/2026 B-tree index: bulk loading
2/12/2026 B-tree index: external sorting;
Recitation: Memory allocation
2/17/2026 B-tree index: insertion and deletion
2/19/2026 LSM-tree;
Recitation: TBD
2/24/2026 LSM-Tree
2/26/2026 LSM-Tree;
Recitation: TBD
3/3/2026 Midterm review
3/5/2026 Midterm Exam, in class, Norton 213, 3:40 PM - 5:40 PM (120 minutes)
3/10/2026 Relational Model
3/12/2026 Relational Algebra and SQL; (Recitation) Midterm recap; >
3/17/2026 Spring recess, no lecture
3/19/2026 Spring recess, no lecture
3/24/2026 I/O buffers
3/26/2026 Concurrency control;
Recitation:
3/31/2026 Concurrency control
4/2/2026 Filters;
Recitation:
4/7/2026 Taming write amplification in LSM-trees
4/9/2026 Hash Index;
Recitation:
4/14/2026 Hash Index;
4/16/2026 Secondary indexing;
Recitation:
4/21/2026 Secondary indexing;
4/23/2026 B-tree layout optimization;
reading: B-Trees Are Back, SIGMOD '25
4/28/2026 Asynchronous I/O
4/30/2026 DBMS integration
5/5/2026 Final review;
5/12/2026 Final exam: Norton 213, 3:40 pm to 5:40 pm (120 minutes). Covers everything after the mid-term exam.

Programming Assignments

  [back to top]

Assignment Release date Due date
Project 0: Repository setup and projects sign-up (in class) 2026-01-22 15:30:00-05 2026-01-23 23:59:59-05
Project 1: POSIX I/O 2026-01-22 15:30:00-05 2026-02-01 23:59:59-05
Project 2: Static B-tree construction and lookup
Project 3: Log-Structured Merge Tree with concurrency
Project 4: Performance optimization

Accessibility Resources

  [back to top]

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. The office will provide you with information and review appropriate arrangements for reasonable accommodations, which can be found on the web at this link. Please also notify the instructor as soon as possible to make reasonable arrangement early.