Yet Another Way to Explain Algorithms

T. Müldner, E. Shakshuki, and J. Merrill (Canada)


Algorithm explanation, visualization.


The growth of online computer-based tutoring systems requires a new design paradigm for effective training and learning. This paper presents a novel approach to explaining algorithms using multi-level abstractions. Each abstraction explains a single operation or a single Abstract Data Type, ADT. Abstractions explaining operations provide the textual and graphical representation of this operation, using operations from the ADT that is explained at lower level of abstraction. Abstractions explaining ADTs describe data and operations from these ADTs, and they come in two forms: pure and concrete. Concrete ADT abstractions provide implementations of pure ADT abstractions. This way the learner can focus on understanding of just one operation or one ADT at a time. Dealing with operations, the learner can understand essential properties of the operation in question, such as its invariants. Some operations do not need to be explained; they are primitives and are each mapped to an abstract implementation. The latter implementation can be used to represent primitive operations in various procedural and object oriented programming languages. The application of our approach is demonstrated on two algorithms: the insertion sort and the Kruskal algorithm to find the minimum-cost spanning tree.

Important Links:

Go Back