[plt-scheme] define-union

From: Robby Findler (robby at cs.uchicago.edu)
Date: Sat Apr 19 14:57:27 EDT 2003

Taking this view to an extreme, one might think that the only way to
explain computers at all is by showing them a "simple" translation to
assembly language and explaining how the machine works in terms of the
"simple" assembly language interpreter and the compiler translation.
Oh, no -- wait! we really want to go down to the logic and gates that
implement the chips. Oh no -- wait! how do the electrons really flow in
those gates? We better send them off the quantum physics course before
taking the intro CS course.

My point (a little less faciciously :) is that the complexity of an
implementation means nothing for the ability of the student to
understand it. What matters is if you present a seamless abstraction
that the students can use as their model. The complexity of the
implementation of such a model is irrelevant.


At Sat, 19 Apr 2003 14:43:16 -0400, "Anton van Straaten" wrote:
>   For list-related administrative tasks:
>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
> Stephen Bloch wrote:
> > Yes, I could easily have written either of those.  But the goal is to
> > give students with six weeks of programming experience something as
> > closely analogous as possible to define-struct.
> I think there's something to be said for giving students tools whose
> internals they can relatively easily understand, even if they haven't been
> taught the specific details.  The message it sends is "look, you can build
> and understand these constructs yourself, quickly, easily, and
> understandably".  It gives a sense of empowerment, and may help foster a
> tool-building mindset.
> You originally mentioned wanting to use define-syntax for this, but with the
> more demanding spec, you won't get away with syntax-rules.  You'll need to
> use syntax-case, and it won't be as small or simple.  For a six-week
> student, the result will be much more of a black box: a magical construct
> they're being supplied with, whose ultimate conceptual simplicity is
> obscured by its implementation.  It's less transparent, and the students'
> understanding of the operation in question may be affected by this.  "Pay no
> attention to the macro-implementing wizard behind the curtain!"
> I hope you'll forgive me for pointing this out, but the fact that you're
> asking for help in implementing your define-union spec, rather illustrates
> my point.  The choice is one between giving students a tool that they could
> implement themselves with a little assistance, vs. one which their teacher
> wants assistance in implementing.
> Of course, add a big "IMO" to everything above, and it's meant
> constructively.
> Anton

Posted on the users mailing list.