Ben Liblit

Associate Professor
Computer Sciences Department
University of Wisconsin–Madison
1210 West Dayton Street
Madison, WI 53706‒1685
USA

office:  6357 Computer Science Building
work +1 (608) 262‒6617
fax +1 (608) 262‒9777
crypto:  PEM, PGP

Spring 2016 office hours are Tuesdays, 4pm – 5pm. Unscheduled drop-in visitors are also usually welcome. I am in room 6357 of the Computer Science building. Come on by and say hello!

For Spring 2016 I am teaching CS 506: Software Engineering. This undergraduate course meets Tuesdays and Thursdays, 2:30pm – 3:45pm in room 1325 of the Computer Sciences Building. This course counts as an advanced CS course or as a hardware/software course for B.S. requirements, as a non-core course for M.S. requirements, or as a Band 1 breadth course for Ph.D. requirements.

Attention students on the CS 506 wait list: CS 506 is currently filled up to the capacity of the room. As of January 20, we have 76 students enrolled and 79 students on the wait list. The CS Professional Programs Coordinator Jonathan Henkel <jhenkel@cs.wisc.edu> is managing the CS 506 wait list. Please contact him directly with any questions about the wait list policy, or how your chances look for getting in.


I am an associate professor of computer science, specializing in software engineering and programming languages. My work in this area began with a pioneering four-year field study on the practice of programming. (That is, I was an actual grownup with a real job as a software engineer.) Today it is the challenges and needs of the professional programmer that inspire my research.

My research team:

Current Students

Former Students

Bug Isolation in an Imperfect World

How many times has your computer crashed this month? My current focus is on improving software quality in a world where bugs are a fact of life. I seek practical ways to use program analysis, machine learning, and other techniques to understand and fix bugs in the real world.

Error Propagation

Finding and Fixing Bugs in Concurrent and Parallel Programs

Postmortem Program Analysis

Statistical Debugging and Cooperative Bug Isolation

The Cooperative Bug Isolation Project is putting many of the above ideas to work in a large scale, real world deployment. When theory collides with practice, fun things happen.

Dynamic Heap Type Inference

Other Bug Hunting

Languages for Scientific Computing

Your supercomputer is only as good as the code you’re running on it. As a member of the Titanium project I developed a formal basis for understanding the behavior of distributed data with applications in language design, algorithm development, programming, and optimization.

Odds and Ends

I’ve also written a few things about other facets of programming and program analysis.