Travis started an Introduction to Programming class at his high school this semester. I'm quite pleased about that as to-date he has shown little interest in how software is created. I got to meet his teacher at the high school's Back-to-School night, and asked her what she would be covering. They're starting off with some "database" stuff using MS Access, and then, surprisingly, moving into C++, before moving into the realm of drag-n-drop programming with Visual Basic.
I'm really quite pleased about the C++ aspect. I question whether or not it is a good first language, but Travis should learn some good foundational skills working with it.
A while back I was reading
Geek Dad and he posted an entry about a newish language called
Processing I took a look at it because he wrote a about how it can be used to create computer art. One of Travis's interests is graphic design, so I passed the link on to him. I also sent him the link to my own
Conway's Life program.
Saturday I took some time to make sure there were a recent versions of
Python and
wxPython installed, along with Cody Precord's very capable
Editra text editor (written using Python + wxPython).
Travis sat down with me at the family iMac and I walked him through running life.py, and loading it into Editra. It wasn't long before he was digging through the code and making some minor changes, "how do I change the colours?" "what happens if I change the grid size?" "Look at what I did mom!"
We talked about classes, and the meaning of "self" in python code, and briefly touched on some of the wxPython. Feeling I'd tapped out the depth of that avenue of conversation as I didn't want to get too deep into programming concepts yet, I walked him through downloading Processing, installing it and running it for the first time. We then did some pair-programming as he worked through the very unique Processing "Hello World" tutorial.
Then it was time to look at some of the sample code, and then more and more questions came and we started learning this new language together, experimenting with time delays, and programmatically changing the colours of lines that were drawn. Processing while based on Java, provides almost instant feedback (no compile step), and you get to see the results of your labour immediately. I've never been a fan of Java, but Processing makes tinkering with code, so enjoyable, I will be more than happy to spend many more hours "sketching" with Travis.