Slide 2
This is the first method for understanding a program: scatter print statements in it and watch their output as the program runs. Unfortunately, these must be inserted by hand by the programmer, are often not very descriptive, do not provide a way to get more detail (short of editing the descriptions and rerunning the program), and require the programmer to do a lot of reasoning to figure out what the program is doing in between the print statements.