Ask Slashdot: Software for Youngsters?
Maniacal asks:
"I was wondering if there were any games or
software programs out there that could keep
a kid's interest while teaching him or her
the fundamentals of programming. There are
plenty of learning games out there but I
haven't seen any that cover this area."
Maniacal continues...
"When I was a kid in the 80's, the only way to get your computer to do anything was to write programs yourself. So, with BASIC book in hand, I spent hours upon hours out my eyes and teaching myself to program. Computers today have to many things to keep a child interested so that type of exploration is gone. If there aren't any such programs available, then any suggestions about a good language to start with, basic books that a 6-10 year old child could understand, and/or inexpensive compilers would be appreciated."
I remember programs like Logo (which could be considered a language, too) and games like Zork which kept my interest in computers when I was growing up. One concern is that today's games are more distracting, focusing on the environment provided by the game, as opposed to interesting, which focuses on not just the game, but on things external to it as well. Any comments?
"When I was a kid in the 80's, the only way to get your computer to do anything was to write programs yourself. So, with BASIC book in hand, I spent hours upon hours out my eyes and teaching myself to program. Computers today have to many things to keep a child interested so that type of exploration is gone. If there aren't any such programs available, then any suggestions about a good language to start with, basic books that a 6-10 year old child could understand, and/or inexpensive compilers would be appreciated."
I remember programs like Logo (which could be considered a language, too) and games like Zork which kept my interest in computers when I was growing up. One concern is that today's games are more distracting, focusing on the environment provided by the game, as opposed to interesting, which focuses on not just the game, but on things external to it as well. Any comments?
Each games comes with a built-in programming language (an object-based one) that allows you to program the "robots" in the game. There are also many built-in elements.
My son learned to program ZZT and MegaZeux by himself - by reading the help and by reading other people's code. He was 9 when he started.
I had tried LOGO with him, but he quickly lost interest - it took too long to do anything beyond pretty spirals.
ZZT and MegaZeux run on DOS (although a MegaZeux is being ported to Linux). Here are some links:
www.zeux.org
My son's Web page
...richie - It is a good day to code.
Here are links for:
RealTimeBattle
GNU Robots
Both run under Linux, both are GPLed.
Doug Loss
This is interesting, because I know at least one other person who was in the same position. She visited her local library and looked for books, and found a few that covered BASIC and Pascal.
IMO, something like Pascal or Turing would be the best choice for a first language, as they are well structured, have straightforward syntax, and give access to most of the features that are actually used in real programming. Once they have the fundamentals down, the student could move to something like C/C++. Starting with C would IMO be a bad idea because the syntax is cryptic as all heck to a novice. Someone who doesn't know how to program can still look at a Pascal or Turing program and see what most of it does. Syntax aside, the three languages mentioned above are similar in structure, so there shouldn't be much of a problem moving to C/C++ after the fundamentals have been grasped.
IMO, Scheme/LISP would be a less than ideal choice. I've used Scheme, and while it is neat and represents an interesting model of programming, IMO C/C++ would be more useful if the person actually wants to do professional programming. IMO the algorithmic model of C/C++ style languages is easier for a novice to grasp than that of LISP/Scheme, also.
BASIC, from what I've seen, is slowly mutating to resemble Pascal. However, it's still easy to write spaghetti in BASIC, while you at least have to try a little harder in Pascal/Turing. I just don't see any advantage to it.
For Pascal vs. Turing, the decision is pretty arbitrary as they're nearly identical. I've written in both, and if you add/remove semicolons and make minor tweaks a Turing program will compile in Pascal or vice versa. Turing does have good multithreading support, OTOH, which Pascal didn't the last time I checked. OTOH, Turing is a lot more reluctant to let you do things like pointer aliasing and messing with assembly code, port i/o (on the x86), etc.
As far as good books are concerned, I can't name any offhand. Ye (new) Olde K&R ANSI C book is decent as a C reference but not good as a tutorial. The local library seems to be a good resource, as my friend did manage to find books that were of use to her.
Origin used to sell a game called "Omega" which was, basically, a
BASIC-ified version of crobots, with rather nicer graphics, and
some Origin-programmed enemies you could defeat.
You also had a limited budget with which to build your cybertank
(until you got to security level 10 and had an infinite budget),
forcing you to decide whether to have faster weapons,
more armour, repair kits, or whatever.
It came with a library of pre-written routines to do things like
follow left-hand walls, or whatever, which you could use
until you wanted/needed to modify or re-implement them entirely
to suit your own needs.
No connection with the roguelike game of the same name, of course.
There's crobots itself, of course.
-- You've got to get a hat if you want to get ahead.