ABSTRACT
Recursion is a central concept in computer science, yet it is a very difficult concept for beginners to learn. In this paper we focus on a specific aspect of comprehending recursion - the conception of the base case as an integral component of a recursive algorithm. We found that students have difficulties in identifying base cases: they handle redundant base cases; ignore boundary values and degenerated cases; avoid out-of-range values; and may even not define any base cases when formulating recursive algorithms. We also found that students have difficulties in evaluating recursive algorithms that deal with imperceptible base cases. We suggest that teachers should make a special effort to discuss different aspects of the base case concept. Emphasis should be put on both declarative and procedural aspects of categorizing and handling base cases as part of recursion formulation.
- Anderson, J.R., Prirolli, P., and Farrell, R. Learning to program recursive functions. In The Nature of Expertise. Chi, M.T., Glaser, R., and Farr, M.J. (eds.). Hillsdale, NJ: Lawrence Erlbaum Associates, 1988, 151--183.Google Scholar
- Ben-Ari, M. Recursion: From drama to program. Journal of Computer Science Education. 11(3), 1997, 9--12.Google Scholar
- George, E.C. Experience with novices: The importance of graphical representations in supporting mental models. In Blackwell, A.F. and Bilotta, E. (Eds). Proceedings of the 12th Workshop of the Psychology of Programming Interest Group, 2000, 33--44.Google Scholar
- Ginat, D. and Shifroni, E. Teaching recursion in a procedural environment - How much should we emphasize the computing model? Proceedings of the 30th SIGCSE technical symposium on computer science education, 1999, 127--131. Google ScholarDigital Library
- Kann, C., Lindenman, R., and Heller, R. Integrating algorithm animation into a learning environment. Computers Educ., 28 (4), 223--228, 1997. Google ScholarDigital Library
- Kahney, H. What do novice programmers know about recursion? Proceedings of the CHI '83 Conference on Human Factors in Computer Systems, 1983, 235--239. Google ScholarDigital Library
- Kahney, H. and Eisenstadt, M. Programmers' mental models of their programming tasks: The interaction of real world knowledge and programming knowledge. Proceedings of the 4th Annual Conference of the Cognitive Science Society, 1982, 143--145.Google Scholar
- Segal, J. Empirical studies of functional programming learners evaluating recursive functions. Instructional Science, 22, 385--411, 1995.Google ScholarCross Ref
- Sooriamurthi, R. Problems in comprehending recursion and suggested solutions. Proceedings of the 6th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, 2001, 25--28. Google ScholarDigital Library
- Spohrer, J.G., and Soloway, E. Analyzing the high frequency bugs in novice programs. In Empirical Studies of Programmers. Soloway E. and Iyengar, S. (eds.). Albex Publishing Corporation, Norwood, New Jersey, 1986, 230--251. Google ScholarDigital Library
- Wilcocks, D., and Sanders, I., Animating recursion as an aid to instruction. Computers Educ. 23(3), 221--226, 1994. Google ScholarDigital Library
- Wu, C.C., Dale, N.B., and Bethel, L.J. Conceptual models and cognitive learning styles in teaching recursion. Proceedings of the 29th SIGCSE technical symposium on computer science education, 1998, 292--296. Google ScholarDigital Library
Index Terms
- The case of base cases: why are they so difficult to recognize? student difficulties with recursion
Recommendations
The case of base cases: why are they so difficult to recognize? student difficulties with recursion
Recursion is a central concept in computer science, yet it is a very difficult concept for beginners to learn. In this paper we focus on a specific aspect of comprehending recursion - the conception of the base case as an integral component of a ...
Template base delegation
CTEC'94: Proceedings of the 6th conference on USENIX Sixth C++ Technical Conference - Volume 6When a class derives from a template instantiation, the base class is called a template base class. Non-template base classes are more commonly used, but do not take into account the specific needs of the derived class.
The base class can provide better ...
Case base building with similarity relations
This paper has two main contributions. Firstly, it shows that similarity relations are an adequate means of formalization not only for case retrieval but also for case base building. Secondly, this paper provides a theoretical formalization for building ...
Comments