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?"
Permalink for comment 546541
To read all comments associated with this story, please click here.
RE[3]: Programming for all
by hhas on Fri 28th Dec 2012 20:08 UTC in reply to "RE[2]: Programming for all"
Member since:

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