This legacy web site is no longer updated but will remain online for the foreseeable future. UUhistle is not being actively supported or developed. Successor systems include Jsvee and Kelmu.

UUhistle FAQ

Features and Technology

Which Python features do you support?
UUhistle v0.6 visualizes arithmetics, boolean logic, assignment, basic I/O, functions (incl. recursion), basic data structures (tuples, lists, dicts), references, selection, loops, exception handling, and object-oriented fundamentals (classes, objects, methods). There is limited support for the standard Python libraries.
Okay, so what do you not support?
Version 0.6 does not support inheritance, lambda expressions, generators, and list comprehensions, among a few other things. There are also some mostly minor restrictions in the use of the supported features. See the list of supported and unsupported Python features for more details.
Which languages do you support?
English and Finnish. There is a partial Swedish translation, but it needs some work.
What about other programming languages? I use Java.
We do have an unofficial, unpublished version of UUhistle that visualizes a sizable subset of Java. However, the Java UUhistle is quite limited: it only supports step-by-step viewing of preconfigured example programs (the student can't use it to run their own programs; user-controlled visual program simulation is also not supported). If you are interested, ask us for more info. You may also want to take a look at Jeliot.
What does it run on?
UUhistle is written in Java. It uses Jython for parsing and executing Python code.
Will it visualize this big program that I made? Nicely?
Depends on what you call big and nice, but probably not. UUhistle is meant for visualizing small programs in the context of introductory programming education. As the amount of data to be shown grows larger, the visualization gets increasingly cluttered.

Using UUhistle as a Teacher

So I'm a teacher and I'd like to configure some program examples or program simulation exercises for my students. How do I do that?
The best way is to create a course config file that contains the Python code examples. In the config file you may also determine for each example program what your students need to do: just view the execution, simulate it themselves or answer popup questions. Students can then use UUhistle as a client to load the exercises from whichever URL you place the config file in.

Creating a config file is not too hard although we haven't had the time to make it particularly user-friendly. Please see the documentation or contact us and we'll help you get started.

I got the idea that UUhistle can automatically give grades and send them to courseware?
Yes, grading policies can be set in a course config file, and UUhistle can be configured to HTTP POST students' grades.
Can I log students' actions during visual program simulation assignments?
Yes, POSTed answers include a log of what the student did and how long it took.
How do I put a UUhistle applet on a web page?
See the applet documentation.

Learner Perspective

Has anyone actually tried it?
Three teachers and thousands of programming students in several course offerings have used UUhistle at our university. The tool has also been adopted in a few other educational institutional around the world.
What will my students think of it? Will it help them?
You know your students best, and your guess is better than ours. We'll take a guess anyway. Many will find UUhistle very useful and exciting, and will feel that it greatly clarifies programming concepts. Some will dislike it, too. The latter group is likely to include students who find the level of detail in UUhistle excessive and others who fail to perceive what the visualization is supposed to represent and how it is relevant to learning programming.

How much your students will get out of UUhistle will depend greatly on what they perceive it to be. This is where good teaching can play a crucial role.

We are studying the effects of UUhistle and visual program simulation exercises on learning. The results are promising. Scientific publications on UUhistle will be added to the publications page as they appear.

Legal Stuff

Can I use it for free?
Yes, you can use the unmodified distribution from this web site for free, for non-commercial purposes. We'd love to get feedback in return, though.
Can I sue you if something goes wrong?

This software comes with no warranty of any kind. You can use the unmodified software free of charge, at your own risk, for non-commercial purposes.

Known Issues

After using UUhistle for a while and switching between example programs a number of times, I get an "out of heap space" error and/or UUhistle stops working properly until I completely restart it. What's up with that?
This has been known to occur with some old, buggy versions of the Java 6 runtime. Please update to the very newest available version of Java. If this does not fix the problem, let us know.

Unknown Issues

I found a bug.
Please report it to us. The best way is to use the Feedback menu within UUhistle to send a bug report.


It's called "whistle" because we like how it sounds.
It has a double-U because we like how it looks.
You mean it's not an acronym for something?
Undoubtedly Useful, Highly Interactive Simulation-based Teaching and Learning Environment?
UUhen Humans Interactively Simulate They Learn about Execution?
User after User Has Indeed Survived This Learning Experience?
UUhere High-level Iterative Statements Turn into Lengthy Executions?
UUuuuu-based Highly Interactive Simulator: Take a Look and Engage!?

Got another one?

One thing is for sure. UUhistle + while: you work!