Recently I started looking into F# again. F# is based on the ML programming language, so I started checking it out too. That’s when I came across the CSE341 Programming Languages course taught by Dan Grossman. The course materials have graciously been made available online. I watched a couple of the videos and got hooked.
It is rare to come across teaching of this quality in any topic, let alone programming. Grossman expertly guides you through the language by covering foundational material, then layering on new concepts using concise, understandable language. Each new language feature is covered by addressing the syntax, type checking, and evaluation rules. The idioms of the language and style critiques are also addressed. The videos are short and digestible. Several times I’d finish a video then think, “Ehh…I’ll just watch one more” and end up watching several.
I’m about halfway through the videos, so I’ve only seen the ML stuff (later ones cover Scheme and Ruby). Grossman does a fantastic job showing off the elegance of ML, types, and functional programming. If you are interested in grokking functional programming with a statically typed language, I highly recommend going through the course material.
Note: Grossman teaches similar (the same?) material in a Coursera course called Programming Lanuages, but there aren’t any future sessions listed.
UPDATE 09/25/2016: There’s a new session of the course starting October 17th. Enrolled!