Teaching Programming in Every Subject

Thanks to Erin Wilkey Oh for inviting me to cross-post this from my blog.

DML 2012, March 4, 2012

I gave an Ignite talk (20 slides that auto-advance every 15 seconds = 5 minutes total) yesterday at DML 2012. My topic was “Teaching Programming in Every Subject” which was on one level about cross-curricular integration, and on another level about how programming is a great model for how to work on any problem. Just now, I realized that Jasper Johns also knew the secret:

Do Something

He was talking about how to make art, and I think the advice pretty much applies to anything. But Papert is the one that I give credit to nailing down the connection between programming and an iterative approach to learning. In my talk I quoted from his book Mindstorms:

“[M]any children are held back in their learning because they have a model of learning in which you have either “got it” or “got it wrong”. But when you learn to program a computer you almost never get it right the first time. Learning to be a master programmer is learning to become highly skilled at isolating and correcting “bugs”.”

I’ve written and talked about the significance of this connection before. And I wasn’t the only Papert fan in the house: both Rafi Santo and Henry Jenkins referenced him in their Ignite talks as well. All of which lead to the following observation (via Twitter):

I think videos of our talks will eventually be posted [update: now posted], but for the time being here are examples of student work on the three projects I discussed:

1. Shakespeare vernacular translations and stage directions, with recorded dialog
2. Regular polygon drawing
3. Age of Exploration Adventure-style games, and the assignment details

I’d love to find more creative approaches and projects for teaching CS and other subjects at the same time!