Read other letters about this article
Every version of MS-DOS (and PC-DOS) and Windows comes with DEBUG.COM, which can be used to create small .COM programs by entering 8086 assembler mnemonics one machine command at a time. If you want to get close to the hardware, DEBUG.COM gets you closer than BASIC.
If you just want to check algorithms, all PCs that come/came with Internet Explorer 5.x or later have Windows Script Host, and therefore VBScript. VBScript doesn't use line numbers, but line numbers are NOT one of BASIC's best features, nor are they essential to learning how to program. [Thank God the engineers who sent men to the moon and back didn't weren't screwed up by learning BASIC. And imagine that - you can send men to the moon and back and, come to think of it, build bridges, skyscrapers, telephone networks, even pyramids without having learned BASIC.]
In truth, the first language I learned was BASIC, but I switched to something else (C and APL at the same time, for different types of programs) as soon as I could. BASIC in its line number dialects encouranges if not enforces bad programming practices. If your son has textbooks with line-numbered BASIC code, those textbooks *are* outdated.
If you want to get close to the hardware, use assembler. If you want to appreciate the math without juggling registers or memory buffers on your own (a decidedly nonmathematical task), there are better languages than BASIC. Claims that BASIC is part of the cultural heritage are romantic Ludditism.