Todd Millstein

Professor
Vice Chair for Graduate Studies


UCLA Computer Science Department
476 Engineering VI
Los Angeles, CA 90095-1596
todd [at] cs.ucla.edu
(310) 825-5942
[ projects | publications | students | courses | bio ]

Current Research Projects

Verified Software
Despite lots of testing, bugs are rampant in modern software systems. How do we make it cost-effective to verify critical correctness properties of programs? Current directions are largely centered around techniques to automatically infer key inductive program invariants that correctness proofs require.

Network Programming and Verification
Computer networks have become critical infrastructure for all Internet-based services, and as a result the requirements on and complexity of networks have rapidly increased. Can programming languages technology help to manage this complexity? Recent directions include an automated verifier for DNS configurations and an approach to finding router misconfigurations through automated outlier detection.

Practical Probabilistic Programming
Probabilistic programming languages (PPLs) are an expressive means of representing and reasoning about probabilistic models. However, the computational challenge of probabilistic inference, which is the task of computing the probability of an event in the model, limits the applicability of PPLs in practice. We are developing Dice, a PPL for discrete probabilistic programs that scales to programs with hundreds of thousands of random variables.

Recent Publications

Safe-by-default Concurrency for Modern Programming Languages  (TOPLAS)
       Lun Liu, Todd Millstein, Madanlal Musuvathi

Campion: Debugging Router Configuration Differences  (SIGCOMM 2021)
       Alan Tang, Siva Kesava Reddy Kakarla, Ryan Beckett, Ennan Zhai, Matt Brown, Todd Millstein, Yuval Tamir, George Varghese

Model Checking Finite-Horizon Markov Chains with Probabilistic Inference  (CAV 2021)
       Steven Holtzen, Sebastian Junges, Marcell Vazquez-Chanlatte, Todd Millstein, Sanjit A. Seshia, Guy Van den Broeck

Logical Abstractions for Noisy Variational Quantum Algorithm Simulation  (ASPLOS 2021)
       Yipeng Huang, Steven Holtzen, Todd Millstein, Guy Van den Broeck, Margaret Martonosi

more publications...

Ph.D. Students

Poorva Garg (co-advised with Guy Van den Broeck)
Siva Kesava Reddy Kakarla (co-advised with George Varghese)
Aishwarya Sivaraman
Alan Tang (co-advised with George Varghese)

Graduated Students

Courses

I regularly teach these courses:

CS30: Principles and Practices of Computing
an introduction to computing for computer-science majors with no prior programming experience

CS231: Types and Programming Languages
an introductory graduate course on programming language theory and static type systems

CS239: Current Topics in Programming Languages and Systems
a graduate research seminar with varying topics

Brief Biography

I joined the UCLA faculty in November 2003. I am also a co-founder and Chief Scientist of Intentionet. I have been an Academic Visitor at Oxford (2010-11), a Visiting Researcher at Microsoft Research (2012), and a Visiting Fellow at Princeton (2018-19). I received my Ph.D. from the University of Washington Department of Computer Science, where I was a member of the Cecil group led by Craig Chambers. Before that, I was an undergraduate at Brown University, where I was advised by Paris Kanellakis and Pascal Van Hentenryck. I grew up in suburban Maryland, outside of Washington D.C.

I received an NSF CAREER award in 2006, an IBM Faculty Award in 2008, the Most Influential PLDI Paper Award in 2011, an IEEE Micro Top Picks selection in 2012, the Northrop Grumman Excellence in Teaching Award from UCLA Engineering in 2016, a Microsoft Research Outstanding Collaborator Award in 2016, and an Okawa Foundation Research Grant in 2016.