--- "R. William Gosper" <rwg@osots.com> wrote:
My very bright 13-year-old nephew would like to learn computer programming (from scratch). He's quite familiar with using software,
Dan, there are some kids where the absolutely best place to start would be the console toggle switches and indicator lamps on an ancient mainframe, if you can find a live one in a computer museum, e.g. There are other kids who take best to the opposite extreme, say generic functions (object-oriented LISP). For a certain concrete thinker, I'm planning the following first program: Combine Macsyma's string manipulation functions, especially CARDINAL_STRING (12 -> "twelve") and ORDINAL_STRING (12 -> "twelfth") to make a FRACTION_STRING function (11/12 -> "eleven twelfths"). There are nice opportunities for bugs ("one twelfths", 1/2 -> "one second", 3 -> "three firsts") and features (improper vs proper format, "three quarters"), generalization (RATIONAL_STRING, NUMBER_STRING even taking floats), and finally Robinson Crusoeing one's own CARDINAL_ and ORDINAL_ STRINGs. (Captious: "third", "thirteenth", "twenty third".) --rwg
There's a very nice, nostalgic, computer museum in Mountain View CA. Here's the link, you can go search for your first computer. (Mine was the IBM 650.) But the machines aren't operating, and you can't touch them. http://www.computerhistory.org/ Bill is right about starting with console switches and lights. A PDP-8 might be difficult to get, but something from the Z-80 based S-100 days might be available. The names "TRS-80" and "Cromemco" pop into my mind. Step two would be assembly language, and the Z-80 is just the right processor for that purpose. However, if you're stuck with a PC or Mac, you surely don't want to force its assembly language onto your kid. Then C is the lowest level compiler language, the closest to the machine hardware. For starters, get an old PC and walk your kid through loading it with DOS and Borland C. Let him learn to use the keyboard and command line interface; don't spoil him with mice and graphics interfaces. Gene __________________________________ Do you Yahoo!? Yahoo! Mail - now with 250MB free storage. Learn more. http://info.mail.yahoo.com/mail_250