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

Project 2: B-tree construction and operations

Release date: 2099-01-01 00:00:00-05
Final Due date: 2026-03-01 23:59:59-05
Final Submission enabled until: 2026-03-03 23:59:59-05
Last updated: 2/12/2026

Checkpoint 0 & 1: Data page layout for fixed-length key-value pairs

Checkpoint 0 due: in-class, 2026-02-05 17:50:00-05 (no grace period)
Checkpoint 1 due: 2026-02-08 23:59:59-05
Checkpoint 1 submission enabled until: 2026-02-10 23:59:59-05

Source files to modify:

Instructions: see lecture notes on 2/5/2026.

Checkpoint 2: B-Tree Search

Checkpoint 2 due: 2026-02-15 23:59:59-05
Checkpoint 2 submission enabled until: 2026-02-17 23:59:59-05

Source files to modify:

Instructions: see lecture notes on 2/10/2026.

If some of the tests fail to load the B-tree files in data/preloaded_ds_btree/search, you may remove the directory data/preloaded_ds_btree/search and rerun ./import_data.sh.

Please do not modify include/ds/BTree.h and src/ds/BTree.cpp as they will be overwritten later on. If you need to add member declarations to the meta data page and the B-tree class, please do so in the corresponding sections in include/ds/BTreeExtra.h

Checkpoint 3: B-Tree Insertion

Checkpoint 3 due: 2026-02-22 23:59:59-05
Checkpoint 3 submission enabled until: 2026-02-24 23:59:59-05

Source files to modify:

Instructions: see lecture notes on 2/10/2026.

To run tests, directly invoke tests/ds/BasicTestDSBTreeInsert. Some of the tests may enter an infinite loop if you have not implemented anything. The execution time of any of the test case should not exceed 16 seconds.

You should not allocate additional memory space through new/delete, malloc/free, or alloca beyond what's provided in the code stub.