Traceable Recursion with Graphical Illustration for Novice Programmers

Leonardo Sa, Wen‐Jung Hsin · InSight A Journal of Scholarly Teaching · 2010

Recursion is a concept that can be used to describe the phenomena and natural occurrences in many different fields.As many applications utilize computer software to model recursion, recursion is a particularly important concept in the computing discipline.However, it is a difficult concept for many undergraduate students to master.A Recursion Graph (RGraph) is one visualization method for representing recursion.This paper extends our previous work on RGraphs to include a tool for automatically generating complete and partial RGraphs from an arbitrary recursive program.Use of this tool allows for more flexibility in demonstrations and more focused pedagogical interactions on the part of students, thereby improving student learning in recursion.In mathematics, recursion is a method of defining a mathematical function based on previously defined terms of the same function.It is an important concept in Computer Science as well as many other disciplines.McCracken (1987) stated that "Recursion is fundamental in Computer Science, whether understood as a mathematical concept, a programming technique, a way of expressing an algorithm, or a problem-solving approach."In computing, it appears frequently in the study of algorithms, data structures, and artificial intelligence.In other fields of study, recursion appears as population and predator/prey models in biology, formal structures in linguistics, filters in signal processing, and genomic sequencing in bioinformatics.Fractals are self-similar, recursive patterns found in nature and simulated through mathematics with applications in art, design, and engineering.Although recursion is an important concept, teaching recursion to introductory Computer Science students is a challenging task (AP Central.)This has been documented in several studies.For example, AP Central states that "It is not uncommon for novice programmers to have difficulty understanding recursion, " andDann, Cooper, and Pausch (2000) argued, andGal-Ezer andHarel (1998) agreed, that "Some Computer Science educators have described the process of teaching recursion as one of the universally most difficult concepts to teach."Teaching recursion is a challenge largely because students have a difficult time envisioning the abstract concept.A variety of approaches and studies has been tried to better explain this concept.For example, Wu, Dale, and Bethel (1998) used experiment results to show that the concrete conceptual models are better than abstract conceptual models.Hundhausen, Douglas, and Stasko (2002) show that student use of algorithm visualization technology has a great impact on teaching effectiveness.The experiment result in Bruce, Danyluk, and Murtagh (2005) shows that presenting recursive structure to students earlier rather than later can help reinforce the concept of recursion and better prepare students for other data structures.As many varieties of applications in other fields such as signal processing, human genomic sequencing, and population modeling have utilized computer software to capture the idea of recursion, it is important that Computer

Read the paper · More papers on PaperTik