I’m a parent. I sit through dance practices, music rehearsals, gymnastics lessons and (in the past) swimming lessons. This leaves me with a lot of time to think (or, if I can find a table, mark).
In particular, I like to see and reflect on how other people teach – especially those who aren’t in a school environment. And increasingly, I find myself comparing programming, as a discipline, to swimming.
Traditional teaching tends to be linear. So I might teach students about variables, then inputs & outputs, then if statements, then loops, then arrays and then file handling. I can picture that in my head like train route – but I don’t think that’s right.
When kids first start swimming lessons the teachers don’t teach them everything they need to know about using their arms, then everything about their legs, and then breathing techniques. First, they get them in the water. They get them to play games, to put their face in the water, to move around in a situation that is comfortable (shallow, well within their depth).
Sometimes the youngsters will be tasked with swimming from one side to another. Sometimes they’ll focus on kicking their legs. Sometimes they’ll have to swim with only their arms. Sometimes on their front. Sometimes on their back. Each lesson will include a bit of this and a bit of that, reinforcing each element a little at a time. It’s anything but linear.
In the same way, I’m starting to think of programming skills in a radar chart. The students start at the centre, with no skills in any particular area. Over time they get a bit better with dealing with variables, then a bit better at dealing with conditionals, another time getting better with loops.
I can see it in my mind as a time lapse animation, the graph flexing in different directions, occasionally even contracting, but generally spreading further and further from the centre.
It’s going to take a bit of work to turn that image in my head into a curriculum, and it’s going to be a case of tweaking rather than revolutionising my practice, but it seems to work for me as a big picture to work towards.