SRec is aimed at the comprehension and analysis levels of Bloom’s taxonomy. In particular, it may assist at the following tasks:
- Understanding the behaviour of recursive algorithms. It may especially assist in understanding multiple, mutual, or nested recursion. Using its comprehensive and flexible animation bar, it allows unfolding completely a recursive process or showing it in a more compact way (e.g. mirroring the inductive definition).
- Analyzing the efficiency of recursive algorithms. In particular, recursion trees are more adequate to illustrate time efficiency, and the control stack is more adequate to space efficiency.
- Analyzing redundancy in multiple recursive algorithms. The resulting redundancy is the basis to design more efficient tabulated or memo algorithms.
At least, it can be used in the following courses:
- Programming courses. Traces, the control stack and recursion trees are graphical representations that facilitate the understanding of recursion. SRec has one limitation: it does not allow watching the value of local variables.
- Algorithm courses. Recursion trees provide a good representation for many algorithms, in particular divide-and-conquer algorithms, the recursive version of dynamic programming algorithms, or backtracking algorithms.
SRec can be used in several ways. We highlight the following ones:
- Demonstrations at the classroom. The instructor may load built-in animations or even generate them on-the-fly. The latter form of animation is more flexible, as allows the instructor to use different input data to illustrate the same algorithm. In both cases, not only may the instructor run flexibly the animation but she can also interact in several ways to change or customize the visualizations displayed.
- Self-study. The student may use SRec to examine the behaviour of different algorithms, developed either by the instructor or by herself.
- Documentation. SRec allows exporting either an individual visualizations or a set of visualizations in different standard file formats that can later be imported in documents, e.g. text notes or lab reports.
SRec has some mundane but useful educational facilities:
- Internationalization. It supports multiple natural languages (currently English and Spanish).
- Exportation. Visualizations generated by SRec can be exported in a number of ways (e.g. single visualization, animation, etc.) into graphic files.