ABSTRACT
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?
- A. Benander, B. Benander, and H. Pu. Recursion vs. iteration: An empirical study of comprehension. J. of Systems and Software, 32(1):73--82, 1996. Google ScholarDigital Library
- S. Bhuiyan, J. E. Greer, and G. I. Mccalla. Supporting the learning of recursive problem solving. Interactive Learning Environments, 4(2):115--139, 1994.Google ScholarCross Ref
- R. Brooks. Towards a theory of the comprehension of computer programs. International Journal of Man-Machine Studies, 18(6):543--554, 1983.Google ScholarCross Ref
- K. B. Bruce, A. Danyluk, and T. Murtagh. Why structural recursion should be taught before arrays in CS1. In Proc. 36th SIGCSE, pages 246--250, 2005. Google ScholarDigital Library
- P. Byckling and J. Sajaniemi. A role-based analysis model for the evaluation of novices' programming knowledge dev. In Proc. 2nd ICER, pages 85--96, 2006. Google ScholarDigital Library
- CC2001 Joint Task Force. Computing Curricula 2001: Computer Science. ACM and IEEE-CS, Dec. 2001.Google Scholar
- CC2005 Joint Task Force. Computing Curricula 2005: The overview report. ACM and IEEE-CS, Sept. 2005.Google Scholar
- J. Cohen. Statistical power analysis for the behavioral sciences. Lawrence Erlbaum, 1988.Google Scholar
- B. du Boulay. Some difficulties of learning to program. J. of Educational Comput. Research, 2(1):57--73, 1986.Google ScholarCross Ref
- C. E. George. Using visualization to aid program construction tasks. In Proc. 33rd SIGCSE, 2002. Google ScholarDigital Library
- D. Ginat and E. Shifroni. Teaching recursion in a procedural environment--how much should we...? In Proc. 30th SIGCSE, pages 127--131, 1999. Google ScholarDigital Library
- T. Götschi, I. Sanders, and V. Galpin. Mental models of recursion. In Proc. 34th SIGCSE, 2003. Google ScholarDigital Library
- B. Haberman and H. Averbuch. The case of base cases: Why are they so difficult to recognize? In Proc. 7th ITiCSE, pages 84--88, 2002. Google ScholarDigital Library
- M. Hailperin, B. Kaiser, and K. Knight. Concrete Abstractions. Brooks/Cole, 1999.Google Scholar
- H. Kahney. What do novice programmers know about recursion. In Proc. of SIGCHI, pages 235--239, 1983. Google ScholarDigital Library
- C. M. Kessler and J. R. Anderson. Learning flow of control: recursive and iterative procedures. Human-Computer Interaction, 2(2):135--166, 1986. Google ScholarDigital Library
- M. C. Linn and J. Dalbey. Cognitive consequences of programming instruction: Instruction, access, and ability. Educational Psychologist, 20(4):191--206, 1985.Google ScholarCross Ref
- R. Lister. Concrete and other neo-piagetian forms of reasoning in the novice programmer. In Proc. 13th ACE, pages 9--18, 2011. Google ScholarDigital Library
- R. Lister et al. Not seeing the forest for the trees: novice programmers and the SOLO taxonomy. In Proc. 11th ITiCSE, pages 118--122. ACM, 2006. Google ScholarDigital Library
- M. Lopez et al. Relationships between reading, tracing and writing skills in introductory programming. In Proc. of the 4th ICER, pages 101--112, 2008. Google ScholarDigital Library
- I. Sanders, V. Galpin, and T. Götschi. Mental models of recursion revisited. In Proc. 11th ITICSE, 2006. Google ScholarDigital Library
- R. Sooriamurthi. Problems in comprehending recursion and suggested solutions. In Proc. 6th ITiCSE, pages 25--28, 2001. Google ScholarDigital Library
- J. C. Spohrer and E. Soloway. Novice mistakes: are the folk wisdoms correct? CACM, 29(7):624--632, 1986. Google ScholarDigital Library
- C. W. Starr, B. Manaris, and R. H. Stalvey. Bloom's taxonomy revisited: specifying assessable learning... In Proc. 39th SIGCSE, pages 261--265, 2008. Google ScholarDigital Library
- F. Turbak, C. Royden, J. Stephan, and J. Herbst. Teaching recursion before loops in CS1. J. Computing in Small Colleges, 14(4):86--101, 1999.Google Scholar
- J. Whalley and R. Lister. The BRACElet 2009.1 specification. In Proc. 11th ACE, pages 9--18, 2009. Google ScholarDigital Library
- S. Wiedenbeck. Learning recursion as a concept and as a programming technique. In Proc. 19th SIGCSE, pages 275--278. ACM, 1988. Google ScholarDigital Library
Index Terms
- Is iteration really easier to learn than recursion for CS1 students?
Recommendations
Recursion or Iteration: Does it Matter What Students Choose?
SIGCSE '18: Proceedings of the 49th ACM Technical Symposium on Computer Science EducationRecursion and iteration are two key topics taught in introductory Computer Science. This is especially so for CS2 students, as CS2 is the course where recursion is typically taught and where control-flow concepts are solidified. When asked to solve a ...
Is iteration really easier to master than recursion: an investigation in a functional-first CS1 context
ITiCSE '11: Proceedings of the 16th annual joint conference on Innovation and technology in computer science educationDespite a general consensus on the difficulties faced to master recursion, a two-year investigation on the achievements in a 'functional-first' introductory course does not corroborate the hypothesis that students are more at ease with iteration than ...
Iteration vs Recursion in Introduction to Programming Classes
Abstract In this article we have presented the results of an empirical study which was carried out on 130 students in Introduction to programming classes. Their initial preference, success rate, comprehension and subsequent preference were studied when ...
Comments