Franklyn Turbak, Constance Royden, Jennifer Stephan, and Jean Herbst.
Teaching Recursion Before Iteration in CS1.
The Journal of Computing in Small Colleges
14(4), May 1999.
Traditionally, loops are a central topic in a CS1 course but
recursion is viewed as an advanced topic that is either taught near
the end of the course or not taught at all. Taking a cue from the
function-oriented programming community, we argue that there are
strong pedagogical reasons for teaching recursion before loops in a
CS1 course, regardless of what programming paradigm is taught. In our
approach, recursion is presented as an instance of the classic
"divide, conquer, and glue" problem solving strategy. Iteration is
then presented as a particular pattern of recursion. Finally, loop
constructs are presented as concise idioms for iterative patterns. We
describe our positive experience in adopting this approach in a CS1
course and highlight the aspects of the course that we think
contribute to its success.