We often hear about “teaching kids to code” (see GNOME’s Coding Education Challenge, for example) and I’ve been thinking about what we might mean by that.
From my point of view, the pedagogical goals of teaching kids to code should be about helping them acquire important general skills, such as:
- thinking analytically and algorithmically: break down a problem into individual steps and plan how those steps might be taken to get the result that you want;
- iterative problem-solving: start with a rough, buggy approach to the solution and gradually test and refine it;
- better understanding of an area of knowledge: for example, experimenting with the LOGO language was a much better way to understand deeper mathematical concepts than rote memorisation.
As I was considering this a few days ago, one thought came to my mind: “and what if we taught them to design?”
In other words:
What could be the pedagogical goals of teaching kids to design?
What important skills would they (hopefully) acquire?
I have some intuitions but no definitive answers yet. I’m writing about this here in the hopes that people might find it an interesting question to ponder. If you know good resources on this area, I would be thankful if you could share them.
(This topic was prompted by an ongoing re-read of Seymour Papert’s “Mindstorms”, a great book about the LOGO language and about education in general.)