## 3 Interacting with Visualizations and Animations of Recursion  
Effective algorithm analysis demands more than static visualizations, but advanced interaction to give the user the capability to enquire flexibly. As there are many ways of interacting with visualizations, we need a framework to analyze interaction support. Consequently, we adopt a comprehensive framework [16] from information visualization, a very demanding field in this regard. The authors classify different kinds of interaction into seven categories, namely encode, connect, filter, abstract/elaborate, explore, reconfigure, and select.  
\begin{table}
\begin{tabular}{l l l} \hline \hline \multicolumn{1}{c}{**System**} & \multicolumn{1}{c}{**Visualizations**} & \multicolumn{1}{c}{**Animation controls**} \\ \hline \multirow{3}{*}{EROSI} & \multirow{3}{*}{Copies model (variables)} & Step forwards \\  & & Automatic play \\  & & Exit \\ \hline \multirow{3}{*}{ETV} & \multirow{3}{*}{Copies model (code)} & Step/complete \\  & & Copies model (code) & Forwards/backwards \\ \cline{1-1}  & Traces & Manual \\ \cline{1-1}  & Recursion tree & Restart/finish \\ \cline{1-1}  & & Exit \\ \hline \multirow{3}{*}{Flopex 2} & \multirow{3}{*}{Control stack} & Step forwards \\  & & Automatic play \\ \cline{1-1}  & Recursion tree & Restart \\ \hline \multirow{3}{*}{Function Visualizer} & \multirow{3}{*}{Copies model (code and variables)} & Step forwards \\  & & Automatic play \\ \cline{1-1}  & & Exit \\ \hline \multirow{3}{*}{Recursion Animator} & \multirow{3}{*}{Copies model (variables)} & Step by step \\  & & Forwards/backwards \\ \cline{1-1}  & & Manual/automatic \\ \cline{1-1}  & & Exit \\ \hline \multirow{3}{*}{SimRECUR} & \multirow{3}{*}{Copies model (code)} & Step forwards \\ \cline{1-1}  & Control stack & Manual/automatic \\ \cline{1-1}  & Recursion tree & Exit \\ \hline \multirow{3}{*}{SRec} & Traces & Step/step over/complete \\ \cline{1-1}  & Control stack & Forwards/backwards \\ \cline{1-1}  & Recursion tree (general and divide-and-conquer) & Manual/automatic \\ \cline{1-1}  & Colored data structure & Restart/finish \\ \cline{1-1}  & Sequence of visualizations of the data structure & Exit \\ \hline \hline \end{tabular}
\end{table}
Table 1: Comparison of visualization and animation features in several animation systems of recursion.  
However, we must bring attention to an important issue. Program visualization can be considered a subfield of information visualization, but it also has some specific features. In particular, programs may be visualized statically \"in space\" (_i.e.,_ their declaration or their state), but also dynamically \"in time\" (_i.e.,_ evolution of its state during execution). This feature is called program animation, and the most common interaction techniques are animation controls. As we are dealing with program visualizations, we take this duality space-time into account.  
In the following, we show how the categories can be effectively used to interact with recursion. Each category is first introduced by quoting a sentence from [16] that summarizes its meaning. Then, we present techniques of that category that allow interacting with recursion visualizations, both static and dynamic.