[OT] Teaching Haskell in High School

Hamilton Richards hrichrds@swbell.net
Mon, 03 Feb 2003 22:13:32 -0600


I had the good fortune to teach Haskell to some thousand freshmen a 
few years ago, and noticed that some who did especially well had no 
previous programming experience. This supports Wolfgang Jeltsch's 
claim that Haskell is not inherently difficult to learn.
    I've taught similar numbers of students C++, and I find Haskell 
considerably easier to teach (and much easier on the conscience!).

Freshmen innocent of programming experience are increasingly rare, 
however, so we have to deal mainly with students who've been trained 
to think not only imperatively but operationally. Their weak 
program-design skills, and their meager understanding of the 
excessively complicated languages they're using (C++, Java, ...), 
result in marathon debugging sessions, which they're been trained to 
accept as a normal part of software development.

How such students respond to Haskell depends heavily on their 
attitude. Some feel lost without a debugger, and resist any nudge 
away from their operational thinking. The more open-minded students, 
on the other hand, recognize in Haskell a means of expressing 
computational ideas with far more economy than they are used to, and 
report that learning Haskell has improved their thinking about 
programming even if they never use Haskell again.

Whether Haskell would be a good language for a high-school 
programming class (this thread's original question) depends on the 
class's goals. If it's intended as vocational training, i.e., direct 
preparation for employment, then some language more fashionable in 
industry would probably be appropriate. On the other hand, if it's 
intended as training in precise thinking, then Haskell can't be beat.

Best,

--Ham

At 3:03 AM +0100 2/4/03, Wolfgang Jeltsch wrote:
>On Tuesday, 2003-02-04, 01:01, CET, Hal Daume wrote:
>>  [...]
>
>>  However, I'm also well aware that Haskell is very difficult to learn (and,
>>  I'd imagine, to teach).
>
>Hi,
>
>I wouldn't claim that Haskell is very difficult to learn. I think, people
>often have problems with learning Haskell because they know imperative
>programming and try to apply their imperative thinking to programming in
>Haskell.
>
>Some months ago, a first year student told me that she liked Haskell very much
>and that she didn't find it very difficult. I asked her if she had had
>experiences with other programming languages before learning Haskell. She
>answered: "No."
>
>>  [...]
>
>Wolfgang


-- 
------------------------------------------------------------------
Hamilton Richards                Department of Computer Sciences
Senior Lecturer                  The University of Texas at Austin
512-471-9525                     1 University Station C0500
Taylor Hall 5.138                Austin, Texas 78712-1188
ham@cs.utexas.edu                hrichrds@swbell.net
------------------------------------------------------------------