Is iteration really easier to learn than recursion for CS1 students?

There is general consensus that recursion is difficult to learn, which may be meant to imply that novice students are more at ease with iteration --- probably a widespread perception of students themselves. However, three years of investigation in a context where recursion is introduced earlier than iteration, as well as control experiments for a standard imperative-first introduction to programming, have provided no evidence that students make more progress with iteration than they do with recursion. More specifically, by means of a pair of questionnaires devised for this purpose, two research questions have been addressed. First, do the students who learned recursion before iteration actually exhibit a stronger ability to deal with the latter? Second, do the students of the imperative-first path master iteration better than those of the recursion-earlier path?

[1]  Ruven E. Brooks,et al.  Towards a Theory of the Comprehension of Computer Programs , 1983, Int. J. Man Mach. Stud..

[2]  Bruria Haberman,et al.  The case of base cases: why are they so difficult to recognize? student difficulties with recursion , 2002, ITiCSE '02.

[3]  John R. Anderson,et al.  Learning Flow of Control: Recursive and Iterative Procedures , 1986, Hum. Comput. Interact..

[4]  Raja Sooriamurthi Problems in comprehending recursion and suggested solutions , 2001 .

[5]  M. Linn,et al.  Cognitive consequences of Programming Instruction: Instruction, Access, and Ability , 1985 .

[6]  Ian Douglas Sanders,et al.  Mental models of recursion , 2003, SIGCSE.

[7]  Raymond Lister,et al.  The BRACElet 2009.1 (Wellington) specification , 2009, ACE '09.

[8]  David Ginat,et al.  Teaching recursion in a procedural environment—how much should we emphasize the computing model? , 1999, SIGCSE '99.

[9]  Susan Wiedenbeck Learning recursion as a concept and as a programming technique , 1988, SIGCSE '88.

[10]  Gordon I. McCalla,et al.  Supporting the Learning of Recursive Problem Solving , 1994, Interact. Learn. Environ..

[11]  Jacob Cohen Statistical Power Analysis for the Behavioral Sciences , 1969, The SAGE Encyclopedia of Research Design.

[12]  Benedict du Boulay,et al.  Some Difficulties of Learning to Program , 1986 .

[13]  Kim B. Bruce,et al.  Why structural recursion should be taught before arrays in CS 1 , 2005, SIGCSE '05.

[14]  Ian Douglas Sanders,et al.  Mental models of recursion revisited , 2006, ITICSE '06.

[15]  Carlisle E. George Using visualization to aid program construction tasks , 2002, SIGCSE '02.

[16]  Jennifer Stephan,et al.  TEACHING RECURSION BEFORE LOOPS IN CS1 , 1999 .

[17]  Elliot Soloway,et al.  Novice mistakes: are the folk wisdoms correct? , 1986, CACM.

[18]  Raymond Lister,et al.  Relationships between reading, tracing and writing skills in introductory programming , 2008, ICER '08.

[19]  Jorma Sajaniemi,et al.  A role-based analysis model for the evaluation of novices' programming knowledge development , 2006, ICER '06.

[20]  Raymond Lister,et al.  Concrete and other neo-Piagetian forms of reasoning in the novice programmer , 2011, ACE 2011.

[21]  Hank Kahney,et al.  What do novice programmers know about recursion , 1983, CHI '83.

[22]  Raymond Lister,et al.  Not seeing the forest for the trees: novice programmers and the SOLO taxonomy , 2006, ITICSE '06.

[23]  TopiHeikki,et al.  Computing Curricula 2005: The Overview Report , 2006 .

[24]  Kim B. Bruce,et al.  Why structural recursion should be taught before arrays in CS 1 , 2005 .

[25]  Alan C. Benander,et al.  Recursion vs. Iteration: An Empirical Study of Comprehension , 1996, J. Syst. Softw..

[26]  Paul Griseri Concrete Abstractions , 2014 .

[27]  Bill Z. Manaris,et al.  Bloom's taxonomy revisited: specifying assessable learning objectives in computer science , 2008, SIGCSE '08.