[plt-scheme] The perfect teaching language--Is this too much to ask for?

From: Bill Wood (william.wood3 at comcast.net)
Date: Sun Jun 14 17:47:01 EDT 2009

On Sun, 2009-06-14 at 14:49 -0400, Marco Morazan wrote:
   . . .
> Yes, if you know what a type is, right? Imagine a world where you have
> no idea what a type is and an instructor starts talking to you about
> types. Formalizing the declaration of types, it seems to me, gets in
> the way of beginners experimenting with their design. If nothing runs
> until the type checker says it is OK and you are not even sure about
> what a type is nor how to design code, you find yourself stuck unable
> to test anything. My claim is that types are a hindrance at the
> beginning. Later in life, students will appreciate and understand the
> support a type checker provides.

Many years ago when I was in grad school Abstract Data Types were just
catching on in the literature and I was teaching service courses in
Fortran for science and engineering majors.  They were mostly nwew to
programming.  I tried teaching the idea that the things your program
manipulates are of various kinds and that design proceeded more easily
and effectively when those kinds were documented and reasoned about as
part of the design process.  I found that the classes taught that way
more quickly learned to design programs that worked than did classes
where no such ideas were presented.

I think part of the point here is that humans classify, and are used to
the idea that kinds -- kinds of rice in the pot, kinds of screwdriver in
the toolbox, etc., matter to the effectiveness and correctness of
processes that involve working with stuff.  The application of that
intuition to programming is not a large leap.

Bill Wood

Posted on the users mailing list.