skip to main content
article
Free Access

Recursion in gradual steps (is recursion really that difficult?)

Authors Info & Claims
Published:01 March 2000Publication History
Skip Abstract Section

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.

References

  1. 1 Astrachan, O., "Self-reference is an illustrative essential," 25th SIGCSE Technical Symposium on Computer Science Education, 1994, pp. 238-242 Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3 Bird, R., "Tabulation techniques for recursive programs," ACM Computing Surveys, Vol. 12, No. 4, December 1980, pp. 403-417 Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5 Haynes, S.M., "Explaining recursion to the unsophisticated," SIGCSE Bulletin, Vol. 27, No. 3, Sept. 1995, pp. 3-6 and 14 Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6 Leeper, R., "Gradual project assignments in computer courses", 20th SIGCSE Technical Symposium on Computer Science Education, 1989, pp. 88-92 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7 McCracken, D.D., "Ruminations on computer science curricula," Communications oftheACM, Vol. 30, No. 1, January 1987, pp. 3-5 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9 Partsch, H.A., Specification and Transformation of Programs, Springer-Verlag, 1990 Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10 Pattis, R.E., "Teaching EBNF first in CS 1," 25th SIGCSE Technical Symposium on Computer Science Education, 1994, pp. 300-303 Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11 Powers, K.D., D.T. Powers, "Making sense of teaching methods in computer science", 1999 Frontiers in Education Conference, session 1 lb3Google ScholarGoogle Scholar
  12. 12 Reinfelds, J., "A three paradigm first course for CS majors," 26th SIGCSE Technical Symposium on Computer Science Education, 1995, pp. 223-227 Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13 Shaw, M., et al. (eds.), The Carnegie-Mellon Curriculum for Undergraduate Computer Science, Springer-Verlag, 1985 Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14 Thomson, S., Wadler, P. (eds.), monographic issue on "Functional programming in education," Journal of Functional Programming, vol. 3, No. 1, January 1993Google ScholarGoogle Scholar
  15. 15 Tucker, A., et al, Computing Curricula 1991, ACM Press and IEEE Computer Society Press, 1991Google ScholarGoogle Scholar
  16. 16 Vehzquez-Iturbide, J.A., ''Formalization of the control stack," SIGPLAN Notices, Vol. 24, No. 3, March 1989, pp. 46-54 Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18 Velfizquez-Iturbide, J.A., A. Presa-Vzquez, "Customization of visualizations in a functional programming environment," 1999 Frontiers in Education Conference, session 12b3Google ScholarGoogle Scholar
  19. 19 Wirth, N., "Program development by stepwise refinement," Communications of the ACM, Vol. 14, No. 4, April 1971, pp. 221-227 Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Recursion in gradual steps (is recursion really that difficult?)

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            • Published in

              cover image ACM SIGCSE Bulletin
              ACM SIGCSE Bulletin  Volume 32, Issue 1
              Mar. 2000
              429 pages
              ISSN:0097-8418
              DOI:10.1145/331795
              Issue’s Table of Contents

              Copyright © 2000 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 1 March 2000

              Check for updates

              Qualifiers

              • article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader