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.