Recursion is a fundamental method for solving complex problems in computer science. The final solution to a problem depends on the solution of smaller subproblems into which the original problem is divided, using the same subroutine for solving the subproblems as for the basic problem. The division into smaller problems is repeated until the resulting problem is trivially solvable.
The concept of recursion is first encountered by students when learning to program, where programming languages permit the definition of recursive functions that call themselves. These functions typically reduce the definitional range of each successive call until it is minimal, thereby rendering the function trivially solvable. Research indicates that students have difficulty understanding recursion because they have not previously encountered this type of problem-solving in practice. In order to comprehend this concept, students must construct an appropriate mental model.
Throughout the history of computer science education, numerous authors have endeavoured to identify the most effective methodologies for the teaching of recursion. In the past, a variety of approaches have been employed to facilitate the learning of recursion, including the presentation of recursion based on its implementation, the utilisation of mathematical induction to elucidate the concept, the tracing of the execution of recursion, the utilisation of visual aids and fractals, the analysis of programming code templates, the incorporation of real-life recursive examples, and the demonstration of recursion as a means of solving problems.
Given the difficulty of understanding recursion, the researchers sought to identify the most common misconceptions associated with this concept. Based on this analysis, they were able to categorize the various mental models of recursion that learners tend to develop. These findings are presented in the theoretical section of the thesis.
The empirical part presents a study in which we analysed the mental models of recursion that learners construct, identified those that are inappropriate, and supported the construction of more appropriate mental models by using an appropriate didactic approach and providing the necessary background knowledge. We conducted action research with pupils in the last three years of primary school. At the beginning of the action research, we assessed the students' interest and motivation to learn programming. The students were first introduced to recursion through a series of learning activities, which aimed to provide them with the necessary background knowledge to understand the concept. This was followed by a review of the concepts of variables, iteration and subroutines. Once the students had acquired a basic understanding of recursion, they were presented with a series of practical exercises designed to reinforce their knowledge. The mental models that the students constructed during this learning process were then evaluated through a combination of observation, written tests and analysis of the students' solutions to recursion problems. Based on the findings, we devised further action steps to facilitate the transformation of the inadequate mental models of recursion constructed by the students into an appropriate mental model.
The results of the survey demonstrated the misconceptions of recursion that were identified in the students and the mental models of recursion that the students had constructed. It was found that students experienced less difficulty in following the execution of recursive subroutines than in generating program code to solve a given problem. The mental models that were detected in students when tracing the execution of recursive subroutines were categorised according to the existing model. The categorisation of generative mental models proved more challenging, necessitating the construction of a bespoke categorisation of recursion mental models based on several existing categorisations. This was then applied to the sample of solutions. The new model for categorising generative mental models of recursion resulted in a larger number of solutions being placed in the relevant categories than in the existing categorisations.
|