All teachers of programming find that their results display a ‘double hump’. 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.
Roughly 50% of students who attempt to learn programming can’t — ever.
A 13-question quiz that tests for the ability to “build consistent mental models” appears to predict success at programming with over a 2:1 odds ratio. This is an even better predictor than the more intuitively plausible proxies for success at programming like IQ tests or even “past programming experience”!
So how did first-year CS students perform on this test?
- 44% of students formed a consistent mental model of how assignment works (even if incorrect!)
- 39% students never formed a consistent model of how assignment works.
- 8% of students didn’t give a damn and left the answers blank.
Additional replications comparing the 13-question test to future class performance at 5 other institutions has produced less crisp results. More research should be done to help understand the degree to which being able to “build consistent mental models” is easily testable and how predictive it is of future success in programming and other life endeavors.
Note: Speaking of consistency, 44% + 39% + 8% = 91%. Where did the other 9% of students in the study go?
See on arstechnica.com