Read other letters about this article
I think that rmillen makes a good point -- that many people (including children) do not know "how things work". However, I disagree that BASIC programming would address this problem, for two reasons.
First, even in the good old days, those who learned BASIC on their PC still still had very little idea how their computer worked. They only understood one layer out of many: solid-state physics, digital circuits, computer architecture, raw programming, assembler, boot loader, operating system, etc.
Second, these days, almost nothing of any consequence uses BASIC. Thus, having learned BASIC, they will still not know how things work!
Numerous posters have pointed out programming languages with free interpreters and compilers: Java, Python, Javascript, PHP, Scheme, Logo, HTML, and on and on. What is amazing to me is the sheer quality of what is available for free. Not only interpreters and compilers (often with their own source code!), but excellent documentation and tutorial materials, a wide range of well-documented libraries, and professional quality programming environments (including their own source code). Anyone whoe can remember back just 15 years will understand the huge change that has occured.