Teaching recursion using fractals in Prolog
SIGCSE '88 Proceedings of the nineteenth SIGCSE technical symposium on Computer science education
An amazing exercise in recursion for CS1 and CS2
SIGCSE '88 Proceedings of the nineteenth SIGCSE technical symposium on Computer science education
Conceptual models and cognitive learning styles in teaching recursion
SIGCSE '98 Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education
Recursion in gradual steps (is recursion really that difficult?)
Proceedings of the thirty-first SIGCSE technical symposium on Computer science education
Do senior CS students capitalize on recursion?
Proceedings of the 9th annual SIGCSE conference on Innovation and technology in computer science education
A study of the difficulties of novice programmers
ITiCSE '05 Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education
Teaching recursion using recursively-generated geometric designs
Journal of Computing Sciences in Colleges
QuickDraw: bringing graphics into first year
Proceedings of the 40th ACM technical symposium on Computer science education
An unusual CS 1 with high standards and confirming results
Proceedings of the fifteenth annual conference on Innovation and technology in computer science education
Reaching the 'aha!' moment: web development as a motivator for recursion
Proceedings of the 14th annual ACM SIGITE conference on Information technology education
Hi-index | 0.00 |
Recursion is an important part of a complete computer science education. It is a topic that is often introduced during the first course, and then revisited when tree data structures are introduced and functional languages are discussed. Because recursion is introduced early in the curriculum, the range of problems that can be discussed when it is first encountered is limited. In particular, because students generally haven't been introduced to data structures like trees or efficient sorting algorithms such as quick sort and merge sort, these areas which use recursion to elegantly solve important problems can't be used to motivate its study. This paper describes three graphical problems which can be used to motivate the study of recursion. Each of the examples demonstrates the utility of recursion while being appropriate for students nearing the end of their first term in a computer science course. In particular, these examples can be understood and implemented by students who have a reasonable understanding of loops, function calls, and, for some problems, arrays. They do not require any knowledge of object oriented design, pointers or complex data structures. Furthermore, while iterative solutions exist for each of the problems that we describe, the iterative solution for each problem is more complex than its recursive solution. We believe that this is an additional strength of these examples because it helps convince students that recursion is a tool that will allow them solve some problems more easily.