Teaching Children Programming and Linux
D. Hugh Redelmeier
hugh-pmF8o41NoarQT0dZR+AlfA at public.gmane.org
Thu Jul 17 14:31:01 UTC 2008
| From: jing <gargamel.su-Re5JQEeQqe8AvxtiuMwx3w at public.gmane.org>
| I personally started programming around grade 3 or 4 on BASIC. I know
| that lots of people hate that language; and I personally came to hate
| that language too. Actually my elementary school had Apple computers
| and we played with LOGO way back when I was in 1st and 2nd grade but I
| didn't realize it was "programming".... it was just some arbitrary
| game. Playing with BASIC was what made me realize that computers
| followed commands and I can structure commands to make it do stuff.
I've been on the other side of this kind of experience. Warning: this
was quite some time ago.
I think Logo is a great idea. It is clean and simple and powerful.
It is actually a variant of LISP. It is well thought out for the very
purpose we are talking about. It has had years of folks using it for
this purpose and building up teaching material. LCSI's Microworlds
might be the highest expression of the "constructivist" approach.
One of the two designers of the language, Seymour Papert, was even a
student of Piaget! He has written several exciting books about his
constructivist ideas ("Mind Storms" for example).
But my son didn't think Logo is real. He preferred BASIC because it
was. Grrr. (Later, I actually did serious paid system programming in Logo
so I think that proves it is real.)
Smalltalk was designed for kids and inspired by Logo.
I think that the turtle, in all its instances, is a great idea. It
gives kids a tool to do things that could matter to them. There need
to be a bunch of gadgets that are just as compelling. For some kids,
Apple's Hypercard was appealing. Lego Logo (a motorized Lego set
controlled by Logo) was very interesting to kids in our elementary
school when properly supported (by Kadge, my wife).
As far as when kids might get interested, Piaget would have something
to say about this. It is funny that Papert seems to ignore this. But
Piaget was wrong about my kids.
As far as I can tell, Logo has remained small in the education system.
The system has mostly retreated from the idea that programming could
be a universal tool like mathematics. I think that this is very sad.
Most real programming languages have way too much arcane stuff to
learn for this purpose. Radical subsetting is possible but there are
no universally agreed upon or supported subsets. Ric Holt and others
tried this at the U of T 30+ years ago: SP/K was a series of subsets of
PL/I. They were technically quite successful but SP/K didn't take
over the world.
It is important to remember that the quality of a language
implementation may matter as much as the language itself. Logo on the
Atari 8-bit series was way better than Logo on the Atari ST series.
We had both in our house and we always used the 8-bit, even though the
hardware was laughably inferior.
| At around grade 6 or so I realized that BASIC was retarded(*) and what
| I needed was a closer relationship to the hardware. I didn't know
| about Linux at the time (still on DOS) and couldn't afford a compiler.
| So I started planning out and writing my own assembler programs (.COM
| files, for those of you that remember) using an old DOS program called
I've barely used MSDOS. I was under the impression that if you were
writing .com files, you were writing in machine language, not
assembler. Isn't that all debug.exe allows you?
I wrote an editor/assembler/debugger/etc. program for the Intel 8080.
(On my Altair it fits in 7k of EPROM and self-hosts). My daughter and
I wrote a small program in Turbo Pascal and then the same thing in
assembler. This was at her initiative and she seemed to really enjoy
seeing what really went on at a lower level from what she had been
using. Being able to step through the code with the debugger was
The Toronto Linux Users Group. Meetings: http://gtalug.org/
TLUG requests: Linux topics, No HTML, wrap text below 80 columns
How to UNSUBSCRIBE: http://gtalug.org/wiki/Mailing_lists
More information about the Legacy