[OT] Teaching Haskell in High School

Michael Sperber [Mr. Preprocessor] sperber@informatik.uni-tuebingen.de
Sat, 08 Feb 2003 17:03:48 +0100


>>>>> "Arjan" == Arjan van IJzendoorn <afie@cs.uu.nl> writes:

Arjan> Good point, but there are fundamental differences between
Arjan> Scheme and Haskell and our whole teaching here in Utrecht is
Arjan> heavily geared towards Haskell: we really need laziness to
Arjan> write our parsers and our attribute grammars,

This seems like a backwards way of approaching teaching the intro
course. (Besides, is this really suitable material for beginners, let
alone high school students?)  It's the common method to specify "We
must do this, that, and this in the intro course" and work backwards
towards the didactics.  I once was a strong proponent of the same
method, but I came to realize that it's necessary to abandon stuff
that I don't know how to teach well to beginners.  I now have a poster
in my apartment saying "Kill your darlings."  (A Faulkner quote, for
those who must know.)

This is what differentiates HtDP from all other intro curriculi I've
seen: it *really* isn't about Scheme, and *nothing* is "heavily
geared" towards Scheme.  It's about programming and problem solving,
and it prepares you for learning the language you need to know to
produce software.  (In fact, even if you want to produce actual
software in Scheme, you'd be expected to take another course after
HtDP.)

Arjan> we believe that static typing is the way to go for more robust
Arjan> software, we think that algebraic data types are a great way to
Arjan> model data and so on.

Sure.  But you'll notice that HtDP *does* use a completely
type-centric approach to teaching, along with algebraic data types.
And the fact that you would like to apply Haskell to professional
software engineering and believe static types are "the way to go"
there says nothing about the suitability of Haskell for intro
teaching.

Teach them Haskell, by all means.  Helium seems to be a great effort
directed at that, and I'm glad *someone* in the community finally
caught on to the problems you're solving.  But if you want Haskell to
be as broadly applicable to intro teaching for non-CS majors as
HtDP/TeachScheme!, you have a long way to go.

-- 
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla