| | |
|
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
]
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
inference
of configuration templates.
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.
SCALE: Automatically Finding RFC Compliance Bugs in DNS Nameservers (NSDI 2022)
Siva Kesava Reddy Kakarla, Ryan Beckett, Todd Millstein, George Varghese
How Complex is DNS? (HotNets 2021)
Siva Kesava Reddy Kakarla, Ryan Beckett, Todd Millstein, George Varghese
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
more publications...
Poorva Garg (co-advised
with Guy Van den Broeck)
Siva Kesava Reddy Kakarla (co-advised
with George Varghese)
Rathin Singha (co-advised
with George Varghese)
Aishwarya Sivaraman
Alan Tang (co-advised
with George Varghese)
Graduated Students
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
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.