Automated Debugging Andreas Zeller + Marius Smytzek + Paul Zhu

News

28.11.2022

Exercise 03

Dear Students,

We have published Exercise 02. You can find it under Information > Material. Please read the chapter on Asserting Expectations for this exercise.

The Zip file contains the required files for this exercise. The sheet.pdf includes the tasks you... Read more

Dear Students,

We have published Exercise 02. You can find it under Information > Material. Please read the chapter on Asserting Expectations for this exercise.

The Zip file contains the required files for this exercise. The sheet.pdf includes the tasks you should try to solve.

We ask you to submit your solutions via the CMS on your Personal Status page. You have time until 07. December 2022 23:59 to upload your solutions as a Zip file. Note that we cannot evaluate delayed submissions.

28.11.2022

Exercise 01 Solution

Dear Students,

We have uploaded a sample solution for Exercise 01, you can find it in the category Solutions under Information > Material. You can find your points for this exercise on your Personal Status page.

17.11.2022

Exercise 02

Dear Students,

We have published Exercise 02. You can find it under Information > Material. Please read the chapter on How Debuggers Work for this exercise.

The Zip file contains the required files for this exercise. The sheet.pdf includes the tasks you should... Read more

Dear Students,

We have published Exercise 02. You can find it under Information > Material. Please read the chapter on How Debuggers Work for this exercise.

The Zip file contains the required files for this exercise. The sheet.pdf includes the tasks you should try to solve.

We ask you to submit your solutions via the CMS on your Personal Status page. You have time until 30. November 2022 23:59 to upload your solutions as a Zip file. Note that we cannot evaluate delayed submissions.

09.11.2022

LSF Registration

The LSF registration is now open until the 30th of November. Please make sure you register within time.

If you encounter problems during the registration, don't hesitate to contact Marius Smytzek or Paul Zhu.

Best,
Andreas + Paul + Marius

08.11.2022

Exercise 01

Dear Students,

We have published Exercise 01. You can find it under Information > Material. Please read the chapter on Tracing Executions for this exercise.

The Zip file contains the required files for this exercise. The sheet.pdf includes the... Read more

Dear Students,

We have published Exercise 01. You can find it under Information > Material. Please read the chapter on Tracing Executions for this exercise.

The Zip file contains the required files for this exercise. The sheet.pdf includes the tasks you should try to solve.

We ask you to submit your solutions via the CMS on your Personal Status page. You have time until 20. November 2022 23:59 to upload your solutions as a Zip file. Note that we cannot evaluate delayed submissions.

30.10.2022

Mattermost

Dear Students,

We have set up a Mattermost channel to discuss and ask questions with rapid responses. Please join this channel under Information > Mattermost.

Best,
Andreas + Paul + Marius

30.10.2022

Exercise 00

Dear Students,

We have published Exercise 00. You can find it under Information > Materials. This exercise introduces the stack we use during the course.

The Zip file contains the required files for this exercise. The sheet.pdf contains the tasks you... Read more

Dear Students,

We have published Exercise 00. You can find it under Information > Materials. This exercise introduces the stack we use during the course.

The Zip file contains the required files for this exercise. The sheet.pdf contains the tasks you should try to solve.

Show all
 

Automated Debugging

The Course. 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

  • 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 (as they are being written); 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 a hybrid lecture and Zoom webinar, in which our lecturer (Andreas Zeller) will introduce you to the chapters to be read in the upcoming week and answer questions live and as posed in the chat. The hybrid lecture runs every Tuesday from 16:15–17:45 in person and on Zoom. Note that the lectures are not recorded, so attendance is useful. To study offline, the book 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:

  1. An Interactive Debugger for Python
  2. Automatically Simplifying Python Programs (like CReduce)
  3. Automatically Repairing Python Programs
  4. 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.

Grading. Grading will be based on

  • points achieved in weekly exercises (33%)
  • points achieved in Project one (33%)
  • points achieved in Project two (33%)

 In order to pass, you need to achieve 50% of points in each category as well as overall.

The Prerequisites. We expect programming skills at the level of "Programming 2". Python knowledge and knowledge of program analysis and instrumentation can be acquired on the go. We use some statistics, logic, and machine learning, but nothing too exotic.

Questions and Answers. We will set up a Mattermost channel for questions and answers. Or ask questions during the lecture and get immediate answers.

Date and Time. Every Tuesday, 16:15–17:45 in CISPA C0 (Stuhlsatzenhausweg), Lecture Hall 0.05, or via Zoom (see "Information → Zoom" in the menu above for the link). In case the seats in 0.05 run out, we have an overflow space with live video transmission in seminar room 0.07 nearby.

The course starts on Tuesday, October 25. There will be no lectures on November 1, December 20, 27, and January 3; the last lecture takes place on February 7.

Enjoy! – Andreas + Marius + Paul



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