She don't like she don't like she don't like
I'm trying to take Emma further into the programming fold (no pun intended). I helped her learn Scheme a while back which was a very good first step for her. It definitely complemented her semantics interest nicely. But Scheme is not exactly a champion when it comes to getting anything real done, so we've been hovering around a few practical languages trying to choose one that I could be happy working on with her. First it was Ruby because as mentioned previously I had this brief hope that I would settle on it as my web-language-of-choice, and I thought we could work on web projects together. But that dream died in my annoyance with writing scripting code on a paper-thin database abstraction and doing lots of redundant tasks. Rails put me to sleep, so it was hard to push Emma to take it up with much gusto. Now we've settled on Objective-C, and I think it's going to be good. At first I just sat her down and made her read the introductory developer docs like a shot of tequila before we wrote anything. That's my preferred mode of learning... like everyone, I'm an "active" learner. But I like to know as much as possible before I become active and learn against a conceptual framework that is cohesive and deep. Apparently Emma isn't that way, and she was complaining rather quickly and itching to write some code. But I couldn't bare to have her write a freaking currency converter, and I couldn't find any cool tutorials. But last night I solved the problem. We're going to work through Essentials of Programming Languages and write our own language interpreter. They teach it all in Scheme, which Emma already knows. We're translating it to Objective-C, so she can learn imperative object-oriented programming on a non-trivial problem and we both can learn about interpreters. It's going to be awesome. I have big plans for our newfound language making skills. And a cool name for our Cocoa-based dream scripting language: Cocaine. Cue the Eric Clapton guitar riff now.