To view parent comment, click here.
To read all comments associated with this story, please click here.
It is not purely due to poor teaching that first year university programming courses have immense failure rates.
It does seem to be beyond most people.
Thereby completely missing the point of my comment.
Thinking algorithmically and structurally should come before learning programming languages. A lot of first year courses assume people already know how to think properly and that programming is a matter of writing code.
What I suggest is that it shouldn't be taught at university first but in high schools and possibly earlier.
Using university failure rates as proof is lazy, and is probably indicative of a mind not suited for good programming either. Programming requires foresight, hindsight and lateral thinking.
I had the same experience in high school comp science as well; students would completely fail to see obvious connections, just as they do in mathematics.
With still higher level languages, this problem will be lessened, but it does seem as though a lack of desire or possible inability to think logically does exist for what may be the majority of people.
If they can't/won't learn algebra, how are they to learn coding?
Bingo! A point utterly missed by the article author and subsequent Ars commenters, who are all too busy debating whether new programmers should be taught Python/Java/C/C++ first.
The huge irony is that Seymour Papert was successfully doing exactly this with 6 and 7 year-olds several decades before the average Arsian was even assembled. LOGO was never about teaching kids to program: it was about teaching them to think, and how to learn, and how to learn how to learn. Gaining the ability to assemble useful programs along the way was merely a side-benefit.
The wonderful thing about LOGO was that it avoided all of the mindless bureaucracy and special-case behaviors so rampant in 'popular' languages. Learners weren't misled into believing type declarations, memory management, conditional and loop statements, and other such tedious details were what programming was fundamentally about. Directing attention to those is like teaching a student every single irregular verb in the English language before explaining what a verb actually is, or demonstrating how the vast majority of logical (regular) verbs operate.
Being essentially a better-looking Lisp, LOGO was incredibly parsimonious: the only core features were words and values, and everything else was expressed in terms of those structures. Thus abstraction, which is the real key to becoming a programmer, is naturally the second or third thing taught: it's simply a matter of defining new words in addition to the words already provided by the language. Neither was making mistakes seen as something to be ashamed of: instead, it was part of the natural learning process: write some words, run them, figure out what's not working and fix it (i.e. debugging), and learn from the whole experience.
Papert ultimately failed, of course, but not due to flaws in his core tools or techniques. Rather, his objectives were undermined and ultimately buried by the heinous politics of education: technophobic teachers fearful on one side; programming priesthood threatened on the other. Programming became a elitist course for special students only; computer education in general degenerated into poor-quality ICT training churning out third-rate Office monkeys.
Remarkably rare qualities in the modern profession, alas. Probably not aided by the silent degeneration of Computer Science into Software Engineering and from there to bottom-of-the-barrel Java diploma mills, but that's another rant...
It is not purely due to poor teaching that first year university programming courses have immense failure rates.
It does seem to be beyond most people.
In France in the first year of university classes are *big* whereas they were 30-50 people in high school, students aren't supervised like they were before, they live alone for the first time, etc in these conditions the high failure rate has nothing to do with intelligence, more with lack of self-discipline|maturity.
But the same lacks that makes them fail that first year of college/university are the same problems once they consider writing a complex program no matter what the language/environment.
Code that do real work tends to be complex, and even the simpler programs still need the programmer to consider how to handle things/events when something goes wrong with inputs/hardware/communications.
A guy at my school began his Australian undergraduate medical degree at 15. Despite being in the 99.9th percentile he failed every subject in first year due to immaturity. Luckily he was allowed to re-enroll after two years.
Edited 2012-12-28 06:35 UTC





Member since:
2008-11-25
This seems naive. The average person is far less intelligent than most intellectuals actually realise.
It is not purely due to poor teaching that first year university programming courses have immense failure rates.
It does seem to be beyond most people.