Algorithm visualization aims to facilitate the understanding of algorithms by using graphics and animation to reify the execution of an algorithm on selected input data. However, many current visualization techniques suffer from a variety of problems, such as lack of focus, presentation at a single level of abstraction, and concentration on low-level steps rather than on high-level properties such as invariants.
In this paper, we present a new approach to learning algorithms that aims to overcome these drawbacks. An algorithm is explained at various levels of abstraction. Each level is designed to present a single operation used in the algorithm. Operations are shown in a textual form of a pseudocode, but there is also an associated visualization.