This semester there is an exciting new course being taught at Stanford University, CS 240h: Functional Systems in Haskell. It's being being taught by both David Mazières and Bryan O'Sullivan. I'm TA for the course though so it isn't all sunshine and rainbows.
If having monads described as: A programmable semicolon is more intuitive then talking about how they: generalize closure operators on partially ordered sets to arbitrary categories, this is the course for you! We won't be covering semantics of programming languages. We won't be covering abstract math. We will be covering how to effectively use and understand Haskell as a systems language.
The course home page can be found here and Bryan maintains a Github mirror of all the material here. There are no video recordings of the lecture at this point as we aren't in a room with the facilities unfortunately. If the course is a success and continues in the future we will look to get recordings or maybe something like the Stanford Engineering Everywhere project.