(no subject)
Jul. 17th, 2006 11:47 amThere'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.
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.
no subject
Date: 2006-07-17 07:05 pm (UTC)By the way, what is the url for the paper that you're reading?
no subject
Date: 2006-07-17 07:16 pm (UTC)"Programmers, who on the whole like to point and click, often expect..."
Uh, no. I abhor pointing and clicking, thank you. It is the slowest way I can interact with my computer. So, let's edit up that sentence:
"Programmers who like to point and click often expect..."
no subject
Date: 2006-07-17 07:19 pm (UTC)no subject
Date: 2006-07-17 07:19 pm (UTC)(Fixed)
no subject
Date: 2006-07-17 07:24 pm (UTC)no subject
Date: 2006-07-17 10:29 pm (UTC)You might also look at the Joel on Software rants. He points to pointer abstractions. Others point to the 'N' in Myers-Briggs.
Fun fun.
no subject
Date: 2006-07-17 10:32 pm (UTC)no subject
Date: 2006-07-18 12:17 am (UTC)no subject
Date: 2006-07-18 02:54 am (UTC)And their methodology is --- how to put this --- crappy. "Anonymisation introduced difficulties, because some students had forgotten their nicknames." That inspires confidence.
They also just have weird opinions. Everyone I know thinks (anecdotally) that programming skill correlates with high spatial ability. Not saying they're right, just saying that this "folk-wisdom" about programming skill being a mysterious unknown isn't anything I've ever heard. And I totally guessed their punchline about the "consistent" group being the high scorers.
no subject
Date: 2006-07-18 05:24 am (UTC)"Many of their subjects tried to use meaningful names for their variables, apparently hoping that the machine would be able to read and understand those names and so perceive their intentions."
:)
Our VP of Development writes emails occasionally that fall just *this* side of snark - some of the lines in this study could have come from him