Automated Debugging Andreas Zeller

Registration for this course is open until Sunday, 15.11.2020 23:59.


Currently, no news are available

Automated Debugging

Ask yourself: How many hours have you spent chasing bugs? So, wouldn't it be cool if the computer could take care of debugging your program? In this course, we discuss automated debugging and testing techniques such as

  • Tracking program executions
  • Building interactive debuggers
  • Generating test inputs
  • Simplifying inputs
  • Automatic fault localization
  • Learning from logs
  • Checking assertions
  • Learning invariants
  • Failure-inducing input properties
  • Repairing programs automatically

The course material comes as a collection of Jupyter Notebooks (similar to, in which you can study how the individual techniques work – and even make your own experiments and create new combinations. Every week, you will be getting a new chapter (notebook) on a new topic, which we will then discuss the next week in the classroom. Your grade will be determined from a series of projects in which you will be building your own automated debuggers.

Prerequisites: Programming at the level of "Programming 2". Python knowledge is good, but can also be acquired on the spot. We use a bit of statistics, logic, and machine learning, but nothing too exotic.

Privacy Policy | Legal Notice
If you encounter technical problems, please contact the administrators