Keywords: program animation; program visualization; information visualization; recursion; human-computer interaction

Introduction Recursion is a fundamental concept in Computer Science education, especially in programming courses. Its role varies from course to course. It is one of the concepts learnt in introductory courses to programming, but it is a programming construct applied in algorithm courses. For example, dynamic programming algorithms are usually stated recursively in a rst phase and transformed into a tabulated, iterative version in a second phase. As a consequence, an animation system of recursion may be a valuable tool for any course where recursion plays an important role, in particular in algorithm courses.