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.
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.
Keywordsrecursion iteration induction algorithm visualization Fibonacci numbers Horner’s rule printing digits of a number fast exponentiation divide and conquer
Unable to display preview. Download preview PDF.
- 1.ACM K-12 Task Force Curriculum Committee, A Model Curriculum for K-12 Computer Science. ACM (2003)Google Scholar
- 3.CSTA: K-12 Computer Science Standards (2011), http://csta.acm.org/Research/sub/CSTAResearch.html
- 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.Edgington, J.: Teaching and Viewing Recursion as Delegation. J. Computing Sciences in Colleges 23(1), 241–246 (2007)Google Scholar
- 6.Educational software, http://mmsyslo.pl/Materialy/Oprogramowanie
- 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
- 10.Ginat, D.: Do Senior, CS Students Capitalize on Recursion? In: Proceedings ITiCSE 2004, Leeds, pp. 82–86. ACM (2004)Google Scholar
- 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.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.Haynes, S.M.: Explaining Recursion to the Unsophisticated. SIGCSE Bulletin 27(3), 3–6, 14 (1995)Google Scholar
- 14.Hsin, W.: Teaching Recursion Using Recursion Graphs. J. of Computing Sciences in Colleges 23(4), 217–222 (2008)Google Scholar
- 15.Information and Communication Technology in Education. A Curriculum for Schools and Programme of Teacher Development, IFIP/UNESCO (2002)Google Scholar
- 17.Leron, U., Zaskis, R.: Computational Recursion and Mathematical Induction. For the Learning of Mathematics 6(2), 25–28 (1986)Google Scholar
- 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
- 21.Sysło, M.M.: Algorithms. WSiP, Warszawa (1997) (in Polish)Google Scholar
- 22.Sysło, M.M.: Pyramids, Cones and Other Algorithmic Constructions. WSiP, Warszawa (1998) (in Polish)Google Scholar
- 24.Sysło, M.M., Kwiatkowska, A.B.: Think logarithmically! Accepted for KEYCIT, Potsdam (Germany) (July 2014)Google Scholar
- 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
- 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