Teaching recursion as a problem-solving tool using standard ML
SIGCSE '89 Proceedings of the twentieth SIGCSE technical symposium on Computer science education
A little Java, a few patterns
Conceptual models and cognitive learning styles in teaching recursion
SIGCSE '98 Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education
Patterns for decoupling data structures and algorithms
SIGCSE '99 The proceedings of the thirtieth SIGCSE technical symposium on Computer science education
A library to support a graphics-based object-first approach to CS 1
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
Event-driven programming is simple enough for CS1
Proceedings of the 6th annual conference on Innovation and technology in computer science education
Java: An Eventful Approach
Teaching and viewing recursion as delegation
Journal of Computing Sciences in Colleges - Papers of the Fourteenth Annual CCSC Midwestern Conference and Papers of the Sixteenth Annual CCSC Rocky Mountain Conference
Teaching strategies for reinforcing structural recursion with lists
Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion
A graphics package for the first day and beyond
Proceedings of the 40th ACM technical symposium on 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
Hi-index | 0.00 |
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. First, we argue that in the context of object-oriented programming students should be introduced to examples of simple recursive structures such as linked lists and methods that process them, before being introduced to traditional procedural examples. Second, we believe that this material should be presented before students are introduced to structures such as arrays. In our experience, the early presentation of recursive structures provides the opportunity to reinforce the fundamentals of defining and using classes and better prepares students to appreciate the reasons to use classes to encapsulate access to other data structures when they are presented.