Teaching

I teach undergraduate and graduate courses on computer systems. Slides, assignments, and schedules are available on course website.

CS2680 AI Systems: Agents and System Optimizations Fall 2026 · Mon & Wed 11:15am–12:30pm · SEC LL2.221

This course follows one AI system from the agent loop down to the GPU. Students start by using agent frameworks, then build their own, measure performance, and optimize on top of commercial APIs. They then deploy open-source models themselves and work through the underlying systems layers, with an emphasis on defining success metrics, accounting for every token and second, and measuring improvements at each layer.

Topics how to use agent, agent designs, LLM serving scheduling, KV-cache management, quantization, speculative decoding
Prerequisites at least one of CS61, CS1610, or CS2620; proficiency in Python and PyTorch
CS2640 Modern Computer Storage Systems Spring 2026 · Mon & Wed 11:15am–12:30pm · SEC LL2.223

A comprehensive examination of both the hardware and software components of modern computer storage systems, covering the layered architecture from individual disks and SSDs to block storage, file systems, and distributed storage systems, with an emphasis on efficiency, performance, and reliability. The first half is lecture-based; the second half features student paper presentations and guest lectures from industry experts.

Topics HDDs and SSDs, block storage, file systems, distributed storage, caching, RAID and data protection, machine learning and storage
Prerequisites at least one of CS61, CS1610, or CS2620