Problem with recursion? (was [plt-scheme] Re: Novice needs help writing function )

From: Richard Cobbe (cobbe at
Date: Sun Jan 6 10:50:42 EST 2008

On Fri, Jan 04, 2008 at 09:46:15AM -0800, dbtleonia at wrote:
> >From my experience, the HtDP approach to teaching recursion works
> well: teach recursive *data structures* before teaching recursive
> *functions*.  I find students understand recursive data structures
> more easily because data structures are concrete -- you can write down
> examples and see where the recursion comes in.  Then once the students
> have got that part down, moving on to functions over recursive data is
> a much smaller conceptual leap.
> I think the examples in this thread using Fibonacci are harder for
> beginners to grasp.  Stick with lists or kebabs or whatnot.


>From "Can We Make Mathematics Intelligible?", R. P. Boas, The American
Mathematical Monthly, vol 10, pp727--731 (Dec 1981):

    Suppose you want to teach the "cat" concept to a very young child.  Do
    you explain that a cat is a relatively small, primarily carnivorous
    mammal with retractile claws, a distinctive sonic output, etc.?  I'll
    bet not.  You probably show the kid a lot of different cats, saying
    "kitty" each time, until it gets the idea.  To put it more generally,
    generalizations are best made by abstraction from experience.

One of the major strengths of the HtDP model, IMO, is the emphasis it
places on examples -- both of data structures and of functions.  Among
other things, this forces students (and professors, for that matter) to
approach generalizations from the concrete.  Most of us, myself included,
aren't so different from the child in the story above in that respect.


Posted on the users mailing list.