1 uses Robert Harper's Practical Foundations for Programming Languages (and was taught by him) and 2 uses PFPL plus Benjamin Pierce's Types and Programming Languages. Both courses have lecture notes and readings for each session as well as homework assignments with solutions which ought to make them straightforward to go through on your own.
I found these by doing some Googling and evaluating various forums/Stack Exchange posts; if anyone has any better suggestions I would love to hear them. (I haven't done SICP in depth and now, of course, I'm considering putting this plan on hold and doing SICP instead...)
Thanks for the links -- wish I could take those courses in person.
I haven't found anything like SICP (thus my question), but I feel compelled to mention two great practical repos I discovered yesterday thanks to HN, both of which are teaching me a lot about practical type systems:
Thanks, those are good links too. I seem to recall seeing something similar to the first link, except in Haskell, but I can't seem to find it right now.
I've been looking around for a good way to learn type theory via self-study, and my current plan is to go through these courses on my own:
1) http://www.cs.cmu.edu/~rwh/courses/typesys/ 2) http://ttic.uchicago.edu/~pl/classes/CMSC336-Winter08/
1 uses Robert Harper's Practical Foundations for Programming Languages (and was taught by him) and 2 uses PFPL plus Benjamin Pierce's Types and Programming Languages. Both courses have lecture notes and readings for each session as well as homework assignments with solutions which ought to make them straightforward to go through on your own.
There's also these Type/Category/Proof Theory Foundations videos (with Robert Harper as well): https://www.youtube.com/playlist?list=PL8Ky8lYL8-Oh7awp0sqa8...
I found these by doing some Googling and evaluating various forums/Stack Exchange posts; if anyone has any better suggestions I would love to hear them. (I haven't done SICP in depth and now, of course, I'm considering putting this plan on hold and doing SICP instead...)