[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: My First Computer (was Computing Editorial)
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.
Ruud Baltissen Ruud.Baltissen@abp.nl wrote:
> People with another native language than English have one
> disadvantage: all programming languages I know are based on English.
Not all; for example, APL and machine language, as Holger Petersen and
Paul Schlyter remind us. But most programming languages are indeed
english. That's a disadvantage when a majority of the world's population
doesn't speak english (and, coincidentally, where computer skills are
the most lacking).
So, a language that doesn't require good english is an asset, so a
beginner doesn't have to learn too much at once. (How popular would
computers be in America if you had to read/write some foreign language
to use it? :-)
Roy Exegete wrote:
> A LOGO that does more than just turtles (I know, nearly all did, but
> that's all I ever saw my kids taught in school) and that can compile.
LOGO is great for beginners! Even children too young to read can use it
when the keyboard is marked with icons (forward, turnright, penup,
pendown, etc.) This works especially well when the computer is a
physical "turtle" robot, not a simulation on a screen.
And, LOGO still thrives today. I read the comp.lang.logo list and there
is a lot of very interesting stuff going on. Modern LOGOs are as
powerful as C++ and Java. However, they are no longer simple. It's
become just another language for advanced programming.
Ruud Baltissen Ruud.Baltissen@abp.nl wrote:
> Regarding the language itself: any language is good as long as you
> have a good tutorial and don't need complicated instructions to
> perform something at all.
A good tutorial and lots of examples helps to learn any language. But
the language itself must also be structured to make it easy to learn. It
can't have too steep a learning curve: That's the problem with machine
language; you have to know too much to do even simple things. People get
discouraged and quit before they have learned enough about it to be
useful.
> This is one of the reasons I advise people to start with Basic. A
> simple '10 print "Hallo"' is enough to archive something.
BASIC is good. It is weak for constructing large programs, but great for
small ones. It's a kind of baby-talk for computers. Even young children
can learn it quickly, but will (hopefully) outgrow it at some point and
learn something better.
It has the drawback of being english-oriented, but that is fixable (as
others have pointed out) by keeping the keywords and tokens in a table
that the user can change. A neat aspect to this is automatic
translation; I might write a program in english, email the tokenized
form to a friend in Germany, who LISTs it in german!
I think the big downfall of BASIC is its lack of extensibility. It's
great to start with a minimal set of keywords; but you quickly want more
capability. Adding it with GOSUBs quickly produces a mess. So, I think
what you want is a way to extend the language as you learn, like LOGO
and FORTH.
Way back in 1976, Dennis Allison and the People's Computer Company were
developing tiny BASICs for the early microcomputers. They envisioned it
as a tiny language for kids and learning. Tom Pittman wrote a popular
version that ran on the 6800, 6502, 1802 and other CPUs. It was
structured like an onion, in layers. Your BASIC program was run by the
Tiny BASIC interpreter. This interpreter was written in an Intermediate
Language. The intermediate language was run by an inside interpreter,
written in machine code unique to the particular CPU.
You could extend Tiny BASIC by changing the IL interpreter program. Your
changes would automatically work with any other Pittman Tiny BASIC.
People added I/O commands, PEEK/POKE memory, string manipulation, etc.
This gave you BASIC, but now you had a way to make it extensible in a
structured fashion.
The IL language looked a lot like a machine language, but was a lot
simpler. There are only 40 simple instructions, so it was a "bridge" --
harder than BASIC, but easier than machine language.
So... maybe the way to do it is to have an intermediate language (small
C?), and write LOGO and BASIC interpreters in it. Very young kids start
with LOGO. They move to BASIC, which is more mainstream and has lots
more examples. When they want more power and capability, drop down a
level to C, and add the features they want to BASIC. Eventually, they
will outgrow BASIC entirely and just program in C. Ultimately, they will
drop even one step lower, and go into machine language.
--
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