Debugging is an integral part of software development. Understanding why programs fail is crucial for creating robust and reliable software. “Why Programs Fail: A Guide to Systematic Debugging” by Andreas Zeller offers a comprehensive approach to debugging. This guide provides structured methods to identify, isolate, and fix errors in software. Alongside the book, a set of slides provides valuable insights into the debugging process.
These slides, used in university courses on automated debugging based on the book, are now available for download, offering a supplementary learning resource for developers, students, and educators.
Slides from the Course
From 2004 to 2006, Andreas Zeller lectured on automated debugging at Saarland University, the University of Washington, and Elba, Italy. These lectures were based on the principles outlined in “Why Programs Fail.” The slides from these courses, comprising over 600 slides, provide a visual and structured overview of the book’s key concepts.
Each set of lecture slides is designed to correspond roughly to a chapter in the book, with each set intended for an 80-minute lecture. While the slides offer a comprehensive overview, they are not self-contained. Readers will still need the book for detailed explanations and examples.
The slides were originally created in Keynote 2 format and have been exported to PDF and PowerPoint formats. For the best viewing and presentation experience, the author recommends using Keynote.
Individual Sets of Slides
The individual sets of slides cover various chapters of the book, offering a targeted approach to specific debugging topics. Below is a list of available slide sets:
Chapter | Keynote | PPT | |
---|---|---|---|
How Failures Come To Be | Keynote | PPT | |
Tracking Problems (Chapter 2) | Keynote | PPT | |
Making Programs Fail | Keynote | PPT | |
Reproducing Problems (Chapter 4) | Keynote | PPT | |
Simplifying Problems | Keynote | PPT | |
The Scientific Method (Chapter 6) | Keynote | PPT | |
Deducing Errors | Keynote | PPT | |
Observing Facts (Chapter 8) | Keynote | PPT | |
Tracking Origins | Keynote | PPT | |
Asserting Expectations (Chapter 10) | Keynote | PPT | |
System Assertions | Keynote | PPT | |
Comparing Coverage (Chapter 11) | Keynote | PPT | |
Detecting Anomalies | Keynote | PPT | |
Causes and Effects (Chapter 12) | Keynote | PPT | |
Isolating Failure Causes | Keynote | PPT | |
Isolating Cause-Effect Chains (Chapter 14) | Keynote | PPT | |
Locating Failure Causes | Keynote | PPT | |
Fixing The Defect (Chapter 15) | Keynote | PPT | |
Learning From Mistakes | Keynote | PPT | |
About The Course | Keynote | PPT | |
Download All Slides
For those who prefer to have all the slides in one place, a comprehensive archive is available for download in PDF, Keynote, and PPT formats. This allows for offline access and convenient browsing of all the material.
Archive | Link |
---|---|
All slides PDF | |
All slides Keynote | Keynote |
All slides PPT | PPT |
Tutorial Slides
In addition to the course slides, a tutorial on “Mining Programs” based on the book is also available. This tutorial provides further insights into specific debugging techniques and concepts.
Tutorial | Link |
---|---|
Mining Programs PDF | |
Copyright Information
All slide text is licensed under the Creative Commons Attribution License. Images may be copyright protected by their respective owners. Users are advised to obtain appropriate permission before using these slides outside of fair use contexts, such as in a classroom.
This guide serves as a starting point to understanding program failures and implementing systematic debugging techniques. With the book “Why Programs Fail: A Guide to Systematic Debugging” and the accompanying slides, developers and students alike can gain a deeper understanding of how to create more reliable and error-free software.