[Haskell-cafe] Teaching High-School one-semester FP (using Haskell)

Albert Y. C. Lai trebla at vex.net
Thu Dec 10 23:58:28 UTC 2020


I think that the 99 Haskell Problems are an easy source of short exercises.

https://wiki.haskell.org/H-99:_Ninety-Nine_Haskell_Problems

For longer, well-motivated problems, I think of the long-running 
examples in textbooks, for example the Countdown chapter in Hutton's 
Programming in Haskell.

If you can find/borrow Lawrence Paulson's ML for The Working Programmer, 
it has a list of suggested projects near the end.  Don't worry about how 
that book is on ML rather than Haskell, most of its exercises and 
projects are good for Haskell too.  In fact, enjoy this sentence from 
the book: "This sort of thing is easier in Haskell". :)

And now a dark turn---every silver lining has tarnish.

FP does not change people from writing convoluted borrowed code to 
original simple code.  I saw this in my students, their only difference 
from your dis they are in university.  Everything you said about having 
gone through Python and Java, fishing for answers on Stackoverflow, and 
making a mess, is just as true of my students.  And to think that 
they're university students, yes.

In fact, it may be even worse, now that recursion is compulsory.  People 
distrust recursion, they will think up all kinds of crazy schemes to 
micromanage code execution, rather than just letting recursion do its job.

In fact, even worse when the language is Haskell instead of SML and 
OCaml, because of "how do I print debugging output?"


On 2020-12-10 4:55 p.m., Zachi Baharav wrote:
> Dear mighty Haskell list,
> 
> I am a high-school teacher in the US (California, Palo Alto). We have an 
> advanced CS course that students can take after completing the AP-CS-A 
> (in Java). This is usually Juniors and Seniors, after at least 2 or 3 
> courses of coding (Python+Java). Traditionally, I've done a potpourri of 
> subjects, mostly search algorithms as applied to 'games'. Of course a 
> little bit of data-structure comes in, and each year we did some 'other' 
> interesting subject (like halftoning, barcodes, and so on) and 
> investigated and implemented algorithms there.
> 
> THIS year, for the second half, I would like us to do 
> Functional-Programming. From what I have seen, my students over the 
> years tend to write more and more convoluted codes, electing first to 
> search on stackOverFlow for some similar pattern, rather than think and 
> find a concise and clean solution. I think FP would supply them with a 
> new way of thinking, which will help with whatever they will write later on.
> 
> I've been coding with Haskell for about 7 years, so feel ok leading the 
> class.
> 
> The question: I have many books on Haskell (i think 'all', but who 
> knows.  Haskell, Real world Haskell, Learn you a haskell for great good, 
> programming in haskell, and many more).
> --->  I am looking for something more hands-on and 'fun' for HS 
> students. may i say the buzzword 'project based', or maybe better 
> 'problem based' for our case.
> Something that I could teach a little, and then we can solve a bunch of 
> problems, and teach a little more, and so on.
> 
> It doesn't have to be a Book!!  Just an outline of a course someone did 
> with associated bunch of problems would be awesome. We have 18 weeks in 
> a semester. My thought right now (if I don't find anything) is to relyon 
> Euler project early problems. These are often clean and simple in 
> Haskell.  Or otherwise some CSES problems (which we've done in Java).
> 
> Ok, long enough email.
> 
> If you have material and can share here, great!
> If you have material and want to reach out privately, please do 
> (zbaharav at kehillah.org <mailto:zbaharav at kehillah.org>).
> If you have a good pointer, that would be appreciated.
> 
> Thanks in advance for any help!
>     Zachi
> (Dr. Zachi Baharav, HS teacher  (after 20 years in Industry and academia))
> 
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
> 



More information about the Haskell-Cafe mailing list