www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/09/09/16:45:28

From: lcs AT zk3 DOT dec DOT com
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Teaching a child to program in C
Date: Wed, 09 Sep 1998 19:26:52 GMT
Organization: Deja News - The Leader in Internet Discussion
Lines: 91
Message-ID: <6t6kpq$2gi$1@nnrp1.dejanews.com>
References: <35F56D01 DOT 4BC6 AT erols DOT com>
NNTP-Posting-Host: 206.152.163.42
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

In article <35F56D01 DOT 4BC6 AT erols DOT com>,
  johnfine AT erols DOT com wrote:
> I have a very bright 7 year old who wants to learn to
> program.

Interesting thread (thanks to DJ for pointing it out to
me).  I will be facing this problem in the next few years
myself (so will DJ, even sooner =) so this is a topic I
have already noodled over a few times.

LOGO is very attractive because of its simplicity and
ease of use, and it is also rather subversively powerful.
It can do most anything lisp can do.  But, sadly, it is
old, which means less support from the webworld, and
turtlegraphics are a dead end.  Also, it will be rela-
tively difficult for _you_ to pick up.

C is just plain too weird to start with.  As a language
it is a more-or-less organized flotilla of rules and
exceptions to them kind of wired into a sort of coher-
ency.  It is the lingua franca of the computer world,
but I would not inflict it on a child wanting to learn
to program.  Not unless I were convinced the child
should never touch a computer again.

BASIC is the world standard for introducing people to
programming.  But sadly, even the very latest Basics
still have a tendency to produce brain damage in users,
either because of primitive design, or because of being
totally non-portable - or both.  You might consider
something like bwbasic, which would provide a simple
Basic to learn with, and an interepreter to learn C
from and practice on later.  Stay away from Visual
Basic, it promotes an extreme form of Microsoftitis
from which most children, with their less robust immune
systems, may never recover.

There are other languages to try, to be sure.  Pascal
is fast to learn (and very easy to bring yourself up
to speed with) and you can even hand over a copy of
the P4 compiler source and let them hack with it -
surely an education if ever there was one.  But for
graphics it's right out.  I plan to use it myself
for introducing my own son, however.  Since the entire
system can self-host, and the p-code compiler and
interpreter is only a few thousand lines, it is a
complete small environment for learning and hacking.

For graphics, the one I'm planning to use, presuming I
don't find anything better in the meantime, is TCL/Tk.
It is a syntactically simple and very orthogonal lan-
guage.  It tends to be a bit verbose, but it is easily
extendable in C and leads naturally to that language
when TCL itself begins to be too restrictive.  It comes
with the Tk widget package, and identical programs can
run with native look and feel on Unices in general and
Linux in particular, as well as under Windows and on
the Mac.  That is the one I'd currently recommend as
having most of the advantages of Visual Basic and many
fewer of the drawbacks.  PerlTk and PythonTK have sim-
ilar advantages, but in my opinion are syntactically
more ambiguous and their versions of Tk frequently
lags behind Tcl's, since Tk is part and parcel of the
Tcl package.

bwbasic, Pascal P4, and Tcl/Tk all provide for a natural
progression into other languages, where the child can
learn the essentially protean nature of computer environ-
ments, how changing things at one level can affect how
things are percieved at another.  Any of them can provide
a software tinker toy where they can learn everything they
will ever really need to know that they didn't learn in
kindergarden.  =)

bwbasic:
http://ftp.digital.com/pub/usenet/comp.sources.misc/volume40/bwbasic/

P4 compiler:
ftp://ftp.cwi.nl/pub/pascal

Tcl/Tk:
http://www.scriptics.com/
--
 .-.    .-. .---. .---. .-..-. |Politics is the art of looking for
 | |__ / | \| |-< | |-<  >  /  |trouble, finding it, misdiagnosing
 `----'`-^-'`-'`-'`-'`-' `-'   |it and then  misapplying the wrong
       My opinions only.       |remedies.             Groucho Marx


-----== Posted via Deja News, The Leader in Internet Discussion ==-----
http://www.dejanews.com/rg_mkgrp.xp   Create Your Own Free Member Forum

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019