An investigation of a manipulative simulation in the learning of recursive programming

Bower, Randall
Major Professor
Rex Thomas
Ann Thompson
Committee Member
Journal Title
Journal ISSN
Volume Title
Research Projects
Organizational Units
Computer Science
Organizational Unit
Journal Issue
Computer Science

Recursion is a fundamentally important topic in Computer Sciences; Even so, it is often omitted in introductory courses, or discussed only briefly. This is likely due, at least in part, to the fact that teaching recursion has been difficult. Perhaps the biggest problem in teaching recursion is that there are few, if any, naturally existing examples of recursion in our lives. However, successful simulations have shown that the computer may hold the key to solving this problem. A simulation of recursion presented to students before formal classroom instruction can provide a foundation of concrete experiences to build upon. The challenge is to develop an appropriate simulation and lesson plan for introducing recursion to students early in their programming experience;This research reviews previous attempts at teaching recursion, including detailed lesson plans, mental models of recursion, and other simulations. Then, a new simulation and lesson plan for its use are described. The effectiveness of the simulation is studied using two groups of students enrolled in a college-level, introductory programming course. Results indicate that students who used the simulation as their first exposure to recursion gained a deeper understanding of recursion than students receiving a lecture-based introduction to recursion. Specifically, students who used the simulation required fewer attempts to complete a set of recursive programming exercises and performed better on a follow-up exam given six weeks after the experiment;This research concludes with a discussion of two important questions: How should students think about recursion and how do they think about recursion. The simulation's strengths and shortcomings in fostering effective ways of thinking about recursion are also discussed.