Teaching recursion through games, songs, stories, directories and hacking
Laurie L. Butgereit · 2016
Recursion is everywhere in the world. It can be seen in the arrangement of petals in flowers, in the structure of ancient architecture, in the presentation of family trees, and in raging epidemics. Computer science or information technology courses, unfortunately, often limit the discussion of recursion to calculating a factorial or, perhaps, a Fibonacci number. Perhaps, the student might be shown a recursive traversal of a linked list or a binary tree. If the student is lucky, he or she might be presented with the Towers of Hanoi, a Traveling Salesman, or a Road Inspector. But in most cases, recursion is presented as an academic type oddity. This is most unfortunate. As the world and its population become more and more interlinked, more and more opportunities for recursive solutions to problems present themselves. This paper looks at how recursion can be presented to experienced programmers through modeling items which the programmers have experienced in everyday life. This obviously includes the ubiquitous computer directory system but it also includes popular memory games, campfire and folk songs, children's stories, and computer generated backgrounds in games. In this research, a series of eight topics were presented to experienced programmers covering a wide variety of recursive situations. With the knowledge gained from these eight topics, the participants were then invited to launch a number of recursive type attacks against websites hosted by the author. The success of the participants in launching these recursive attacks pointed to the success of the training technique.