I was delighted and honored to be asked to speak at Zurihac 2017 on the topic of teaching Haskell. Teaching Haskell is something I do a fair bit of, but I struggled with how to turn it into an interesting talk for a general audience. I chose to focus on teaching Haskell the way I like to teach and learn it: for understanding.
A thing I love about Haskell is that its core logic is understandable. But what does it mean to understand something, and is it different from knowing something? I relied on writings from mathematicians such as Eugenia Cheng and William Thurston to relate the differences between knowledge, understanding, and belief and I explained some ways to help learners get from knowing that something is true to understanding why and then coming, hopefully, to intuitively grasp it, to fully own that knowledge.
Along the way, I argue that the community and culture around a programming language matter a great deal because the priorities and preferences of the people in the community dictates what libraries and tooling are available in the ecosystem, as well as how the community thinks about and values teaching, among other things.
Slides are available here.
Video is here:
References:
William Thurston, Mathematical EducationWilliam Thurston, On Proof and Progress in Mathematics
Eugenia Cheng, How to Bake Pi
E. W. Dijkstra, On the Cruelty of Really Teaching Computer Science
E. W. Dijkstra, Craftsman or Scientist?
William Grosso, Java and Community Support
Tim Humphries, The Round-trip Property
Lucas Di Cioccio, The Haskell Pyramid