Making the connection between the text of a program and what it does is the key to learning to program. A new Python based tool makes this much easier as it actually shows you what the program's inner workings are doing as it runs.
When you first learn to program you have to master the art of seeing what your program does to the contents of the variables you have declared. It gets even more difficult when you are working with references to storage. After a while it becomes second nature and you even manage to forget that it has any difficulty at all - doesn't everyone do this? The simple answer is no and if you want to teach a beginner how to program be prepared to explain the same ideas more than once until they get it.
The Online Python Tutor is a huge help in seeing what a program does. You can type in a Python program straight into a browser and run it at once. As you step though it an illustration shows what is stored in each location and the variables that reference the location. It handles all sorts of difficult cases including recursion. You can single step and if you want an "action movie" approach you can drag a slider as if the program was a video to move through it at speed.
Click to enlarge
As the author, Philip Guo, says:
"Online Python Tutor is a free educational tool that helps students overcome a fundamental barrier to learning programming: understanding what happens as the computer executes each line of a program's source code. Using this tool, a teacher or student can write a Python program directly in the web browser and visualize what the computer is doing step-by-step as it executes the program."
You need to try it to see how good it is.
There are plans to add a complete online authoring environment which would allow you to created animations plus annotations and complete lessons.
Visit the site and try it out.