07 September 2012

Learning to program

So a bit ago I found this piece on Coding Horror about a fascinating paper demonstrating that the ability to program software depends upon an essential knack ... and that, stunningly, you can easily test for that knack.

It is as if there are two populations: those who can [program], and those who cannot [program], each with its own independent bell curve. Almost all research into programming teaching and learning have concentrated on teaching: change the language, change the application area, use an IDE and work on motivation. None of it works, and the double hump persists. We have a test which picks out the population that can program, before the course begins. We can pick apart the double hump. You probably don't believe this, but you will after you hear the talk.

Now via Gretchen Anderson I learn that Estonia is planning to teach programming to primary school kids starting in first grade. The big question in my mind is whether catching kids early enough will inscribe that talent into all of them. And if so, what are the implications for cognitive development?


Dysmorphia said...

It's not fair to say they proved it depends on a knack. In 2006 they showed their test had some predictive ability. In 2008 they failed to reproduce the predictive ability of their test http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper3.pdf

The idea that there is a knack seems to fit the intuition of computer science teachers in colleges, but these papers do not prove it.

Jonathan Korman said...


That's a great find. I confess that my own intuition was that the knack was not quite so essential as that, but I had found the earlier paper persuasive. I'm glad to have the link to the later work which suggests otherwise.