Linked by Thom Holwerda on Thu 27th Dec 2012 10:19 UTC, submitted by anonymous
General Development "Computers are ubiquitous in modern life. They offer us portals to information and entertainment, and they handle the complex tasks needed to keep many facets of modern society running smoothly. Chances are, there is not a single person in Ars' readership whose day-to-day existence doesn't rely on computers in one manner or another. Despite this, very few people know how computers actually do the things that they do. How does one go from what is really nothing more than a collection - a very large collection, mind you - of switches to the things we see powering the modern world?"
Thread beginning with comment 546417
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: Programming for all
by woegjiub on Thu 27th Dec 2012 12:15 UTC in reply to "Programming for all"
woegjiub
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.

Reply Parent Score: 9

RE[2]: Programming for all
by kwan_e on Thu 27th Dec 2012 12:36 in reply to "RE: Programming for all"
kwan_e Member since:
2007-02-18

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.


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.

Reply Parent Score: 3

RE[3]: Programming for all
by woegjiub on Thu 27th Dec 2012 13:00 in reply to "RE[2]: Programming for all"
woegjiub Member since:
2008-11-25

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?

Reply Parent Score: 6

RE[3]: Programming for all
by Kochise on Thu 27th Dec 2012 13:43 in reply to "RE[2]: Programming for all"
Kochise Member since:
2006-03-03

Otherwise we would all be fluent lispers...

Kochise

Reply Parent Score: 3

RE[3]: Programming for all
by hhas on Fri 28th Dec 2012 20:08 in reply to "RE[2]: Programming for all"
hhas Member since:
2006-11-28

Thinking algorithmically and structurally should come before learning programming languages.


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.


Programming requires foresight, hindsight and lateral thinking.


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...

Reply Parent Score: 4

RE[2]: Programming for all
by renox on Thu 27th Dec 2012 13:44 in reply to "RE: Programming for all"
renox Member since:
2005-07-06

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.


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.

Reply Parent Score: 3

Earl C Pottinger Member since:
2008-07-12

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.

Reply Parent Score: 3

RE[3]: Programming for all
by unclefester on Fri 28th Dec 2012 06:35 in reply to "RE[2]: Programming for all"
unclefester Member since:
2007-01-13

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.


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

Reply Parent Score: 2