News
Statistics and GradesWritten on 20.12.24 by Laura Plein Dear Students, We have now released the statistics for the assignments. The grades for Assignment 5 have also been updated in CMS. You can find the solutions under the Materials. Best regards,
|
Project 01 UpdateWritten on 13.12.24 by Marius Smytzek Dear Students, There still was problem with the tests for Project 01. We have updated and extended the tests to provide more detailed assertions. Additionally, we have uploaded solely the… Read more Dear Students, There still was problem with the tests for Project 01. We have updated and extended the tests to provide more detailed assertions. Additionally, we have uploaded solely the test file for convenience if you have already started with your implementation. |
Assignment 6Written on 12.12.24 by Laura Plein Dear Students, We have just released Assignment 6. You can find it under the Materials. Best regards, |
Project 01 UpdateWritten on 10.12.24 by Marius Smytzek Dear Students, There was a problem with two tests for Project 01, and we have fixed these tests. Additionally, we have uploaded solely the test file for convenience if you have already… Read more Dear Students, There was a problem with two tests for Project 01, and we have fixed these tests. Additionally, we have uploaded solely the test file for convenience if you have already started with your implementation. |
Project 01Written on 05.12.24 by Marius Smytzek Dear Students, We have published Project 01. You can find it under Information > Material. The Zip file contains the required files for this exercise. The sheet.pdf includes the tasks you should try to solve. Please submit your solutions via the CMS on your Personal Status page. You have… Read more Dear Students, We have published Project 01. You can find it under Information > Material. The Zip file contains the required files for this exercise. The sheet.pdf includes the tasks you should try to solve. Please submit your solutions via the CMS on your Personal Status page. You have until 12 January 2023 at 23:59 to upload your solutions as a Zip file. Note that we cannot evaluate delayed submissions. |
Assignment 5Written on 04.12.24 by Laura Plein Dear Students, We have just released Assignment 5. You can find it under the Materials. Best regards, |
Assignment 4Written on 21.11.24 by Laura Plein Dear Students, We have just released Assignment 4. You can find it under the Materials. Best regards, |
SFL ExampleWritten on 21.11.24 by Marius Smytzek Dear Students, We have uploaded the lecture's example and exercise on statistical debugging ( Best regards, |
Assignment 3Written on 15.11.24 by Marius Smytzek Dear Students, We have just released Assignment 3. You can find it under the Materials. The Zip file contains the required files for this exercise. The sheet.pdf contains the tasks you should try to solve. Because of the delay, we have extended the deadline for this assignment to 24.11.2024. Best regards, |
Debuggingbook-1.2.3 availableWritten on 12.11.24 by Andreas Zeller Hi everyone, We have released a new version 1.2.3 of the Hi everyone, We have released a new version 1.2.3 of the To upgrade, run $ pip install --upgrade debuggingbook Enjoy! -- Andreas + Laura + Marius |
Assignment 2Written on 06.11.24 by Laura Plein Dear Students, We have just released Assignment 2. You can find it under the Materials. The Zip file contains the required files for this exercise. The sheet.pdf contains the tasks you should try to solve. Best regards, |
This week's lecture _moved_ to Friday 16:15; exam datesWritten on 21.10.24 by Andreas Zeller Dear all, Since all three of us are sick, this week's lecture is moved to Friday at 16:15. (same place – CISPA Stuhlsatzenhaus, lecture hall.) Also, we now have exam dates. Please mark your calendars:
Dear all, Since all three of us are sick, this week's lecture is moved to Friday at 16:15. (same place – CISPA Stuhlsatzenhaus, lecture hall.) Also, we now have exam dates. Please mark your calendars:
Details on the exams will be provided in due course. All the best, and see you on Friday. Andreas + Laura + Marius
|
Exercise 0Written on 15.10.24 by Laura Plein Dear Students, We have just released the first Assignment. You can find it under the Materials. The Zip file contains the required files for this exercise. The sheet.pdf contains the tasks you should try to solve. Best regards, |
Automated Debugging
The Course. Ask yourself: How many hours have you spent chasing bugs? So, wouldn't it be cool if the computer could debug your program? In this course, we discuss automated debugging and testing techniques, such as
- The Debugging Process
- Observing Executions
- Asserting Expectations
- Correlating Failures
- Simplifying Failures
- Abstracting Failures
- Tracking Origins
- Reproducing Failures
- Repairing Failures (automatically!)
- Learning From Mistakes
Course Material. The course material comes as a collection of Jupyter Notebooks, in which you can study how the individual techniques work – and even do your own experiments and create new combinations. Every week, you will be getting 1–2 new chapters (notebooks) on a new topic, which we will then discuss the next week in the classroom. All chapters are available at
https://www.debuggingbook.org/
The menu in the top left shows the individual chapters; the "Resources" menu allows you to work with the examples or download code or notebooks. Under "Help", you will find tutorials for Python and Jupyter.
Attending. The lectures for this course take place as an on-site lecture, in which our lecturer (Andreas Zeller) will introduce you to the chapters to be read in the upcoming week and answer questions. The book also offers tutorial lectures for each chapter.
Weekly exercises. Every week, you will get an exercise sheet with exercises relating to the current chapter. Your solutions are due after one week and will be graded.
Projects. During the course, you will run two projects in which you will build your own automated debugging tools. Past project topics included:
- An Interactive Debugger for Python
- Automatically Simplifying Python Programs (like CReduce)
- Automatically Repairing Python Programs
- A Tool of your Design
You will implement projects in Python and use Jupyter Notebooks to document design choices and introduce your readers to the included code. We plan to allow the last project to be conducted in groups of two as long as individual contributions are clearly marked.
Exam. There will be an exam at the end of the course:
- 2025-02-13 Günter Hotz Hörsaal 14:00-16:00 – exam
- 2025-04-03 Günter Hotz Hörsaal 14:00-16:00 – re-exam
Grading. Grading will be based on
- points achieved in weekly exercises (25%)
- points achieved in Project 1 (25%)
- points achieved in Project 2 (25%)
- points achieved in the Exam (25%)
To pass, you must achieve 50% of points in each category and 50% of the overall points.
The Prerequisites. We expect programming skills at the level of "Programming 2". Knowledge in Python, program analysis, and instrumentation can be acquired on the go. We use statistics, logic, and machine learning, but nothing too exotic.
Questions and Answers. We will set up a Mattermost channel for questions and answers. You can also ask questions during the lecture and get immediate answers.
Date and Time. Every Tuesday, 14:15–16:00 in CISPA C0, Stuhlsatzenhaus 5, Lecture Hall 0.05. The lecture runs in person. The course starts on Tuesday, October 15. There will be no lectures on December 24, and January 1; the last lecture is on February 4.
Lecture Plan. (Tentative and subject to change.)
2024-10-15 Introduction to the Course • Introduction to Debugging • Tracing Executions
2024-10-25 (Friday 16:15) How Debuggers Work
2024-10-29 no lecture
2024-11-05 Asserting Expectations
2024-11-12 Tracking Failure Origins
2024-11-19 Statistical Debugging (Marius)
2024-11-26 Reducing Failure-Inducing Inputs (Laura)
2024-12-03 Isolating Failure-Inducing Changes
2024-12-10 Mining Function Specifications
2025-12-17 Generalizing Failure Circumstances
2025-01-07 Semantic Debugging
2025-01-14 Debugging Performance Issues
2025-01-21 Repairing Code Automatically
2025-01-28 Debugging in the Large
2025-02-04 Project presentation and Wrap-Up
Every lecture discusses last week's topics and teases the new topics (and chapters) listed above, which you are to study in the following days. On 2024-10-15, for instance, we tease the chapters "Introduction to Debugging" and "Tracing Executions." You are then to study them by the lecture on 2024-10-22, in which we will discuss your thoughts and experiences.
Enjoy! – Andreas + Laura + Marius