Work in progress

Course Schedule

Rust first, then one query from meaning to recursive execution

Meeting-by-meeting plan and primary readings

The course meets Monday and Wednesday from 3:00–4:15 p.m. Each column below is a separate class meeting, not a weekly topic followed by an elaboration of the same lecture. Week 1 supplies the Rust needed to read the project: one meeting uses the course cheat sheet with Rust Guide R.0.0, and the next begins the staged-programming sequence with Rust Conversation R.1. Rust then returns in ten later Wednesday conversations and project studios.

Five meetings are marked as student-led paper forums. One or more assigned leaders open each forum with the paper's claim, evidence, and a question or counterexample; the rest of the class comes prepared to test that account. A Rust/project studio is guided work during class, not an additional weekly programming assignment. Exceptions from the Fall 2026 academic calendar are attached to the affected meeting.

WeekCenterMonday · 3:00–4:15Wednesday · 3:00–4:15Primary reading / due
1 · Aug. 31–Sep. 4Rust for the courseRust lecture and guided lab: use A Little Rust, Side by Side while working through Rust Guide R.0.0: values, ownership, borrowing, enums, structs, and iteratorsRust Conversation R.1: make written code a typed syntax value; separate macro expansion, compilation, and runtimeRust Book Ch. 4, Ch. 6, and §20.5 are references, not prerequisites
2 · Sep. 7–11CQ meaningNo class · Labor DayLecture 1 slides, Conversation 1.1, and Conversation 1.2: databases, rules, valuations, query images, and why we compile a queryAbiteboul, Hull, and Vianu, Foundations of Databases, §§3.1–3.3, 4.1–4.2
3 · Sep. 14–18From CQs to logical join plansConversation 1.3, Conversation 2.1, Conversation 2.2, and Conversation 2.3: translate valuation semantics into SPJR, interpret a flat join as binary trees, compare intermediate rows and columns, and earn the query hypergraphConversation 2.4, Conversation 2.5, and Rust conversation R.2: derive required schemas, build one deterministic join–project plan, then map written syntax into a derived ASTAbiteboul, Hull, and Vianu, Foundations of Databases, §§4.4, 6.1, 6.4; Garcia-Molina, Ullman, and Widom, Database System Implementation, selected §§6.2–6.4
4 · Sep. 21–25Pull and pushDerive pull and push execution for one fixed logical plan; identify the state each model exposesRust conversation and practicum 1: R.3, then run the fixed plan under both control modelsNeumann, Efficiently Compiling Efficient Query Plans for Modern Hardware, §§1, 3.1–3.2; practicum 1
5 · Sep. 28–Oct. 2Cardinality and join orderStudent-led paper forum: compare left-deep orders and the intermediate work they create; derive the dynamic-programming search spaceRust/project studio: instrument two equivalent plans, check their answers, and explain the work-counter differenceSelinger et al., Access Path Selection in a Relational Database Management System, §5; R1 due
6 · Oct. 5–9AGM boundsDerive a fractional edge cover and its output-size bound; distinguish output size from the work of a chosen binary planRust/project studio and practicum 2: generate controlled relation sizes, measure intermediate work, and compare the trace with the boundAtserias, Grohe, and Marx, Size Bounds and Query Plans for Relational Joins, §§2–3.1; practicum 2. Fall Break is Friday and cancels neither meeting
7 · Oct. 12–16YannakakisStudent-led paper forum: build a join tree and justify the bottom-up and top-down semijoin passesRust/project studio: inspect the join-tree analysis, trace both reduction passes, and check reduced-instance enumerationYannakakis, Algorithms for Acyclic Database Schemes, §§2, 4
8 · Oct. 19–23Worst-case-optimal joinsStudent-led paper forum: contrast binary and variable-at-a-time execution; derive Generic Join under one variable orderRust/project studio: trace trie cursors and Leapfrog intersection, then compare the counters with a binary planVeldhuizen, Leapfrog Triejoin, §§1, 3.1–3.5
9 · Oct. 26–30Practical predicate transferRust/project studio: integrate the semijoin and triejoin stages, run the R2 correctness checks, and prepare one implementation question for the guestHangdong Zhao guest lecture: predicate transfer, runtime filters, zone maps, and related system detailsYang et al., Predicate Transfer
10 · Nov. 2–6Positive DatalogTreat a positive Datalog program as recursive CQ evaluation; derive model, fixed-point, and proof viewsRust/project studio: trace naive fixed-point evaluation and account for rounds, duplicates, and terminationFoundations of Databases, §§12.1–12.4; R2 due
11 · Nov. 9–13Semi-naive evaluationDerive delta rules and candidate sets from the naive evaluatorRust/project studio and practicum 3: follow full, delta, and candidate relations through code; check duplicates and terminationFoundations of Databases, §13.1; practicum 3
12 · Nov. 16–20Extending Datalog to ontology reasoningNegation, disjunction, and the semantic commitments introduced by each extensionStudent-led paper forum: ontology-based data access case study; test which conclusions follow from the paper's semanticsOntology-Based Data Access: A Study through Disjunctive Datalog, CSP, and MMSNP
13 · Nov. 23–27Project checkpointSelect the advanced extension; state its semantic contract, baseline, and correctness oracleNo class · Thanksgiving HolidayNo reading or work due
14 · Nov. 30–Dec. 4Probabilistic and neuro-symbolic DatalogStudent-led paper forum: compare exact, top-k, and differentiable proof evaluation on one supplied exampleRust/project studio: failure-case clinic, work counters, baselines, and final release checkHuang et al., Scallop, §§2–4.2; R3 due
15 · Dec. 7–11SynthesisShort project presentations and cross-course connectionsRemaining presentations and synthesis; Zoom participation is permittedNo reading; No-Test Week

Labor Day cancels Monday, September 7. Fall Break is Friday, October 9, so it cancels neither meeting. Thanksgiving recess cancels Wednesday, November 25, but Monday remains a class meeting. Week 15 has no quiz or examination; project presentations are the only graded activity, as permitted by the university's No-Test Days policy.

Release map

The project releases R1–R3 are submission checkpoints. They are distinct from the instructional Rust Conversations R.1–R.3 linked above.

ReleaseProject stagesPlanned point in course
R1Binary physical plan and execution controlEnd of Week 5
R2Semijoin reduction and triejoinEnd of Week 10
R3Semi-naive evaluation and one advanced extensionEnd of Week 14

The project page defines each release's implementation and evaluation contract. This page is the authoritative location for meeting activities, due weeks, and calendar adjustments.