Thanks. I made a few minor changes based upon your feedback. I also didn't like my discussion of the "fat comma", but I was struggling between how I would normally write the code and how I would write it so a beginner can understand it. That's the simplest way that I came up with, aside from the "fat comma" distraction. It did bug the heck out of me, though, and you're quite right to point it out.

And as for why I don't explain each lesson in such a way that the code can stand on its own: each lesson would take five times as much space and be that much longer to write. And how far back would I go? In order to make this reasonable, I went a fairly standard pedagogical route and assumed that for each lesson, the student had X amount of knowledge coming in and if they get to a particular lesson, anything they didn't know is either explained in a previous lesson, falls under the rubric of "required knowledge to study this" or I have links and suggestions for where they can acquire the knowledge. I'd love to have each lesson stand on its own, but it would just be too much work.