Prof. Stasko Algorithms are complex, and many students find that an algorithms or data structures course is one of the most challenging in the Computer Science curriculum. The complexity of algorithms has led researchers and instructors to seek ways of presenting algorithms visually. One reason they are complex is because even basic algorithms are often based on non-intuitive strategies.
Algorithms are also dynamic, changing state while carrying out operations.
Traditionally, instructors have taught algorithms using a combination of verbal and textual descriptions, pseudocode, and examples. The goal is to show how and why the algorithm works, relate it to a strategy, prove its correctness and analyze its efficiency. If the algorithm works on a diagrammatic data structure such as a tree, the data representation is usually a diagram. The diagram is sometimes shown in conjunction with the representation of the data structure, e.g. an array, and other pertinent state variables. The advantage of doing examples this way is that students can usually see what the instructor is doing, i.e. what about the state is being changed, because one can follow the instructors physical movements.