I am teaching my 10-year old son how to program. ---- Naturally, I am using Python. ---- I started with [Hello, World](http://www.amazon.com/Hello-World-Computer-Programming-Beginners/dp/1933988495/ref=sr_1_1?ie=UTF8&qid=1370214590&sr=8-1&keywords=Hello+World) two years ago but his attention span wasn't there yet. ![hello-world.jpg](/media/51/hello-world.jpg) ---- He recently has been begging to learn again. I recently had seen [Python for Kids](http://www.amazon.com/Python-Kids-Playful-Introduction-Programming/dp/1593274076) so thought we'd try some fresh material, though admittedly we never gave Hello, World a chance. ![python-for-kids.jpg](/media/52/python-for-kids.jpg) ---- My plan is to run it as a course throughout the summer. Calling it the *Altman Summer of Code*. :) ---- I had a Mac Book Air in my desk that I wasn't using since I upgraded to a Mac Book Pro back in December. As an added incentive to keep him interested in a long term goal (long term for a 10-year old being 3 months), if he finishes the book and "passes" my review, he will get to keep the Mac Book Air he is using to learn on. ---- We are mostly going through 1 chapter of the book per week. Some weeks we might do 2 chapters, other weeks, I will augment with experience from my own career and knowledge. ---- I'll plan to post insights, things that work well, and challenges in this stream. Eventually I plan to post more coherent collections of thoughts in some blog posts. ---- Today we started with my introduction of what computers are, input/output, and the role of software in bringing life to otherwise dumb collections of electronic chips. ---- We then went through the first 2 chapters of the book which did a great job of introducing him to operators and variables. ---- The books shows examples and suggests using IDLE but we are using ipython instead. ---- Just offered to let the kids stay up late for a movie. He asked to sit in dining room and play in the shell instead. Love it! ---- He has found it easier to process if I read the chapters aloud to him while he is at the computer. Maybe he is more of an auditory learner than I am. It actually was pretty cool as I was able to interject some of my own bits as we went along. ---- Just peeked in and saw that he was reading chapter 3 himself. :) ---- So we blazed our way through chapters 3 and 4. Chapter 3 discussed strings, lists, "maps", and tuples. ---- I was disappointed by the use of the term "map" instead of "dict". The author does make a small mention that "dict" is another name for "map" but I found it very confusing for me. I ended up just explaining to my son that most developers use the term "dict", though both terms are correct, and we just used "dict" in our conversation. ---- The string replacements, adding different items to lists, and understanding that you are adding objects to a list, including other lists, took a bit of discussion and tinkering but he "got it" in a single session, which was tested later by me quizzing him by having him do things in the shell. ---- The book suggests people use IDLE and examples refer to IDLE but I have opted to have him use ipython for the shell and Sublime Text 2 for editing text when not tinkering in the shell. He is mostly in the shell at the moment. ---- Chapter 4 was short and quick but loads of fun as we played with Turtle. It was a good break from the low level bits and he got a big thrill stringing together commands and watching things draw on the screen. ---- He asked earlier today if I minded if he tried to read ahead on his own! No, son, by all means, I told him. Chapter 5 started with the logic constructs, if/else, etc. He read through the entire chapter himself doing the programming puzzles at the end without asking me a single question, using the shell to figure things for himself. Love it. ---- So shortly after my last post from last summer, my son lost interest in programming about as quickly as he clamoured for me to teach him. ---- At first I thought it was my style as a teacher or the materials we were using. It might be one of those, but as I have observed him over the past few years, he tends to just be fickle like that. For example, he has had an on again / off again love affair with golf during that span (mostly recently not interested in the game after having an incredible round, his best ever, just a month ago). ---- Now, my daughter wants me to teach her. I have been apprehensive about it though as I am concerned if I did something wrong with Ben that I might spoil it for Clare also, and I do not want that to happen.