Advertisement

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

  • Maciej M. Syslo
  • Anna Beata Kwiatkowska
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 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

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)MathSciNetGoogle Scholar
  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)CrossRefGoogle Scholar
  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)CrossRefGoogle Scholar
  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)CrossRefGoogle Scholar
  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)CrossRefGoogle Scholar
  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)CrossRefGoogle Scholar
  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)CrossRefGoogle Scholar
  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)CrossRefzbMATHGoogle Scholar
  28. 28.
    Yang, F.-J.: Another Outlook on Linear Recursion. Inroads, SIGCSE Bulletin 40(4), 38–41 (2008)CrossRefGoogle Scholar
  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)CrossRefGoogle Scholar

Copyright information

© 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

Personalised recommendations