Visualizations need to be developed for real needs, real users, and real tasks, and not just because the technology to implement them is there.
Five steps (which will often overlap) to designing algorithm visualizations are: analysis of requirements, system design, implementation, testing, and maintenance. The first step is the most important, yet often the most skipped.
Users’ analysis: knowing who your users are (out of students, educators, researchers, or developers or a combination, novice or expert) determine content, organization, breadth, depth and information presentation. The more inexperienced the user, the more graphical means of visualization control (menus, buttons, etc.), built-in visualizations, help files, and short quizzes will be necessary, whereas an expert might possibly require movement between algorithm- and program-level displays or other methods to play with the code.
Needs analysis: Locus of control, motivation, and learners’ expectation all play significant roles in learning. “Hands on” vs. being led through, active interaction, and the necessity of information to be presented with the visualization system are all things to consider.
Task Analysis: It is important to note the system’s intended goals and select content accordingly. Every situation demands a different kind of visualization system.
Information analysis: Viewers should be able to forget about the presentation and concentrate instead on the topic being taught. There are always several choices of graphic representation. In direct representation, data structures are directly mapped to a picture. In structural representation, some details are hidden with the rest directly represented. Use of shape, size, color (max 4 for novice users), texture, arrangement, sound (for indicating trends and increasing the number of dimensions presentable), and 3D all should be considered.
Scope analysis: Scope ranges from single-algorithm to specialized systems in certain fields of computer science, to general purpose which (ideally) can animate any algorithm. Recommendations for designers are designing small first (give the user visually attractive, high quality info) and planning a phased growth (use OO design and document the programs to allow for new features).
Resource analysis: Designing visualizations is not simple. They place great demands on computer resources, and if over the Internet will need lots of storage space and a high-speed connection.
Link to PDF