Read other letters about this article
BASIC is available for Linux in a quick to install, true to (at least my) memory of its PC implementation. As is virtually every other language a curious young mind would want to explore. Installation of Linux on a common PC became relatively simple a couple of years ago.
A bazzar of software is available for that platform that would allow your son, or other curious people, to explore a multitude of disciplines.
I, for instance, have embarked on ear training and music theory.
bwBasic, the version I installed to check what I was saying here, describes itself as:
The Bywater BASIC Interpreter (bwBASIC) implements a large superset of the ANSI Standard for Minimal BASIC (X3.60-1978) and a significant subset of the ANSI Standard for Full BASIC (X3.113-1987) in C. It also offers shell programming facilities as an extension of BASIC. bwBASIC seeks to be as portable as possible.
bwBASIC can be configured to emulate features, commands, and functions available on different types of BASIC interpreters; see the file INSTALL for further installation information.