The best exposition I've found for demystifying category theory is the first few chapters of Paolo Aluffi's Algebra: Chapter 0 [1]. The central emphasis is on universal properties, which I see most treatments for beginners de-emphasize or ignore (as these slides do). From my experience, universal properties are the main tool for unifying and abstracting concepts into the language of categories. Aluffi uses category theory to unify the treatment of groups, rings, modules, linear algebra, and then goes on to more abstract category theory. I have also written a bit on this [2], regrettably choosing ML as the language of implementation.
I was going through your stuff [2] today and developed a much better intuition for the universal property and initial/final-ness than I had previously (from the beginning of Awodey, Mac Lane, etc), so thanks!
j2kun's site [2] is highly recommended for anyone looking for a foothold into CT. It begins with a brief look at the universal property of free monoids (by implementing lift for lists), followed by various constructions (many in the category of Set). It (currently) ends with a discussion of map, filter, and (the universal property) of fold. Some constructions/proofs are provided in ML (which I've been meaning to get acquainted with (and while "clunky" is better suited than Haskell for the intended purpose, imo)).
So yeah, thanks again! I hope you get time to continue the series...
From my experience, if you don't work through those proofs that are "left as exercise for reader" then you won't ever really come to understand the material. It's working on proofs that gives you the mastery.
It's like learning music theory without ever composing and performing. It's like being a eunuchs in a harem; knowing how it's done, seeing it done, but unable to actually do it.[0] You need to do it to gain any real understanding and/or ability.
It's like reading about programming, but never actually writing programs.
I found "Categories and Computer Science" by R. F. C. Walters to be the perfect complement to Chapter 0 as it's almost entirely proof and example driven.
Firstly, thanks for all your great stuff on Math/Programming, it's been a great source of inspiration!
I would have liked to include Universal Properties, but I decided it was just too much to grasp for one session.
The audience were professional programmers, so there was a strong underlying message of "this is directly applicable to what you do". UMPs have got something important to say about abstraction -- what it means to have only what you need and no more. It just would have popped heads by the time I'd built up to it.
Nothing in principle (I wrote the articles, after all). I just found it to be clunky. In particular, the signature and structure system made it needlessly difficult to express what I thought were simple things. And it was difficult to find resources due to standard ML not being widely used.
[1]: http://www.amazon.com/Algebra-Chapter-Graduate-Studies-Mathe...
[2]: http://jeremykun.com/2013/04/24/introducing-categories/