I've been thinking a lot lately about the teaching of programming.
Next year, I'm hoping to teach an online programing course. (Hello future students, if you happen to explore these archives.) I have a good book, which will work well as a textbook. We can follow the chapters and do exercises together.
How can I add to that? What can I do to make the experience more valuable? Social media and some course management software will let me do more than simply say - read, do the exercises, study for the quiz, any questions on the chapter?
I've only taken one formal programming class - in Java, almost ten years ago, and it was very badly taught. Everything else I know I've taught myself or have learned in a rapid-fire workshop or conference presentation. So I don't have lots of traditional experience as a teacher of computer science. But I have taught lots of writing and literature classes, and I've taught digital media. And I love teaching.
Here's my current plan... Let me figure out the arc of the entire semester, first. Where do I want them to be at the end? What do I want them to understand? What do I hope they will discover? What will they be able to make and do?
Once I have those notes down for myself, let me think about the rhythm and structure of the units, the parts that will make up the whole. I want to create some traditions, some questions and processes of thinking that we will return to. I want to layer some ideas, some play, some discussion to extend each topic. I want to have some goofy fun. I want to find some inspiring examples. I want them talking to each other, and creating some projects that they'd never expect to find in a computer class.
So that's what I'm trying for. And the outline and a sample lesson are due online next week.
