[Haskell-cafe] Suggestions for "Advanced" Topics for Haskell-based Class

Stuart A. Kurtz stuart at cs.uchicago.edu
Tue Jan 24 21:20:00 UTC 2017

Dear Conrad,

There have been several classes taught at Stanford along the lines you ask about:

	CS240h (2011)  http://www.scs.stanford.edu/11au-cs240h/
	CS240h (2014)  http://www.scs.stanford.edu/14sp-cs240h/

under the title “Functional Systems in Haskell.”

Jakub Tucholski and I taught a course inspired by these classes at Chicago in 2015 with the same title:

	CMSC 22311 (2015)  http://cmsc-22311.cs.uchicago.edu/2015/

The material (in my class, at least) is a bit dated — Haskell evolves quickly, so the lectures suffer from inevitable entropy, but there’s a de facto syllabus there, and considerable supporting lecture material (this is true also of the original Stanford sites). Anyway, here’s what we did:

	• Introduction (a quick review of Haskell)
	• Typeclassopedia
	• Arrays and Mutability
	• QuickCheck
	• Seq and All That
	• IO 
	• Pattern Guards
	• Template Haskell
	• Lenses
	• Zippers
	• Testing
	• GADTs
	• Parallel Haskell
	• Concurrency, Exceptions, and STM
	• Networking
	• Yesod

Were I to do this again, I’d probably opt for Happstack over Yesod (if only because I can get Happstack to install on a Raspberry Pi, and so it’s what I’m playing with now). For a bit of variety, if you have time, you might want to throw in a bit of Elm (http://elm-lang.org), an eager language that is similar in syntax to Haskell, which compiles to JavaScript. It’s fun, and high leverage for people who already know Haskell.

We’d hoped to do pipes, but ran out of time (quarters are short).




Stuart A. Kurtz
Professor, Department of Computer Science and the College
Director of Undergraduate Studies for Computer Science
The University of Chicago

More information about the Haskell-Cafe mailing list