Introducing Students to Recursion: A Multi-facet and Multi-tool Approach

In this paper we discuss a number of results and advices coming from our observations and didactical experience gathered when teaching about recursion in different contexts and on various education level (K-12 and tertiary). Knowing the difficulty in introducing, explaining and using recursion, we differentiate our approach, tools, and methods. Recursion can be introduced as a ‘real-life topic’ – see Section 2, and then software for visualization of recursive computations (Section 3) can be very helpful to overcome some difficulties by novices. Section 4 is on developing recursive thinking – we use two popular topics – generating Fibonacci number and printing digits of a number – to explain how to introduce students to different aspects of recursion. Section 5 is addressed to complexity of recursive computations – we discuss how to use recursion in a most effective way.

[1]  Maciej M. Syslo,et al.  Contribution of Informatics Education to Mathematics Education in Schools , 2006, ISSEP.

[2]  Wing-Kwong Wong,et al.  Visual representations for recursion , 2001, Int. J. Hum. Comput. Stud..

[3]  David Ginat Do senior CS students capitalize on recursion? , 2004, ITiCSE '04.

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

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

[6]  Uri Leron,et al.  Computational Recursion and Mathematical Induction. , 1986 .

[7]  Sue Sentance,et al.  Computer Science in Secondary Schools in the UK: Ways to Empower Teachers , 2013, ISSEP.

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

[9]  Wen-Jung Hsin Teaching recursion using recursion graphs , 2008 .

[10]  GinatDavid Do senior CS students capitalize on recursion , 2004 .

[11]  Lauri Malmi,et al.  Exploring the role of visualization and engagement in computer science education , 2003, ACM SIGCSE Bull..

[12]  Andrei P. Ershov Basic concepts of algorithms and programming to be taught in a school course in informatics , 1988, BIT Comput. Sci. Sect..

[13]  Jaime Urquiza-Fuentes,et al.  SRec: an animation system of recursion for algorithm courses , 2008, SIGCSE 2008.

[14]  Roland Mittermeir Informatics Education - The Bridge between Using and Understanding Computers: International Conference on Informatics in Secondary Schools - Evolution ... (Lecture Notes in Computer Science) , 2006 .

[15]  Michael Wirth Introducing recursion by parking cars , 2008, SGCS.

[16]  Calvin Lin,et al.  Using cargo-bot to provide contextualized learning of recursion , 2013, ICER '13.

[17]  S. M. Haynes,et al.  Explaining recursion to the unsophisticated , 1995, SGCS.

[18]  Jaime Urquiza-Fuentes,et al.  A gentle introduction to mutual recursion , 2008, SIGCSE 2008.

[19]  Feng-Jen Yang Another outlook on linear recursion , 2008, SGCS.

[20]  Gary Ford,et al.  A framework for teaching recursion , 1982, SGCS.

[21]  Mordechai Ben-Ari Recursion: From Drama to Program , 2000 .

[22]  GinatDavid,et al.  Teaching recursion in a procedural environmenthow much should we emphasize the computing model , 1999 .

[23]  Maciej M. Syslo Outreach to Prospective Informatics Students , 2011, ISSEP.

[24]  Jeffrey Edgington Teaching and viewing recursion as delegation , 2007 .