This deserves a mention of the "Scheme Story" [1] linked in PG's essay "Beating the Averages" [2]. Conceptually similar to "don't patronize".<p>However:<p><i>>Unsurprisingly, I've found that gamification works.</i><p>I suppose it does for plenty of people, but personally I'm not a fan. Saying "don't patronize" and then adding badges, points, and the like as enticements triggers some non-trivial amount of cognitive dissonance in me. Then again, I'm an adult, maybe it provides a structure children need and I've long since lost touch with that.<p>But a deeper problem with it is that to gamify something you have to measure it exactly, you get more of what you measure, and it's all too easy to measure the wrong things (or even to measure the right ones but still have undesirable untintended consequences).<p>It strikes too much of teaching to the test, which isn't the best way of cultivating creativity and innovation in students. Students will optimize for that gamification system, instead of optimizing for depth of understanding and creativity and, perhaps, self-efficacy in real world unstructured situations.<p>Which also begs the question, when teaching young kids, should we be focusing on drilling them in a body of knowledge, or first developing a hacker mentality - curiosity, resourcefulness, and determination to figure this thing out and make it do what you want?<p>In that light, I find the recent Wired article on the "radical new teaching method" [3] of just giving kids computers and seeing what they do with it much more interesting.<p>It's well documented that children pick up foreign languages much quicker than adults by mere exposure, might it be the same for computer languages?<p>How about try giving the class a bunch of Chromebooks w/ a terminal app and SSH, and their own AWS t1.micro, and see if they can figure out how to set up a website, using whatever means they're able to (even Amazon's excellent documentation).<p>Get a static site up, then build on it from there - HMTL -> CSS -> JS -> backend whatever.<p>Web development is not exactly hardcore programming, but few things are as exciting and captivating as seeing your own website on the Internet for the first time, and the combination of that plus the relative ease of figuring it out would be perfect for 9-13yr olds, I think.<p>[1]: <a href="http://www.trollope.org/scheme.html" rel="nofollow">http://www.trollope.org/scheme.html</a><p>[2]: <a href="http://paulgraham.com/avg.html" rel="nofollow">http://paulgraham.com/avg.html</a><p>[3]: <a href="http://news.ycombinator.com/item?id=6553155" rel="nofollow">http://news.ycombinator.com/item?id=6553155</a>