July 17th, 2006

robot president monkey

(no subject)

There's a lovely paper I'm reading about teaching programming, and how you can tell who'll get it and who won't, and generally the ignominious history of trying to teach people who can't program to program.

Those of you who've talked to me on this subject before are aware of my "classes won't teach people who can't program to program" stance, and several related ones. The paper found remarkably similar results, though only in first-year programming classes. After that you've already weeded out the ones who haven't already got several key concepts in their minds.

A lovely little excerpt from the background in the paper:

Programming teachers, being programmers and therefore formalists, are particularly prone to the ‘deductive fallacy’, the notion that there is a rational way in which knowledge can be laid out, through which students should be led step-by-step. One of us even wrote a book [8] which attempted to teach programming via formal reasoning. Expert programmers can justify their programs, he argued, so let’s teach novices to do the same! The novices protested that they didn’t know what counted as a justification, and Bornat was pushed further and further into formal reasoning. After seventeen years or so of futile effort, he was set free by a casual remark of Thomas Green’s, who observed “people don’t learn like that”, introducing him to the notion of inductive, exploratory learning.

There is a vast quantity of literature describing different tools, or as they are known today Interactive Development Environments (IDEs). Programmers, who on the whole like to point and click, often expect that if you make programming point-and-click, then novices will find it easier. The entire field can be summarised as saying “no, they don’t”. It would be invidious to point the finger at any examples.

I *like* the authors' style. But I would.