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.
Type of Material:
Simulation
Recommended Uses:
The tool has several possible uses, including: in-class, homework, individual work and team work.
Technical Requirements:
Web browser with JavaScript enabled
Identify Major Learning Goals:
Python Tutor helps people learning programming by assisting them in understanding what happens as the computer executes each line of a program's source code.
This tool also allows teamwork, or receiving assistance from another person, via shared sessions.
Target Student Population:
The target population consists of people that would like to learn how to program. It is applicable for self-taught students, university students, or even graduates in the process of learning a new programming language.
Prerequisite Knowledge or Skills:
Whilst the tool assists students in learning how to program, the tool itself does not provide an introduction to programming languages: it allows students to execute their code and shows several types of visualizations that assist in understanding how it works. Hence, it requires some initial programming knowledge.
Content Quality
Rating:
Strengths:
Support for several of the most relevant programming languages.
Good set of features, including the ability to jump to any point of execution.
Allows individual use, but also a shared-session mode where users can collaborate or request help from someone.
The visualizations the tool shows are clear and helpful for learners to understand, for example, data structures and recursion.
No account is required, so it is possible just to access the website and start using it.
Concerns:
The tool is very good for short programs, but is likely harder to use for longer ones.
The libraries that are available are the most common ones, hence the tool is only suitable for cases in which this is sufficient (which is understandable).
Lack of explanation during program execution
Only support Python at the time of review (shown error with small C or JAVA programs)
Potential Effectiveness as a Teaching Tool
Rating:
Strengths:
The tool has a good potential for inclusion in lab sessions, as described by the author in several sources.
Given that it allows sharing sessions, it makes it possible for tutors to assist students in real time.
Students can run their code any number of times, which is highly beneficial as they are learning a new programming language.
The tool can also be used in the context of lectures, for example for a lecturer to show the visualizations of data structures to students.
It is able to visualize logic flow and change of variable contents dynamically
It is able to trace program in both forward and backward directions
It is useful for locating program bugs
Concerns:
- lack of description of related concepts during program execution
- not able to re-input values during backward tracing
Ease of Use for Both Students and Faculty
Rating:
Strengths:
No account setup is required, which removes a significant barrier for adoption.
The website is simple to use, with most features being appropriately named.
Whilst the website is not intended to teach a programming language from scratch, there are several resources that are suggested, including examples.
The shared session mechanism is straightforward to use and has significant potential.
It is cross-platform and no additional software (such as compiler) requirement
Concerns:
- Do not expect it as a full-function debugger, i.e., do not support breakpoints and step in/over functions
- When visualizing program executions that rely on a big stack, for example when using recursion, there could be a way to avoid vertical scroll.
Other Issues and Comments:
To summarise, this material was built with significant dedication from its developers, and supports several of the most relevant programming languages. It is suitable for individual use or team work, and it is simple to use. It is clearly possible to use in a teaching context.
Creative Commons:
Search by ISBN?
It looks like you have entered an ISBN number. Would you like to search using what you have
entered as an ISBN number?
Searching for Members?
You entered an email address. Would you like to search for members? Click Yes to continue. If no, materials will be displayed first. You can refine your search with the options on the left of the results page.
Searching for Members?
You entered an email address. Would you like to search for members? Click Yes to continue. If no, materials will be displayed first. You can refine your search with the options on the left of the results page.