PDA

View Full Version : computer programs for kids


noperf
17th Apr 2003, 03:36
My eleven year old son is daffy for computers. Can anyone recommend a program, etc. that can teach a kid how to write simple computer programs to build games, etc.

Mac the Knife
18th Apr 2003, 02:33
Writing even a simple games program is quite challenging and not the sort of thing to cut your teeth on. Programming is wonderful training in logic for kids (and adults).

I started with a ZX80 and learned most of the rudiments of programming on a Sinclair Spectrum using Basic many years ago. Sounds silly, but all the basics of programming and good structure are there - declarations, conditionals, loops, arrays, system variables, machine code, subroutines, error checking, input modules, IF, ELSE, OR, NOT, THEN, AND, procedure calling, Boolean algebra and so on. And when the Speccy crashes you just switch it on and off again easy peasy. You can still find 'em, though I don't know about the Microdrives.

10 FOR I=1 TO 10
20 PRINT "KEVIN"
30 NEXT I

The first program most people write :) but it teaches about counters and loops...

Micro$haft started with GWBasic, a very primitive effort, but by DOS 5.x had introduced QBasic, a far better implementation. You should be able to find Qbasic.exe and it's few supporting files easily enough (runs fine under 98 and probably XP too) but if you can't, contact me & I can send them to you. I know Basic sounds silly these days, but I'd venture that it is better for learning the cornerstones of programming logic than VBS or Pascal or

{
__{
_____{lisp}
__}
}

Have a look at some of the example programs that come with QBasic like Gorilla or Passages and see that even a simple game needs a good understanding of the logical constructs implicit in any non-trivial program.

Actually, even writing DOS style batchfiles can be an education, but I don't think many people know how to do this anymore even though it's still useful in XP!

What do they use at his school? Maybe they plunge straight into C++ or C# !

Edited to add PS:

Search Google with:
(teach OR teaching) children programming
and there are lots of hits

http://www.kidsfreeware.com/school/study_prog.html has lots of stuff that looks useful.

Ronbmy
18th Apr 2003, 16:29
Have a look at the many online tutorials. Some links are...

http://www.programmingtutorials.com/main.asp

http://alslinks.virtualave.net/

A Google search for 'programming tutorial' will find over 20000 refs. Some of these have fully working example games programs so that your son can see methods of design.

I wasn't too impressed with the keyboard on the zx80 - learned to type on OLD remington machines - so I opted for the Commodore range, VIC20 & C64, but all of the machines could be fun to learn on. Given the small amount of memory available you had to be careful with your programming style. I got fed up and switched to assembler.

I hope you find something useful in here.

terryJones
18th Apr 2003, 22:21
Somewhere I have a copy of 'BBC Basic' for the PC. It did all that the old Beeb did, and was fun. I will look for it later, and post if I find it.
Ronbmy
That was on of the beauts of BBC basic. You could write in basic, then revert to assembler for anything that needed to go faster. The 6502 was a brill processor IMHO, shame it was not the device that made it. The 'Betamax' of processors. I mean the other thing even had to share its Data and Add lines. Apart from that this made it effectivly a 3 chip processor.
Still, I remember when I put the 65C02 in my beeb, running at a whole 2 meg......

bblank
19th Apr 2003, 03:41
FWIW, my .02: all programmers that I encounter who started with BASIC
learned bad programming techniques that are difficult to unlearn. I would
not start anybody out using BASIC - let the thing die.

