Read through Dan Grossman's notes and did the homeworks. All in Ocaml. I suppose it's fine to publish these since I never took the course at the uni and this is entirely my personal work.
I forgot which exactly, either https://courses.cs.washington.edu/courses/cse505/12wi/ or https://courses.cs.washington.edu/courses/cse505/12au/