Introducing Students to Recursion: A Multi-facet and Multi-tool Approach - Syslo, Maciej M.; Kwiatkowska, Anna Beata (Informatics in Schools. Teaching and Learning Perspectives, 2014)
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.