- AV Catalog
- Field Reports
- For Developers
- OpenDSA Project
- Getting Started
- Newsletter #1
- Delivery Method(s)
- Java Applet, Java Application, Java Web Start, Multi-Platform Application, Python Application
- Project Relationship
- Stand-alone AV
- English, Finnish
- Juha Sorva, Teemu Sirkiä
- Aalto University School of Science and Technology
- Activity Level(s)
- Animation, Exploration, Predictions, Questions, Step control, User data
- Source Code License
- First Published
- Last Modified
UUhistle is a tool for learning whose purpose is to help novice programmers become better programmers. It allows students to visually and interactively explore the execution-time behavior of computer programs. Visualizing a program’s execution can aid understanding, but research suggests that visualizations are more effective when learners are actively engaged in manipulating or creating them. To this end, UUhistle supports also a novel kind of highly interactive visualization-based activity, the visual program simulation exercise (or VPS exercise for short).
UUhistle shows changes in program state as smooth animations accompanied by textual explanations. The user can control the pace of execution, and step back and forth within the execution sequence. UUhistle highlights many aspects of program execution that are otherwise hidden and often challenging to the novice: expression evaluation, parameter passing, return values, reference assignment, object initialization, etc. It also visualizes as abstract graphics the relevant contents of computer memory such as variables, the call stack and the heap.
Programming students can use UUhistle to explore teacher-given example programs or they can use it as a graphical, very detailed sort of debugger on programs that they wrote themselves. Using UUhistle can help students develop their code-reading and tracing skills and improve their understandings of programming concepts and programming-language constructs. It may also serve as a stepping stone towards efﬁciently using regular debuggers. Ultimately (albeit indirectly), UUhistle aims to improve students’ skill at writing programs.
In a VPS exercise, the student has to ‘do the computer’s job’: read given code and execute its statements in the appropriate order, allocating and using memory to keep track of program state. UUhistle provides the graphical elements that the student directly manipulates to indicate what happens during execution, and where, and when. Any aspect of execution that UUhistle can display can also serve as part of a VPS exercise: the student can create variables and objects in memory, evaluate expressions, assign values, manipulate the call stack, pass parameters and so forth. For instance, to assign a variable’s value to another variable, the student drags the corresponding graphical element with the mouse from the source variable into the target variable.
Apart from visual program simulation, UUhistle allows teachers to create other kinds of assignments by embedding various sorts of popup dialogs into the execution sequences of example programs. These dialogs can, for instance, ask multiple-choice questions at preset points during a program run. Last and possibly not least, teachers may ﬁnd UUhistle useful as a presentation tool in class when illustrating the behavior of example programs.
UUhistle is easy to use because it caters to beginners. The library of example programs is extensive. Examples include basic programming skills like assigning a number to a variable to more advanced skills such as for loops, functions, and lists. As the user runs through the example program, a visualization for each step is shown. The info window on the bottom left hand corner explains the steps. When clicked, it will display a more extensive explanation. UUhistle also allows users to see the progress of their own code run through the program step-by-step. The drag and drop visualizations shown after the code is compiled lets the user easily follow each step. Different aspects of execution are highlighted in sectioned regions. When there are interactions among these regions there is a clear, visual transition between them. Users are able to revert back to each stage of the process, which allows users to learn at their own pace. Novice programmers should be able to learn various aspects of programming and the interaction that each line of code has with the entire program. Better understanding the mechanics behind coding lets novice programmers grow more in their programming skills. Professors and teachers can use these visualizations to walk through various programs with their students and give a visual aide for them to better understand the programming process. They are also able to give example codes for students to follow on their own. If students have trouble understanding a program or determining what is wrong with a program, they would be able to run it through UUhistle as a debugging tool. The step-by-step process allows them to see exactly what goes on in the code and ﬁnd the misunderstanding. Overall the program is effective in teaching programming by giving a visual representation of the coding process.
Uuhistle has been used at Aalto University in courses such as "Basic Programming in Python", "Basic Programming in Java", and "Data Structures and Algorithms".
Understanding the syntax of the code may take some time before users can take advantage of the visual capabilities the program offers. Those with some background on programming will be able to use the program more effectively and get a ﬁrmer grasp on understanding the syntax. Instructors can provide example codes for students to help speed the learning process.
- Usage Notes
In the program, go to Program>Open Example Program to open sample programs ranging from a “watch and learn” program where the program has explanations for each step and a “do and learn” program where the user executes the program in a step by step fashion with hints if needed.
- Field Report(s)
- UUhistle: a software tool for visual program simulation
- AV of the Day