[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: My First Computer (was Computing Editorial)



Glen wrote:
> I would recommend python as a language that is very well suited to
> beginners.  Perl (which is very similar) is the runner up.

Good heavens! You think they are *easy* to learn? Both are very large
and sophisticated languages, that require substantial computer resources
to run. There are so many choices of how to do things that I think a
beginner would be totally lost.

Might I suggest that you try sitting down with someone who has never
programmed any computer, and watch what happens when they try to learn
one of these languages? For example, ask them to figure out how to get
two numbers from the user and print their sum.

We all suffer from the Professor's paradox; we know so much that it's
hard to remember what it was like when we *didn't* know it. "It's so
obvious to me... how can these students be so stupid that they don't get
it?"

> Well I think one big thing is that you want to avoid compilers because
> you will have 90% of the "questions" be the same: "why doesn't this
> compile". Programs that don't compile frustrate adults and children
> alike.

Absolutely!

> Basically you need a language that has distance from the hardware.

Quite the contrary! When you're on the bottom rung of the ladder, you
are very close to the hardware. It is essential that you understand it.

> I don't know a lot about kids. I'll be the first to admit.  So I don't
> know the right age to start programming.

Learning programming is all about learning to think. To learn to think,
you have to think about something. Even the very youngest children are
learning to think, every day and in everything they do. So, they are
learning to "program" their siblings, their parents, their world. "How
do I get people and things to do what I want?"

Teaching them programming skills is giving them a systematic basis for
rational, logical thought. Cause and effect, doing things in order,
counting, repeating until you get it right, making good decisions, etc.
These are essential concepts needed in programming AND in real life.

The world of the computer is more predictable and repeatable than the
real world. Thus, it is the perfect "playground" to learn and practice
logical thinking. The computer is absolutely predictable, endlessly
patient, it never criticises or scolds, and there are no real penalties
for errors. Thus it (ought to) be the perfect tool to teach thinking. 

To your point on computers in education; it is of course also possible
to program computers to teach BAD thinking. Rote memorization instead of
problem solving. Entertainment instead of intelligence. Violence instead
of cooperation. In fact, it's probably easier (which is why it is so
common)!
--
Lee A. Hart                Ring the bells that still can ring
814 8th Ave. N.            Forget your perfect offering
Sartell, MN 56377 USA      There is a crack in everything
leeahart_at_earthlink.net  That's how the light gets in - Leonard Cohen