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.
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).
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.
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.
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.
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.
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.
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.
So we blazed our way through chapters 3 and 4.
Chapter 3 discussed strings, lists, "maps", and tuples.
Just peeked in and saw that he was reading chapter 3 himself. :)
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 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!
The books shows examples and suggests using IDLE but we are using ipython instead.
We then went through the first 2 chapters of the book which did a great job of introducing him to operators and variables.
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.
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.
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 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.
My plan is to run it as a course throughout the summer. Calling it the Altman Summer of Code. :)
He recently has been begging to learn again. I recently had seen Python for Kids so thought we'd try some fresh material, though admittedly we never gave Hello, World a chance.
Naturally, I am using Python.
I am teaching my 10-year old son how to program.