[plt-scheme] Are continuations discussed in HtDP?
On Mar 29, 2004, at 3:33 AM, Jerzy Karczmarczuk wrote:
> The problem is that I adore continuations!!
So did I. I never thought of the word "adore" but it comes close. I
taught prompt, F, handler, Fcontrol, you name it for a couple of years
in the PL course (EoPL according to my taste). My dissertation was
about this stuff. My first student's dissertation was about this stuff.
> May call/cc be with you.
Yes! How can you live without knowing it? That's what I thought. And
students who graduated from my courses knew what call/cc was about, if
nothing else. Well macros perhaps.
> 2. A general question for ALL of you. This year I have been finally
> forced not
> just to teach what I liked, just *using* Scheme, but to teach
> Scheme...
>
> Do you think that for CompSci freshmen - the continuations are to
> be taught,
> or it turned out *practically* that this is an overkill? (If you
> have *any
> experimental* doubts, I know what to do, since for serious reasons
> I must be
> minimalist, first-year students in France are very fragile and
> randomly-
> oriented, since they had never any admittance exam to pass)
And yet, I recommend that you ditch them on the spot. Don't even
mention call not to speak of cc. Please! For the sake of Scheme.
Why? The first year I taught freshmen, I ran through the whole thing. I
spent the last two weeks writing an OS kernel using continuations for
thread substitutes (didn't have threads back then) and queues and
mailboxes and friends. Then I stood back and watched my students, my
brilliant call/cc-programming students, fail in this stupid C++ course.
How could that be? They had mastered the force and yet they didn't know
how to shuffle a few bits around?
It was then that it hit me the first time that we (Schemers)
misunderstood the role of the first course. We can accomplish two
things in such a course. (1) Teach them how to program well. I don't
know of another language that can do this so well. (2) Teach them how
to use Scheme for everyday tasks so that they have a powerful tool at
their disposal.
Over the years I started seeing (1) as the more important direction,
and HtDP is what came from that. In all honesty, I sometimes think that
I went way too far in the direction of (1) and that for the sake of
Scheme I should have done some more (2). Still, neither (1) nor (2)
admits call/cc and friends. As much as call/cc and macros may have
worked for us, the few select Jedis of the force, achieving (1) or (2)
or (1) and (2) is what we should aim for first.
That's my 2 dollars, inflation adjusted cents.
-- Matthias