John Denker has suggested a reasonable approach to teaching kids
computer programming using games as motivation. On reading it I
wondered if some of his more advanced suggestions were age
appropriate. Then I realized that they may well be age appropriate,
depending on the kid. Many other approaches are appropriate, I think.
With my own children I took the "spontaneous combustion" approach: I
just made the means to program available and those who wanted to
learn simply did so. That's the way everyone in my generation had
learned*. Give us access to a machine and a copy of the slim volume
by McCracken on Fortran and we took off. We often became addicted to
power in the process, and were diverted from what we should have been
concentrating on in the first place - getting on with the degree
process. There were no so-called "computer science" courses**.
Since John has told you about his approach, I'll tell you about mine.
Only three of my four kids learned to program by my technique, but
one of them, David, learned spectacularly well. I simply introduced
him to a computer game, "Star Trek", written in APL. After a very
short time he asked me how it worked, and I showed him one command in
APL that puts the machine into "definition mode" and allows the user
to see the code behind the application. APL is an interpreted
language, like the original BASIC, so the code is always present. It
is very dense, however, and its notation is transcendently arcane.
When he had got really good David coded John Conway's "Game of Life"
in a single line of code, a standard benchmark challenge for APL
experts. (APL has a modest line length character limit! I never even
tried that exercise, and I couldn't parse David's code.)
Many of the talented programmers I have met started with games. A
couple of them, high school friends of one of my other sons, got
spectacularly wealthy in their very early twenties through games.
Games are a great motivator, as John has discovered.
Leigh
* I am seventy. I first used a computer when I was twenty.