Abstract
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.
The approach has three main advantages. First, the teaching of recursion is simplified because it is taught in a gradual way. Second, the concept of recursion is isolated and differentiated from other concepts or mechanisms associated to particular instances of recursion. Last, the student perceives recursion as a recurrent concept in the discipline of computer science.
- 1 Astrachan, O., "Self-reference is an illustrative essential," 25th SIGCSE Technical Symposium on Computer Science Education, 1994, pp. 238-242 Google ScholarDigital Library
- 2 Bilska, A. O., et al., "A collection of tools for making automata theory and formal languages come alive," 28th SIGCSE Technical Symposium on Computer Science Education, 1997, pp. 15-19 Google ScholarDigital Library
- 3 Bird, R., "Tabulation techniques for recursive programs," ACM Computing Surveys, Vol. 12, No. 4, December 1980, pp. 403-417 Google ScholarDigital Library
- 4 Ginat, D., Shifroni, E., ''Teaching recursion in a procedural environment- How much should we emphasize the computing model?," 30th SIGCSE Technical Symposium on Computer Science Education, 1999, pp. 127-131 Google ScholarDigital Library
- 5 Haynes, S.M., "Explaining recursion to the unsophisticated," SIGCSE Bulletin, Vol. 27, No. 3, Sept. 1995, pp. 3-6 and 14 Google ScholarDigital Library
- 6 Leeper, R., "Gradual project assignments in computer courses", 20th SIGCSE Technical Symposium on Computer Science Education, 1989, pp. 88-92 Google ScholarDigital Library
- 7 McCracken, D.D., "Ruminations on computer science curricula," Communications oftheACM, Vol. 30, No. 1, January 1987, pp. 3-5 Google ScholarDigital Library
- 8 Naps., T.L., Stenglein, J., ''Tools for visual exploration of scope and parameter passing in a programming languages course," 27th SIGCSE Technical Symposium on Computer Science Education, 1996, pp. 305-309 Google ScholarDigital Library
- 9 Partsch, H.A., Specification and Transformation of Programs, Springer-Verlag, 1990 Google ScholarDigital Library
- 10 Pattis, R.E., "Teaching EBNF first in CS 1," 25th SIGCSE Technical Symposium on Computer Science Education, 1994, pp. 300-303 Google ScholarDigital Library
- 11 Powers, K.D., D.T. Powers, "Making sense of teaching methods in computer science", 1999 Frontiers in Education Conference, session 1 lb3Google Scholar
- 12 Reinfelds, J., "A three paradigm first course for CS majors," 26th SIGCSE Technical Symposium on Computer Science Education, 1995, pp. 223-227 Google ScholarDigital Library
- 13 Shaw, M., et al. (eds.), The Carnegie-Mellon Curriculum for Undergraduate Computer Science, Springer-Verlag, 1985 Google ScholarDigital Library
- 14 Thomson, S., Wadler, P. (eds.), monographic issue on "Functional programming in education," Journal of Functional Programming, vol. 3, No. 1, January 1993Google Scholar
- 15 Tucker, A., et al, Computing Curricula 1991, ACM Press and IEEE Computer Society Press, 1991Google Scholar
- 16 Vehzquez-Iturbide, J.A., ''Formalization of the control stack," SIGPLAN Notices, Vol. 24, No. 3, March 1989, pp. 46-54 Google ScholarDigital Library
- 17 Velfizquez-Iturbide, J.A., "A methodology for monitor development in concurrent programs," SIGCSE Bulletin, Vol. 26, No. 3, September 1994, pp. 22-28 Google ScholarDigital Library
- 18 Velfizquez-Iturbide, J.A., A. Presa-Vzquez, "Customization of visualizations in a functional programming environment," 1999 Frontiers in Education Conference, session 12b3Google Scholar
- 19 Wirth, N., "Program development by stepwise refinement," Communications of the ACM, Vol. 14, No. 4, April 1971, pp. 221-227 Google ScholarDigital Library
- 20 Wu, C.-C., Dale, N.B., Bethel, LJ., ''Conceptual models and cognitive learning styles in teaching recursion," 29th SIGCSE Technical Symposium on Computer Science Education, 1998, pp. 292-296 Google ScholarDigital Library
Index Terms
- Recursion in gradual steps (is recursion really that difficult?)
Recommendations
Mental models of recursion: investigating students' understanding of recursion
ITiCSE '10: Proceedings of the fifteenth annual conference on Innovation and technology in computer science educationMental models of recursion provide some idea into a student's understanding of recursion. However there has been concern regarding whether viable trace mental models of recursion show students' true understanding of recursion. We have conducted an ...
Recursion in gradual steps (is recursion really that difficult?)
SIGCSE '00: Proceedings of the thirty-first SIGCSE technical symposium on Computer science educationWe 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 ...
A Difference in Complexity Between Recursion and Tail Recursion
There are several ways to understand computability over first-order structures. We may admit functions given by arbitrary recursive definitions, or we may restrict ourselves to "iterative," or tail recursive, functions computable by nothing more ...
Comments