Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.
…
13 pages
1 file
Traditionally, loops are a central topic in a CS1 course but recursion is viewed as an advanced topic that is either taught near the end of the course or not taught at all. Taking a cue from the function-oriented programming community, we argue that there are strong pedagogical reasons for teaching recursion before loops in a CS1 course, regardless of what programming paradigm is taught. In our approach, recursion is presented as an instance of the classic "divide, conquer, and glue" problem solving strategy. Iteration is then presented as a particular pattern of recursion. Finally, loop constructs are presented as concise idioms for iterative patterns. We describe our positive experience in adopting this approach in a CS1 course and highlight the aspects of the course that we think contribute to its success.
Cybernetics and Information Technologies, 2016
In this article we have presented the results of an empirical study which was carried out on 130 students in Introduction to programming classes. Their initial preference, success rate, comprehension and subsequent preference were studied when dealing with programming tasks which could be solved using either iteration or recursion.
2005
Abstract The approach to teaching recursion in introductory programming courses has changed little during the transition from procedural to object-oriented languages. It is still common to present recursion late in the course and to focus on traditional, procedural examples such as calculating factorials or solving the Towers of Hanoi puzzle. In this paper, we propose that the shift to object-oriented programming techniques calls for a significant shift in our approach to teaching recursion.
ACM SIGCSE Bulletin, 1999
Recursion is a powerful and essential computational problem solving tool, but the concept of recursion is difficult to comprehend. Students that master the conventional programming construct of iteration in procedural programming environments, find it hard to utilize recursion.This study started as a test of CS College students' utilization of recursion. It was conducted after they have completed CS1, where they studied recursion with the C programming language. The test revealed that students adhere to the iterative pattern of "forward accumulation", due to their confidence with the iteration construct, but lack of trust of the recursion mechanism. These results motivated us to get more insight into the nature of recursion difficulties and ways to overcome them.In this paper we describe the difficulties we observed, and present a declarative, abstract, approach that contributed to overcome them. We question the emphasis that should be put on the basic computing model ...
2014
One of the most challenging topics for both computing educators and students is recursion. Pedagogical approaches for teaching recursion have appeared in the computing education literature for over 30 years, and the topic has generated a significant body of work. Given its persistence, relatively little attention has been paid to student motivation. This article summarizes results on teaching and learning recursion explored by the computing education community, noting the relative lack of interest in motivation. It concludes by briefly discussing an approach to teaching recursion is appealing for students interested in web development.
warwick.ac.uk
In this study, I examine students' appreciation of the relationship between recursion and iteration, including how they perceive the intra-relationship of the components within those processes. My approach is to design a logo-based microworld, which acts as a window on the students' thinking. In this environment, the students model trees and fractal-shape objects. I use a design-based research methodology in order to gain insights into students' understanding and design issues of the software. These early results show that having a clear understanding of the relation between recursion and iteration and of the flow of control are important in understanding the recursion itself. In addition, functional abstraction is a key concept in dealing with recursion. In the light of these results, I am planning to open
Computer Science Education, 2017
Recursion is both an important and a difficult topic for introductory Computer Science students. Students often develop misconceptions about the topic that need to be diagnosed and corrected. In this paper, we report on our initial attempts to develop a concept inventory that measures student misconceptions on basic recursion topics. We present a collection of misconceptions and difficulties encountered by students when learning introductory recursion as presented in a typical CS2 course. Based on this collection, a draft concept inventory in the form of a series of questions was developed and evaluated, with the question rubric tagged to the list of misconceptions and difficulties.
2020
Although a number of studies report about novices’ difficulties with basic flow-control constructs, concerning both the understanding of the underlying notional machine and the logical connections with the application domain, this issues have not yet been extensively explored in the context of high-school education. As part of a project whose long-run goal is identifying methodological tools to improve the learning of iteration, we analyzed how a sample of 164 high-school students’ approached three small programming tasks involving basic looping constructs, as well as two questions on their subjective perception of difficulty. If, on the one hand, most students seem to have developed a viable mental model of the basic workings of the underlying machine, on the other, dealing at a more abstract level with loop conditions and nested flow-control structures appears to be challenging. As to the implications for teachers, the results of the analysis suggest that more efforts should be ad...
African Journal of Research in Mathematics, Science and Technology Education
Recursion is an important concept for any computer science student to master. Many first year students develop the viable copies mental model of recursion and can successfully trace the execution of a simple recursive function. This article discusses a study focused on determining whether the ability to successfully trace a recursive function means that the student understands recursion or whether they are simply "applying a formula". The research question investigated was thus "To what extent do students with viable trace mental models understand the flow of control of recursive algorithms?" The research followed a phenomenological approach. A group of first year students with viable mental models was identified by classifying the mental models in their answers to test questions. Fifteen of these students were interviewed. The interviews involved the students talking aloud while they tackled various tasks. Each student's understanding of the active flow, the limiting case and the passive flow was assessed. The results show that in most cases even these students have some difficulty with the active flow, are confused about the passive flow and have misconceptions about the limiting case. This implies that more careful thought needs to be given to the examples used in teaching recursion and how the concept is taught.
AIP Conference Proceedings, 2019
When students begin to learn how to program computers, the greatest difficulty does not consist in learning a programming language, even considering the various programming paradigms to which it may belong, but rather in the way of conceiving a solution algorithm for a given problem. In this paper methods for learning how to build better programs with iterative and recursive techniques are proposed. Instead of using the traditional and sequential method, following theoretical exposition and creation of algorithms, practical demonstration in a specific framework to write a program in a programming language, program execution and tests, a new approach is introduced where a set of tools, such as Python programming language, Runestone Interactive documents and Online Python tutor, is used to allow the production of enriched documents with text, images, videos, code implementation and execution windows, with the option of step by step running, showing the used data structures and their values evolution, all together in an-Interactive Electronic Document (IED). Students have the opportunity to learn and experience programming concepts in a single document, interactively, increasing learning achievement and level of satisfaction.
Loading Preview
Sorry, preview is currently unavailable. You can download the paper by clicking the button above.
The Journal of Problem Solving, 2009
Computing science and …, 2003
33rd Annual Frontiers in Education, 2003. FIE 2003.
Computer Science Education, 2010
ACM Sigcse Bulletin, 2000
Proceedings of the 7th Computer Science Education Research Conference on ZZZ - CSERC '18, 2018
Proceedings of the 11th annual SIGCSE …, 2006
ACM SIGCSE Bulletin, 2008
International Journal for Digital Society
ACM SIGCSE Bulletin, 2008
2005 Annual Conference Proceedings