[plt-scheme] 2htdp/image questions

From: Mark Engelberg (mark.engelberg at gmail.com)
Date: Thu Apr 22 21:11:40 EDT 2010

On Thu, Apr 22, 2010 at 2:55 PM, Marco Morazan <morazanm at gmail.com> wrote:
> We only have about 4 years to prepare our undergrads. The use of
> universe and HtDP can deliver a good foundation, but students must be
> moved on to other platforms. For better or for worse, it is very
> likely that they will need exposure to other
> platforms/languages/systems to be competitive in the professional
> world. My point is that if we (as a community) keep demanding more of
> universe et. al, then we run the risk of providing a great education
> inside a bubble. So, either way (i.e., use with beginners or not use
> with beginners) I am not swayed that such requests are a good idea.

I used to think of Scheme as a toy, minimalist language that is a fun
starting place for learning programming, but not much more.

Since then, I have had the luxury of tutoring several talented kids
ranging from 4th through 8th grade, and working with them continually
for a number of years, starting from nothing and watching them grow
into very sophisticated programmers.  One thing I have learned from
this is that there are profound advantages to staying with PLT Scheme
as long as is feasible, and that in fact, you can stick with it far
longer than most people would realize.  And in many ways, PLT Scheme
has more to offer, not less, than mainstream languages, loaded with
goodies that many other programming languages can only dream of
having, and it can take years to fully appreciate those things
(macros, continuations, contracts, etc.)  Arguably, PLT Scheme
epitomizes the "low bar, high ceiling" maxim better than most.

Yes, the kids I work with will need to learn other languages someday
if they decide to "go professional", but they're young and have tons
of time to do that.  In the meantime, it's amazing to see how they are
able to learn far deeper CS topics by growing with one language,
rather than being forced to master a new one every year.

I understand that universe isn't a professional-grade game development
toolkit.  But when a student starts pushing the limits of its
capabilities, there's nothing more joy-killing for that child than to
be told, "Sorry, that's all this system is capable of handling.  If
you want to write that game, you'll need to learn C."  For most kids,
that means the idea they have in their head will never get done.
Obviously with something like the universe teachpack, there is bound
to be some limit, but anything that pushes that limit a little further
out is a good thing IMO.

Several years ago, I remember a thread in which someone pointed out
that a student had implemented a physics simulation in World, but
using exact fractional numbers which quickly caused the world to grind
to a halt as the fractional information became too difficult to
represent.  At this point, the teacher explained to the student the
difference between exact and inexact numbers, and demonstrated how to
do the conversion, forcing inexact, fast math to happen.  Nobody else
in the class needed to know this, but it was wonderful that there was
a way for the teacher to free the student from this particular
performance bottleneck with a little additional knowledge.  This is
the kind of thing that Stephen is envisioning, I believe.

So to summarize:
1.  First-year undergrads who spend only a brief time with Scheme are
not the only target audience for Htdp / PLT Scheme.  There are other
types of students who spend much longer with Scheme, to great benefit.
2.  A high-performance "backdoor" for highly advanced students should
always be a welcome thing, provided it does not incur additional
complexity for the beginners.


Posted on the users mailing list.