Interacting with Java-Based Algorithm Visualizations

(Half-day tutorial)

Sami Khuri
Department of Mathematics and Computer Science
San José State University
One Washington Square
San José, CA 95192-0103
khuri@mathcs.sjsu.edu

Thomas Naps
Department of Computer Science
Lawrence University
Appleton, WI 54911
thomas.naps@lawrence.edu

Outline of tutorial activities:

  1. Overview of existing AV Tools
    1. Algorithm-specific tools

    2. 1. Operating systems
      2. Text and image compression
    3. Generalized systems - JHAVÉ (Java-hosted Algorithm Visualization Environment)
      1. Discrete snapshots (using Naps' GAIGS system)
      2. Smooth animations (using Stasko's Samba system)
    4. Others
  2. Pedagogical issues in designing an algorithm visualization
    1. What type of understanding is the visualization intended to help the student achieve?
      1. Understanding the algorithm as a "recipe"
      2. Understanding why the recipe solves the problem
      3. Formally proving the algorithm is correct
      4. Performing an efficiency analysis of the algorithm
      5. Coding the algorithm in a programming language
    2. Identifying interesting events
    3. Presenting different views of these events
    4. Discrete snapshots vs. smooth animation
    5. Pedagogical vs. technical considerations
    6. Build your own or use what's already available?
  3. Guidelines for graphical design of algorithm animations
    1. Be consistent
    2. Keep controls simple
    3. Use multiple views
    4. Provide useful default visualizations
    5. Draw student's attention to important areas of algorithm visualization
    6. Provide error checking of the input data
    7. Accompany animations with hypertext help material
    8. Allow for extensibility and reusability
  4. Methods for actively engaging students in the visualization
    1. GUI
    2. Use in closed lab vs. open lab
    3. Having students design input data for the visualization
    4. Building quiz questions into the visualization, forcing the student to predict the actions of the algorithm before viewing it
    5. Having students do programming or non-programming problem sets as spin-offs of the visualization
    6. Having students code the algorithm after interacting with its visualization
    7. Having students create their own visualizations

These topics will be covered using Java-based algorithm visualization systems that have been developed by the tutorial instructors. Sami Khuri has developed a number of interactive algorithm-specific applications in Java. MLFQ and Page are used in teaching Multilevel Feedback Queue Scheduling Algorithms and Page Replacement Algorithms in Operating Systems courses. LZ, AHuffman, RLE, Quadtree, and JPEG are visualization packages developed to assist students in learning text and image compression algorithms. Tom Naps has developed JHAVÉ (Java-hosted Algorithm Visualization Environment), a client-server environment for delivering algorithm visualizations over the Web. JHAVÉ allows a variety of algorithm visualization engines to plug into its Web delivery features. These features include context-sensitive documentation, input generators, and stop-and-think questions. All of these features are designed to "force" the student to interact with the visualization.

References

[Glo98] Gloor, P., User Interface Issues for Algorithm Animation, in Software Visualization: Programming as a Multimedia Experience, The MIT Press, 1998, pp. 145-152.

[SL99] Stasko, J., and Lawrence, A., Empirically Assessing Algorithm Animations as Learning Aids, in Software Visualization: Programming as a Multimedia Experience, The MIT Press, 1998, pp. 419-438.

[SSN99] Stern, L., Sandergaard, H., and Naish, L., "A Strategy for Managing Content Complexity in Algorithm Animation", Proceedings of ITiCSE'99, pp. 127-130, 1999.

Back to Sami Khuri's workshops


Last updated on February 26, 2000