Todd Millstein

UCLA Computer Science Department
476 Engineering VI
Los Angeles, CA 90095-1596
todd [at]
(310) 825-5942

Spring 2018 Office Hour: 4-5pm Mondays and by appointment
[ projects | publications | students | courses | professional activities | bio | other ]

Current Research Projects

Verified Software
Despite lots of testing, bugs and security vulnerabilities plague modern software systems. How do we make it cost-effective to verify critical correctness properties of programs? This question motivates a lot of my research; current directions include automatic inference of program properties and foundations for probabilistic verification.

Simple and Efficient Concurrency
Mainstream programming languages like C++ and Java provide an incredibly complex and error-prone semantics for threads in the name of efficiency. Can we instead provide the simple interleaving semantics of threads (known formally as sequential consistency) at a reasonable cost? Start here for the high-level problem and motivation. In recent work we created a sequentially consistent Java virtual machine and measured its performance.

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? We are working on both verification of existing networks and new languages to design networks that are correct by construction.

Recent Publications

A Volatile-by-Default JVM for Server Applications  (OOPSLA 2017)
       Lun Liu, Todd Millstein, Madanlal Musuvathi

Probabilistic Program Abstractions  (UAI 2017)
       Steven Holtzen, Todd Millstein, Guy Van den Broeck

Network Configuration Synthesis with Abstract Topologies  (PLDI 2017)
       Ryan Beckett, Ratul Mahajan, Todd Millstein, Jitendra Padhye, David Walker

more publications...

Ph.D. Students

Steven Holtzen (co-advised with Guy Van den Broeck)
Lun Liu
Saswat Padhi

Graduated Students


I regularly teach these courses:

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

CS131: Programming Languages
an upper-division undergraduate course on programming language concepts and the relationships among different programming paradigms

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

Upcoming Professional Activities

Program Chair, ECOOP 2018
Program Committee Member, OOPSLA 2018

Brief Biography

I joined the UCLA faculty in January 2004. I am also a co-founder and Chief Scientist of Intentionet. 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.

Other Stuff

It turns out computer science at UCLA goes way back. Here's a fun short video about UCLA's differential analyzer from 1948.

In my spare time, I am a (mainly jazz) guitarist. One of my groups made a recording a while back.