A few weeks ago, before Christmas, I attended a BostonPHP event on Paper Prototyping. The idea behind paper prototyping is that one builds a model of a piece of software you want to build, out of paper and office supplies, first. Before one does any programming at all, the goal is to make a rough model of the thing you want to build, and then refine that model through testing and refinement until you have a very specific and clear model of the computer program. And then you build it.
My kids built the paper prototype. They were ready to go. So I took them into the computer lab and got them to download the software. Now we’re building the computer program, using Scratch.
And suddenly, I’m teaching computer programming.
I’ve never even learned computer programming. How do you teach something you’ve never learned?
Part of it is coming up with suitable challenges, which the students then have to solve. Here were my first several:
- I’d like you to design a software routine that moves the figure on the screen around when you start the program.
- I’d like you to design a software routine that moves the figure forward when you hit the ‘d’ key on the keyboard.
- I’d like you to design a figure so it will move forward, backward, up and down on the screen.
- I’d like you to program a routine onto the figure so it turns around and runs away.
- Please design a single figure that is capable of doing all the things I just named.
As I walked around the room, I looked over their shoulders to see what they were doing, and I discovered that my classes in logic all those years ago in college were serving me pretty well in predicting which programs were going to work, and which ones weren’t. I also saw that kids were teaching each other — rather than treating the challenge as a competition, they treated it as a joint effort. This is something we want to encourage in our design program, so I was OK with it.
But ultimately, it’s clear that I need to learn a lot more about programming, and not just in Scratch. what resources are out there for teachers? Particularly teachers who are starting a program almost from level 0?