Python Tutor -- http://pythontutor.com/ -- helps people 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, you can write Python, Java, JavaScript, TypeScript, Ruby, C, and C++ programs in your Web browser and visualize what the computer is doing step-by-step as it executes those programs.
This tool was created by Philip Guo in January 2010. See project history.
The latest development version of the code is in v5-unity,
although lots of legacy documentation still resides in v3.
Quick Start
BY FAR the most preferred way to use Python Tutor is via the official website, since it contains the latest updates: http://pythontutor.com/
You can use iframe embedding to easily embed visualizations on your webpage.
If you want to run locally on your own computer, to run Python visualizations try:
pip install bottle # make sure the bottle webserver (http://bottlepy.org/) is installed
cd OnlinePythonTutor/v5-unity/
python bottle_server.py
... and the live programming environment at: http://localhost:8003/live.html
However, it can be hard to run your own visualizer locally for
non-Python languages, since there are complex dependencies in v4-cokapi/ that
I haven't yet cleanly packaged up. By default, the local version you run will
call my own server to run the non-Python backends, so please be mindful of
your bandwidth usage.
Note: I can't provide technical support for users who want to install Python Tutor on their own computers/servers (read details here).
For further directions, see Overview for Developers or explore the rest of the docs.
Acknowledgments
For code or security contributions:
Irene Chen - experimental holistic visualization mode - v3/js/holistic.js
John DeNero - helping with the official Python 3 port, bug fixes galore
Mark Liffiton - localStorage bug fix
Chris Meyers - custom visualizations such as v3/matrix.py and v3/htmlFrame.py
Brad Miller - adding pop-up question dialogs to visualizations, other bug fixes
David Pritchard and Will Gwozdz - Java visualizer and other frontend enhancements
Peter Robinson - v3/make_visualizations.py
Peter Wentworth and his students - working on the original Python 3 fork circa 2010-2011
Security tips and vulnerability reports: Aaron E. (https://arinerron.com), Chris Horne (https://github.com/lahwran), Joshua Landau (joshua@landau.ws), David Wyde (https://davidwyde.com/)
For user testing and feedback from instructors' perspectives:
Ned Batchelder
Jennifer Campbell
John Dalbey
John DeNero
Fredo Durand
Michael Ernst
David Evans
Paul Gries
Mark Guzdial
Adam Hartz
Sean Lip
Fernando Perez
Tomas Lozano-Perez
Bertram Ludaescher
Brad Miller
Rob Miller
Peter Norvig
Andrew Petersen
David Pritchard
Suzanne Rivoire
Guido van Rossum
Peter Wentworth
David Wilkins
... and many, many more!