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

From: Richard Cobbe (cobbe at
Date: Sun Jan 6 15:30:12 EST 2008

On Sun, Jan 06, 2008 at 01:46:57PM -0500, Prabhakar Ragde wrote:
> Richard Cobbe wrote:
>> 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.
> I would suggest the opposite -- that HtDP encourages one to develop in
> generality, as opposed to just about every other approach, which presents a
> bunch of examples and then leaves students to form their own (possibly
> imperfect) generalizations. As the book proceeds, fewer examples are used.
> Before each of the data definitions for ancestor and descendant family
> trees, there is exactly one example. There is no example presented before
> the data definition for binary trees. Templates encourage students to
> proceed from the general to the specific.

It's been a while since I've looked at the textbook in any detail, but as I
remember it, we're both right (for various values of HtDP).

That is to say, the times that I've TA'd for Matthias doing this class, he
has emphasized the importance of examples in lecture, lab, etc. far more
than the text does, and I had forgotten this when I wrote the message
up-thread.  Indeed, while the sections of the text that describe the design
recipe for structures, unions, and lists show examples of values of those
types, they don't really emphasize that construction of these examples is a
crucial part of the design recipe.  (I'm looking specifically at sections
6.5, 7.2, and 9.4 on the web.)

But my experience in working with students in the HtDP curriculum is that
they have immense problems writing functions for tricky data structures
unless they start with examples of those structures.


Posted on the users mailing list.