Scheme and the art of programming
Scheme and the art of programming
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Conceptual models and cognitive learning styles in teaching recursion
SIGCSE '98 Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education
Teaching recursion in a procedural environment—how much should we emphasize the computing model?
SIGCSE '99 The proceedings of the thirtieth SIGCSE technical symposium on Computer science education
Using recursion as a tool to reinforce functional abstraction (poster session)
Proceedings of the 5th annual SIGCSE/SIGCUE ITiCSEconference on Innovation and technology in computer science education
Structure and Interpretation of Computer Programs
Structure and Interpretation of Computer Programs
Data Structures and Their Algorithms
Data Structures and Their Algorithms
The case of base cases: why are they so difficult to recognize? student difficulties with recursion
Proceedings of the 7th annual conference on Innovation and technology in computer science education
High-School Students' Attitudes Regarding Procedural Abstraction
Education and Information Technologies
A gentle introduction to mutual recursion
Proceedings of the 13th annual conference on Innovation and technology in computer science education
Introducing recursion by parking cars
ACM SIGCSE Bulletin
Tail recursion by using function generalization
ITiCSE '09 Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science education
Tail recursive programming by applying generalization
Proceedings of the fifteenth annual conference on Innovation and technology in computer science education
Proceedings of the fifteenth annual conference on Innovation and technology in computer science education
Teaching abstraction in introductory courses
Proceedings of the fifteenth annual conference on Innovation and technology in computer science education
Is iteration really easier to learn than recursion for CS1 students?
Proceedings of the ninth annual international conference on International computing education research
Using cargo-bot to provide contextualized learning of recursion
Proceedings of the ninth annual international ACM conference on International computing education research
On countability, enumeration, and how to think like a computer scientist
Journal of Computing Sciences in Colleges
Hi-index | 0.00 |
Recursion is a very powerful and useful problem solving strategy. But, along with pointers and dynamic data structures, many beginning programmers consider recursion to be a difficult concept to master. This paper reports on a study of upper-division undergraduate students on their difficulty in comprehending the ideas behind recursion. Three issues emerged as the points of difficulty for the students: (1) insufficient exposure to declarative thinking in a programming context (2) inadequate appreciation of the concept of functional abstraction (3) lack of a proper methodology to express a recursive solution. The paper concludes with a discussion of our approach to teaching recursion, which addresses these issues. Classroom experience indicates this approach effectively aids students' comprehension of recursion.