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.
2000, ACM Sigcse Bulletin
…
5 pages
1 file
We propose a gradual approach to teach recursion. Our main assumption is that the difficulty in learning recursion does not come from the recursion concept itself, but from its interaction with other mechanisms of imperative programming. We use this basic idea to propose a new pedagogical approach. On the one hand, recursion is introduced in a gradual way by means of three fields (grammars, functional programming and imperative programming). On the other hand, each instance of recursion is explained so that all of its accompanying mechanisms are clearly identified.
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 ...
1998
Functional programming languages are shown to be useful in the teaching of the concepts of recursion and iteration. The functional language approach presented in this paper has advantages over imperative languages in the area of analysis of recursive and iterative algorithms. Examples using the J and Scheme programming languages, with emphasis on the use of functional programming notation in exposition are given. 1
ACM SIGCSE Bulletin, 2008
Recursion is an important topic in computer science curricula. It is related to the acquisition of competences regarding problem decomposition, functional abstraction and the concept of induction. In comparison with direct recursion, mutual recursion is considered to be more complex. Consequently, it is generally addressed superficially in CS1/2 programming courses and textbooks. We show that, when a problem is approached appropriately, not only can mutual recursion be a powerful tool, but it can also be easy to understand and fun. This paper provides several intuitive and attractive algorithms that rely on mutual recursion, and which have been designed to help strengthen students' ability to decompose problems and apply induction. Furthermore, we show that a solution based on mutual recursion may be easier to design, prove and comprehend than other solutions based on direct recursion. We have evaluated the use of these algorithms while teaching recursion concepts. Results suggest that mutual recursion, in comparison with other types of recursion, is not as hard as it seems when: (1) determining the result of a (mathematical) function call, and, most importantly, (2) designing algorithms for solving simple problems.
Proceedings of the thirty-first SIGCSE technical symposium on Computer science education - SIGCSE '00, 2000
Reoursion is a powerful concept, appearing in almost every introductory course in computer-soience (CS). CS ocbwators and eda~cational researohets often refer to diff;oulties in learning recursion, and suggest methods for toaohing recursion. However, the researoh literature barely addresses the unique ways in whioh students relate to this intcrdisciplinmy conoept and the particular learners' language exm~ning reoursive phenomena. The gap is most apparent when seen through a constmctivist lens, where the students' prior knowledge and idiosyncratic conceptions should be referred to and reflected upon in order to serve as a basis for further knowledge construction. This paper reports on a study in which a collaborative classification of several recursive phenomena is used to facilitate the construction of recursion. The students' discourse was analyzed, as a step toward understanding the students" ways of speaking reeursively. Preliminary results indicate some basic aspects of recursion in the student discourse, although the students appanmtly talk a very different lansuag a fi'orn that of the experts, as used by books and tmohcrs.
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.
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
2015
Dedication This dissertation is dedicated to the loving memory of my mother, Nadia. Her support, encouragement, and constant love have sustained me throughout my life. I also dedicate this dissertation to my husband, Mohamed. I give my deepest expression of love and appreciation for the encouragement that he gave and the sacrifices he made during my graduate program. iii First of all, all thanks due to ALLAH. May His peace and blessings be upon his prophet for granting me the chance to successfully complete my PhD. My heartfelt gratitude to my advisor, Professor Clifford A. Shaffer for his inspiration, enthusiasm, invaluable guidance, and patience. He has taught me many things, and this work would not have been possible without his encouragement and support. I would like to especially thank Dr. Stephen Edwards for his precious feedback and guidance. I would also like to thank my other committee members Dr. Hicham El Mongui, Dr. Jeremy Ernst and Dr. Aditya Prakash for their support, feedback and efforts reviewing my work and dissertation. It is my honor to have worked and learned from them. * In this dissertation we used the term "CS3" to open refer to a Data Structures and Algorithms course taken subsequent to a traditional CS2 course
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.
2013
Applicative/functional programming is considerably simplified through the use of specific recursion patterns as opposed to general recursion. The viability of catamorphic recursion patterns as a pragmatic and theoretical basis makes it feasible to consider a programming language based on them. Syntactic considerations focus on notation to clarify the structures involved in the use of catamorphisms in this critical role. More fundamental semantic considerations involve the recognition that a catamorphic programming style essentially involves the treatment of data exclusively as functions and the extension of this approach to the derivation of other types of data whose behaviours are not generally catamorphic. Implementation by preprocessing into Haskell can be structured to avoid the limitations of Haskell's types, but a general regime of dynamic types seems unavoidable as an alternative. Clear connections with other work on subrecursive programming illuminates other paths for further development.
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.
Loading Preview
Sorry, preview is currently unavailable. You can download the paper by clicking the button above.
WSEAS Transactions on Computers archive, 2009
2014
The Computer Journal, 1999
Information Processing Letters, 1976
Computers & Education, 1994
Computers & Education, 2007
System Visualization of Recursion and Conditions, effectively learning it, 2001
2012 First International Workshop on Formal Methods in Software Engineering: Rigorous and Agile Approaches (FormSERA), 2012
Proceedings of the Eastern Small College Computing Conference (ESCCC'96), Marywood College, Scranton, PA
The Journal of Problem Solving, 2009
Research in Undergraduate Mathematics Education, 2024
The 15th Annual Congress in Mathematics Education, 2024
2017 International Conference on Learning and Teaching in Computing and Engineering (LaTICE), 2017