29 April 2007
Science Sunday
Two items of interest:
1. Computer Programming
Are some people wired to be programmers while others aren't? Or is the way programming is taught what makes the difference? Or is the only difference between those who make good programmers and those who don't that the former group understands that programming is very strict and follows the same rules every time, while the latter group doesn't get it?
Separating Programming Sheep from Non-Programming Goats (or vice versa on the animals, as some programmers would have it) at Coding Horror cites a couple of papers positing, in his words, that "most people can't learn to program: between 30% and 60% of every university computer science department's intake fail the first programming course. Experienced teachers are weary but never oblivious of this fact." The authors of one of the papers cited explains the difference between potential programmers and non- by "their different attitudes to meaninglessness."
The authors of the paper claim that the primary hurdles in computer science are:
1. assignment and sequence (putting a value on a labelled container)
2. recursion / iteration (repeating operation over and over)
3. concurrency (analogy for that here)
... in that order.
When a simple (in structure) programming test is given, the results divide the students "cleanly into three groups:
* 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.
"The test was administered twice; once at the beginning, before any instruction at all, and again after three weeks of class. The striking thing is that there was virtually no movement at all between the groups from the first to second test. Either you had a consistent model in your mind immediately upon first exposure to assignment, the first hurdle in programming-- or else you never developed one!"
They go on:
"Formal logical proofs, and therefore programs -– formal logical proofs that particular computations are possible, expressed in a formal system called a programming language -– are utterly meaningless. To write a computer program you have to come to terms with this, to accept that whatever you might want the program to mean, the machine will blindly follow its meaningless rules and come to some meaningless conclusion. In the test the consistent group [i.e., those with a consistent mental model, those presumably with programming aptitude] showed a pre-acceptance of this fact: they are capable of seeing mathematical calculation problems in terms of rules, and can follow those rules wheresoever they may lead. The inconsistent group [presumably sans programming aptitude], on the other hand, looks for meaning where it is not. The blank group [those who left the answer blank] knows that it is looking at meaninglessness, and refuses to deal with it."
Try the sample test question if you want to see where you fall, but most of all, read the fascinating comments!
2. A Call for Science that Matters
Aaron Swartz at Raw Thought asked readers to "post your favorite study -- the one that makes you sit up and say 'wow, this result ought to change everything.' And readers have. Study content varies wildly and includes the evils of free street parking, perception of physical force, the inherent irrationality of humans, the goodness of nuclear energy, the goodness of cities and the larger the better, eradication of child abuse as a way to eradicate all other social ills, the relationship between incompetence and inflated self-assessment, and so on. (As usual, there is also junk offered in the guise of scientific experiment.)
Today I'm into this study on vitamin D and cancer prevention. I'm a little non-objective about it, though, as I always think hanging out in the sun is a good and noble idea.
12:35 Permalink | Comments (0) | Email this | Tags: science, programming, computer science, computers, experiments, studies, math





The comments are closed.