This poster introduces a new open-source tool for visualizing recursive algorithms. Many students struggle with understanding recursive algorithms and the way in which return values propagate from the base call back up to the original call. Teachers often show visualizations to help students improve their understanding, drawing a tower of calls for linear recursive algorithms or a much more complex tree of calls for tree recursive algorithms. We have created a web-based tool for automating the drawing of these call graphs for any recursive Python function, based solely on the function definition and function call. The call graphs show the arguments and return values for each recursive call, and can be stepped through interactively to show the order of calls from start to end. The graphs can also be embedded in web pages, since they’re built with accessible web technologies. We have used this tool to help students understand recursion in university CS1 classes, and would like to keep improving it to be a useful tool for CS classes globally.
Ida Ngambeki Purdue University, Matt Bishop The University of California, Davis, Jun Dai California State University, Sacramento, Phil Nico California Polytechnic State University