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.
Thanks for the input!