There is an implementation with most of what we want in the Swan distribution.
Must be able to read an input text to be coded (perhaps from a file), generate frequency tables, generate individual tree nodes, step through generating the tree, and show the final output tree. Then, the user should be able to encode and decode strings.
The visualization ought to have well-defined phases, such like:
This way, the user doesn't get lost -- all he does is answer the applet's questions and click NEXT each time. Irrelevant UI elements can disappear after they are no longer needed.
Nice additional feature: ability to ask the student which nodes should be added together next. List of subtrees should still keep itself sorted automatically.