<b>Database Systems</b> 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 qyery processing system.
<b>Languages & Runtimes for Big Data</b> is a project based course exploring topics at the intersection of Data Management and Programming languages. Focus areas include indexing, databases on new hardware, uncertain data management, and concurrency. In addition to reading papers from ongoing research in these areas, students are expected to complete a term-long project based on one of several seed ideas provided by the instructors.