Separating Programming Sheep from Non-Programming Goats

A bunch of people have linked to this academic paper, which proposes a way to separate programming sheep from non-programming goats in computer science classes– long before the students have ever touched a program or a programming language:
 
All teachers of programming find that their results display a ‘double hump’. It is as if there are [...]