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

• Maciej M. Syslo
• Anna Beata Kwiatkowska
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8730)

## Abstract

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.

We do not teach recursion as a separate topic or subject, it is rather a method and a tool, the way of thinking, used in various situations. It is redundant in some cases (Section 5.1), can be used as an approach alternative to iteration (Sections 2 and 4.2), but our main focus is on its properties as a concept which has a computational power in designing solutions of problems and running such solutions on a computer.

## Keywords

recursion iteration induction algorithm visualization Fibonacci numbers Horner’s rule printing digits of a number fast exponentiation divide and conquer

## References

1. 1.
ACM K-12 Task Force Curriculum Committee, A Model Curriculum for K-12 Computer Science. ACM (2003)Google Scholar
2. 2.
Ben-Ari, M.: Recursion: From Drama to Programs. J. of Computer Science Education 11(3), 9–12 (1997)
3. 3.
CSTA: K-12 Computer Science Standards (2011), http://csta.acm.org/Research/sub/CSTAResearch.html
4. 4.
Diduszko, P.: Rekurencja. System do Nauki Posługiwania się Rekurencją, Master Degree Thesis, Institute of Computer Science, University of Wrocław (2013)Google Scholar
5. 5.
Edgington, J.: Teaching and Viewing Recursion as Delegation. J. Computing Sciences in Colleges 23(1), 241–246 (2007)Google Scholar
6. 6.
7. 7.
Ershov, A.P.: Basic Concepts of Algorithms and Programming to be Taught in a School Course in Informatics. BIT 28, 397–405 (1988)Google Scholar
8. 8.
Ford, G.: A framework for Teaching Recursion. SIGCSE Bulletin 14(2), 32–39 (1982)
9. 9.
Ginat, D., Shifroni, E.: Teaching Recursion in a Procedural Environment – How much Should we Emphasize the Computing Model? SIGCSE Bulletin 31(1), 127–131 (1999)
10. 10.
Ginat, D.: Do Senior, CS Students Capitalize on Recursion? In: Proceedings ITiCSE 2004, Leeds, pp. 82–86. ACM (2004)Google Scholar
11. 11.
Gurbiel, E., Hard-Olejniczak, G., Kołczyk, E., Krupicka, H., Sysło, M.M.: Informatics (In Polish), vols. 1 and 2, Textbook for high school, WSiP, Warszawa (2002-2003)Google Scholar
12. 12.
Haberman, B., Averbuch, H.: The Case of Base Cases: Why are They so Difficult to Recognize? Student Difficulties with Recursion. In: ITiCSE 2002, Aarhus, Denmark, pp. 84–88 (2002)Google Scholar
13. 13.
Haynes, S.M.: Explaining Recursion to the Unsophisticated. SIGCSE Bulletin 27(3), 3–6, 14 (1995)Google Scholar
14. 14.
Hsin, W.: Teaching Recursion Using Recursion Graphs. J. of Computing Sciences in Colleges 23(4), 217–222 (2008)Google Scholar
15. 15.
Information and Communication Technology in Education. A Curriculum for Schools and Programme of Teacher Development, IFIP/UNESCO (2002)Google Scholar
16. 16.
17. 17.
Leron, U., Zaskis, R.: Computational Recursion and Mathematical Induction. For the Learning of Mathematics 6(2), 25–28 (1986)Google Scholar
18. 18.
Naps, T., Roessling, G., Almstrum, V., Dann, W., Fleischer, R., Hundhausen, C., Korhonen, A., Malmi, L., MCNally, M., Rodger, S., Velazquez, J.: Exploring the Role of Visualization and Engagement in Computer Science Education. SIGCSE Bulletin 35(2), 131–152 (2003)
19. 19.
Rubio-Sanchez, M., Urquiza-Fuentes, J., Pareja-Flores, C.: A Gentle Introduction to Mutual Recursion. In: Proceedings ITiCSE 2008, Madrid, pp. 235–239. ACM (2008)Google Scholar
20. 20.
Sooriamurthi, R.: Problems in Comprehending Recursion and Suggested Solutions. SIGCSE Bulletin 33(3), 25–28 (2001)
21. 21.
Sysło, M.M.: Algorithms. WSiP, Warszawa (1997) (in Polish)Google Scholar
22. 22.
Sysło, M.M.: Pyramids, Cones and Other Algorithmic Constructions. WSiP, Warszawa (1998) (in Polish)Google Scholar
23. 23.
Sysło, M.M., Kwiatkowska, A.B.: Contribution of Informatics Education to Mathematics Education in Schools. In: Mittermeir, R.T. (ed.) ISSEP 2006. LNCS, vol. 4226, pp. 209–219. Springer, Heidelberg (2006)
24. 24.
Sysło, M.M., Kwiatkowska, A.B.: Think logarithmically! Accepted for KEYCIT, Potsdam (Germany) (July 2014)Google Scholar
25. 25.
Sysło, M.M.: Outreach to Prospective Informatics Students. In: Kalaš, I., Mittermeir, R.T. (eds.) ISSEP 2011. LNCS, vol. 7013, pp. 56–70. Springer, Heidelberg (2011)
26. 26.
Tessler, J., Beth, B., Lin, C.: Using Cargo-Bot to Provide Contextualized Learning of Recursion. In: Proceedings ICER 2013, San Diego, pp. 161–168. ACM (2013)Google Scholar
27. 27.
Tung, S.-H., Chang, C.-T., Wong, W.-K., Jehng, J.-C.: Visual Representations for Recursion. Int. J. Human-Computer Studies 54, 285–300 (2001)
28. 28.
Yang, F.-J.: Another Outlook on Linear Recursion. Inroads, SIGCSE Bulletin 40(4), 38–41 (2008)
29. 29.
Valazquez-Iturbide, J., Perez-Carrasco, A., Urquiza-Fuentes, J.: SRec: An Animation System of Recursion for Algorithm Courses. In: Proceedings ITiCSE 2008, Madrid, pp. 225–229 (2008)Google Scholar
30. 30.
Wirth, M.: Introducing Recursion by Parking Cars. SIGCSE Bulletin 40(4), 52–55 (2008)

© Springer International Publishing Switzerland 2014

## Authors and Affiliations

• Maciej M. Syslo
• 1
• 2
• Anna Beata Kwiatkowska
• 2
1. 1.Institute of Computer ScienceUniversity of WroclawWroclawPoland
2. 2.Faculty of Mathematics and InformaticsNicolaus Copernicus UniversityTorunPoland