Remarkable data on computer science education
I hesitated before posting this piece. Is computer science education really a subject in which any result could be of tremendous sociopolitical importance? But, upon consideration, the answer has to be “yes”.
The ability to understand how computer programs work is arguably a central part of a well-rounded modern education, in the same way that people once needed to know a bit about horses. Logically, as a friend of mine once argued, programming should probably be taught sooner than calculus, because it develops the same kinds of analytic reasoning skills but is useful to more people. Perhaps one of the reasons that programming isn’t more widely taught is that (apparently) many students have terrible trouble learning it. Others find it utterly straightforward.
A remarkable little working paper by Saeed Dehnadi and Richard Bornat provides intriguing data which illuminates the underlying cognitive step that is taken by those who can learn to program and missed by those who cannot. It turns out that while this mode of thinking is loosely correlated with general educational achievement, the link is not determinate. Some high achievers cannot program, and some low achievers can. Most remarkably, there are other kinds of abstract analytical tasks where performance is very well predicted by educational achievement. Programming just isn’t one of them.
The article is tentatively titled The Camel Has Two Humps. Be sure to get to the last set of graphs.
It appears that these results should open up an entire new field of research on testing the authors’ proposed explanation, polishing the tests that predict ability to learn programming, and — most importantly — figuring out ways to teach programmatic rule structures to those who do not understand them intuitively.
Carl Gundel Feb 22
This is a point I make on my own blog over and over. http://basicprogramming.blogspot.com
Computer literacy is not just knowing how to start the machine, use email and a web browser, word processing and videogame playing. When personal computers (home computers) first became available the user was thrust into the world of programming as soon at the computer was turned on.
Super BASIC 3583 bytes available.
Ready.
Remember that? You were confronted with programming, and it was a good thing. So many people learned to program. Nowadays what passes for computer education is either basic applications skills (too easy) or Java/C++ as an introduction to programming (too hard).
Whatever happened to hobby programming?
Sam Kaufman Mar 11
I absolutely found this post intriguing, and it has merit, but I want to mention that ‘The camel has two humps’ has been a controversial study in the SIGCSE community, and the only replicative study I know of failed to replicate the results (see http://doi.acm.org/10.1145/1269900.1268845).
pde Mar 11
Hi Sam,
thanks for pointing that out! This is a real danger with this blog: there’s always a chance that the studies we write about look valid, but turn out to be wholly or partially invalid.
In this case, I went looking for criticising citations before posting (this was February 2007) and didn’t find any. The paper by Caspersen et al. was published six months later.