IMHO C and its derivatives (C++, Java, C#) are not suitable for
beginners unless a very knowledgable tutor is on hand. I'm not keen on toy
learning languages either. Assuming that your platform is DOS/Win or Linux
I'd start the lad off on PASCAL, all other things being equal. You need two
things - a compiler that targets your platform and an instructional book that is
not only suitable for beginners but one which is suitable for someone your son's age.
(I don't have any recommendations.)

As for the compiler, for some time now Borland has made various "antique"
versions of Turbo Pascal freely available in their cybermuseum (http://bdn.borland.com/museum/).
Anything learned in PASCAL will easily transfer to any of the languages that are
more widely used today (and there still is an active Delphi development community).

I don't quite agree with Mac when he says "Writing even a simple games
program is quite challenging and not the sort of thing to cut your teeth on."
There are four basic ideas in programming that simple games will teach:
branching, looping, arrays, and input/output. Simple games like craps and
hangman should be within a kid's capabilities before long. Look up John Horton
Conway's Game of Life. That's easy and fun to program. Othello for two human
players is also easy to code. The human-versus-the-computer form of the game
is also not too hard to program but it may take some time before he learns to implement
a clever strategy for the computer to follow.

The main problem will be keeping him interested until he gets to the point
where he can do something worthwhile, which won't be overnight. If you can't
already act as tutor then I suggest you learn along with him.

Louie the Fly
23rd Apr 2003, 14:17
I started programming an old Tandy Radio Shack TRS-80 back in 1980 (I was 12 or so). I learnt MS Basic (written out of a garage by a young Bill Gates), and had a blast.
I used to get the books with the source code for games all typed up, and copy them into the old "Trash-80".
I had to learn to debug, as sometimes the code in the books had typos. It was invaluable training, and I learn't how to program in Basic, moving on briefly to machine language, and eventually working in multimedia (Don't you love industries which climb to giddy heights and then dip to dramatic lows?)

These days, kids have all had a much higher level of exposure to computers than I had back then, so the learning curve isn't necessarily as steep.

I agree with bblank, Basic is dead (sad to say), and it can teach some bad habits. But the same can be said for any language you learn with an intention to move on to another language later.

noperf, I would probably reccomend something like Macromedia Director (I think it's still owned by Macromedia??)
This is a self contained multimedia authoring tool (you can use it to put together anything from a piece of simple animation, or a game, to a complete interactive corporate CD-ROM application).

It's relatively easy to get started with, as it has an extensive level of control through its' GUI (Graphical User Interface - AKA press a button, and something happens, instead of having to write out a line of code to do something simple).

It also has a fairly powerful scripting language called "Lingo", which adds a level of power to this software, and is fairly easy to grab onto. If you want to go further, you can embed scripts in C++ etc. for added functionality.

The beauty of this software is that you have all the whizz-bang features that kids love (pretty colours, flashing lights, sound etc), but it will also teach the young 'un some solid basics in computer programming with a fourth generation, object oriented language.

Another piece I might reccomend, although it is much more basic than Director, is Flash, also by Macromedia. This is predominantly for 2D animation, but people have programmed games as well, and it is very easy to learn. I've even seen free copies on magazine cover CD's occassionally. Maybe start with Flash, and work up to Director?

All the best, send me a copy of the youngsters first game!
Louie T. Fly

Dop
23rd Apr 2003, 19:14
That's one sad thing about computers these days. There was a time when every computer came complete with a programming language of some kind, even if it was just Basic. That made it a lot easier for people to start fiddling about with programming.

These days, unless you're running Linux, you end up having to pay extra to purchase some programming language or other.

Ausatco
24th Apr 2003, 22:53
I go with BASIC as an introductory language.

I cut my teeth on a Commodore 64 and whatever version of BASIC it had (can't remember), followed by a C128 with Commodore's BASIC 7 plus the option of running CPM and whatever was available on that. BASIC 7 suited me.

Yes, it is easy to become sloppy and unstructured in BASIC, but with a little discipline, a little reading, tutoring and constructive criticism I think BASIC is a great way to be introduced to programming. I occasionally dabble in QuickBASIC which lends itself to better structure than the aforementioned BASICs that I've played with.

QuickBASIC is DOS-based and is very limited graphics-wise, given Windows graphics standards. But it is a great environment in which to learn to think like a computer - sounds bad, but I think it's essential for a programmer.

When the limits of an easy language such as this are reached, move on to something else - Visual Basic or whatever, and so on, at whatever rate suits the 11YO.

Personally, I don't think he/she needs to get too esoteric too soon. Write something, get some early rewards, learn and move on.

AA