When developing computer programs, debugging takes up an immense amount of space. Programmers often spend more than half of their time just tracking down bugs and fixing them, explains CISPA faculty member and university professor Dr. Andreas Zeller. To make their work easier, scientists are researching tools that can automate error search and bug-fixing. How these tools and techniques of automatic debugging work and how they can be used effectively in complex programs often remains opaque for developers. With the "Debugging Book," Andreas Zeller wants to bring light into the darkness and gives fresh teaching impulses.
Andreas Zeller is a doer. One who works fast and hard - and with pleasure. That is why the 55-year-old is so annoyed by the amount of time wasted on software development. "Let us assume that a scientific paper on a new debugging tool is published today. Then it often takes another six months until it is published and its source code disclosed. Researchers then have to spend weeks and months picking apart the vast amount of code to understand how the tool works. For a good scientific process, the code would have to be disclosed from the start, and it would have to be explained step by step how the tool works," says Zeller.
That is what he did in his online book for various debugging tools and techniques. "I sat down and looked at one at a time, took them, and rebuilt them in a way that was easy to read and use. That way, one can see how the individual pieces work together, and programmers learn to understand how the tools work and can then build their own," Zeller explains. He has illustrated the individual chapters with pieces of program code that can be executed live and incorporated into other programs. This way, readers can experiment with the tools on a small scale before moving on to the big picture. "Until now, PhD students have often spent years working on a tool and trying to get it to work for very complex systems. There are several dead ends in the process, and they are often forced to turn everything around again. That development side can be reduced many times over."
The "Debugging Book," with its explanations, videos, slides, and code, has been created over the past few months and is available for free on the Web. Zeller uses it in his courses at Saarland University. "I have completely redesigned my lectures. Now, my students get the book and work on small projects. Thus, they get results very quickly with it, and there is time for other things. The feedback has been very positive." In addition, the program could be used to complete large assignments. Some of his doctoral students used the descriptions of the algorithms to create new debugging tools themselves. The debugging book remains a work in progress. "It can be expanded all the time. For example, many people send me descriptions of their own algorithms," Zeller says, adding, "It would be nice if such a way of working became established in software development in general."
translated by Tobias Ebelshäuser