[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: My First Computer
Lee Hart wrote:
>> What does a computer need to be a great learning tool? One that can
>> capture a person's imagination; make him/her *want* to learn more?
>> Here are some ideas:
>>
>> 1. It needs a built-in easy-to-use programming language.
>>
>> - some version of LOGO (for very young pre-literate kids)
>> - some version of BASIC (for older kids)
>> - source for the BASIC and LOGO, written in a better language
>> (like C?), so they can be studied, extended, and modified
Glen wrote:
> I would have a totally different opinion on this. I'd like to hear
> what you think about it.
> 1- It needs to be Linux on a cheap machine setup to boot into a GUI
> and have all the needed tools ready to go.
The bases are already covered on this. No need to re-invent the wheel.
But, such machines address a totally different need -- that of the adult
expert who is seriously pursuring a career in computers. The people
interested in such machines are a long way up the ladder of computer
science.
What I want to discuss in this thread is what kind of a computer to
build for people at the BOTTOM rung of that ladder. People with
absolutely no experience of any kind with any computers. This frequently
means children, some of who can't even read and write yet.
> 2- I disagree completely that kids should be learning BASIC and then
> they should go into C! The gap between the two is huge. The worst
> thing is that your going to produce about 28 "hack and slash"
> guys per class of 30 and only about 2 that write good code.
BASIC and C should both be there *because* they are completely
different. Each lets you approach problems from a completely different
perspective. Just as you would have a hammer and a saw in your toolbox.
The hammer is easy to master, but limited in what you can do with it.
The saw requires a great deal more coordination and skill to use, but
lets you solve a completely different set of problems.
The "B" in BASIC stands for "Beginners". BASIC is deliberately "dumbed
down" so it is easy for even young children to learn.
Children do not normally think logically. Instead, trial-and-error,
do-what-you-did-the-last-time, and ask-an-authority-figure are the
preferred methods. Only when these methods fail will they resort to
thinking, and trying to figure out a solution logically. They have to
*learn* how to think logically.
When people first start out, their notion of following instructions is
to blindly do the steps in order: 1, 2, 3, 4... No branches, no loops.
Young children even have trouble doing more than 3 steps in order
without making a mistake. This is what you're up against to teach
programming.
Even IF...THEN is complicated at first. Adding an ELSE clause will make
it too complex for beginners to grasp. It takes a while before they are
ready for it.
Likewise, GOTO is about the only method for transfer of control that
will be understood. (IF you hit your brother, GOTO your room). Even
GOSUB is more complicated than most people can handle.
BASIC provides a kind of baby-talk, to get you started on programming as
simply as possible. That's why I think it should be built in to any
beginner's computer. I don't mean Visual BASIC or even old Microsoft
BASIC, which have been encrusted with hundreds of keywords and commands.
They will only encourage you to stick with baby-talk when you should be
growing up to use much more sophisticated languages.
> The number one problem is learning how to program is learning how
> to manage complexity. Anyone can learn how to write a good 60 line
> program but few can write a good 60,000 line program. BASIC doesn't
> have features that allow one to do this-- so that class isn't going
> to teach them anything but how to write a one pager.
And that's just fine. Your "first programming class" is a great success
if the student leaves it able to write a 60-line program. Let him/her
write it in BASIC. Save the higher-level languages for the next class.
Let the student bump into the limitations of BASIC, and so realize the
merits of other languages.
--
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