Ben Liblit

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

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

Spring 2018 office hours are Tuesdays 11am – noon, or by appointment.

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 2018 I am teaching CS 506: Software Engineering. This undergraduate course meets Tuesdays, and Thursdays, 2:30pm – 3:45pm. 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.

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.