Abstract
Consideration will be given to the perplexity students experience with recursive function definitions. Certain conceptual structures will be suggested, which might provide a path through the thicket. In particular, emphasis will be placed on decisions that a programmer makes during the course of designing a recursive definition. By drawing attention to these decisions — by classifying them and making them explicit — it is possible to delineate the kind of “space” within which creativity operates. To vivify this, a rudimentary taxonomy of recursive function definitions will be sketched here. It will be illustrated in a particular application area, involving a family of simple string-processing tasks. This will highlight two different kinds of structure: (i) classification of different tasks within the family, (ii) classification of different approaches to a single task. Some of the points to be raised are not specific to recursion; accordingly, connections will be drawn here and there with certain more general pedagogical themes promulgated by Peter Landin in recent years.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have