On teaching computing

The difference between knowing the name of something and knowing something

Linda Sandvik
3 min readFeb 12, 2014

In the UK sweeping changes are afoot with the new computing curriculum, and teachers across the country are doing their utmost to prepare themselves for the challenges ahead. We’re now witnessing a gold rush for teacher training, unfortunately some of the materials being used aren’t the most helpful for learning. I have just completed the first week of FutureLearn’s online course for teachers, and I’m not that happy with how it starts.

Week one starts with getting comfortable with the software, before launching head first into glossary of computing terms, drowning the learners in vocabulary:

extract from the glossary

Of course there’s a multiple choice quiz to check the teachers are paying attention, and the teachers are encouraged to discuss how to make this reference manual “stick”, with very little discussion whether the rote learning of terminology and jargon is a good first step. Some struggle with the memorisation task, looking for concrete examples of the terminology, and ways to illustrate them to the class:

I still don’t understand some of the words ☹
Boolean logic and programming language in particular but there are quite a few that need more explanation in simpler, less techy words (if that’s possible)

Does anyone have an example of an algorithm?

I am still not sure of how I would demonstrate a practical example of an algorithm though. Any ideas using scratch?

It reminds me of how I was taught physics in schools. We learnt facts and definitions — If a certain kind of question was asked, I learnt that I should answer “energy”. If another kind of question was asked, I learnt I should answer “inertia” —but I had absolutely no idea what energy or inertia was. I was convinced everyone else knew, because they would answer so confidently, so I never dared ask. As one teacher aptly noticed, learning the vocabulary of an expert doesn’t make you an expert:

Impressive list. I could easily bamboozle all my colleagues with some of these without having the remotest idea what they mean.

Programming is being taught as if it were magic, and students must learn how to pronounce the names of all the spells. Unfortunately for students there is a “difference between knowing the name of something and knowing something”, to quote Richard Feynman:

You can know the name of [a] bird in all the languages of the world, but when you’re finished, you’ll know absolutely nothing whatever about the bird. You’ll know only of humans in different places and what they call the bird. So let’s look at the bird and see what it’s doingthat’s what counts.

Knowing the definition of words does not imply understanding the ideas behind them. I learned to recite definitions, but unlike Richard Feynman, I wasn’t given a deep understanding:

My father taught me to notice things. One day, I was playing with an “express wagon,” a little wagon with a railing around it. It had a ball on it, and when I pulled the wagon, I noticed something about the way the ball moved. I went to my father and said, “Say, Pop, I noticed something. When I pull the wagon, the ball rolls to the back of the wagon. And when I’m pulling it along and suddenly stop, the ball rolls to the front of the wagon. Why is that?”

“That, nobody knows,” he said. “The general principle is that things that are moving tend to keep on moving, and things which are standing still tend to stand still, unless you push them hard. This tendency is called ‘inertia,’but nobody knows why it’s true.” Now that is a deep understanding. He didn’t just give me the name.

I’m not saying that children shouldn’t learn the vocabulary, I just don’t think it’s how to start a computing course. Let them think about breaking down a problem into steps, let them make logic gates with dominoes, let them play with squishy circuits.

The words can come later.

--

--