VISUALIZE Python, Java, JavaScript, TypeScript, Ruby, C, and C++

Python Tutor, created by Philip Guo, helps people overcome a fundamental barrier to learning programming: understanding what happens as the computer runs each line of source code.

Using this tool, you can write Python, Java, JavaScript, TypeScript, Ruby, C, and C++ code in your web browser and visualize what the computer is doing step-by-step as it runs your code.

Over 3.5 million people in over 180 countries have used Python Tutor to visualize over 30 million pieces of code, often as a supplement to textbooks, lectures, and online tutorials.

Here is a visualization showing a Python program that recursively finds the sum of a linked list:

Read the research paper – Philip J. Guo. Online Python Tutor: Embeddable Web-Based Program Visualization for CS Education. SIGCSE 2013. [BibTeX]

COLLABORATE to learn together

Click the “Start shared session” button to allow an instructor or friend to join your visualization session. You can chat about your code and navigate the visualizations together to receive live real-time tutoring. Watch this one-minute video demo:

Also, you can click the “Generate permanent link” button (at the bottom of this page) and paste that link in an email, social networking post, or forum question. When recipients click on your link, they will see the exact visualization you've created. For example, clicking this link brings you directly to step 44 of 57 in a program that finds prime numbers using the for-else construct.

Read the paper – Philip J. Guo, Jeffery White, Renan Zanelatto. Codechella: Multi-User Program Visualizations for Real-Time Tutoring and Collaborative Learning. VL/HCC 2015. [BibTeX]

EMBED in any webpage

Using a single line of JavaScript code, you can embed a Python Tutor visualization within any webpage. The screenshot below shows a visualization embedded within the online textbook for the introductory CS course at UC Berkeley (CS61A):