in the DOS environment, one had BASIC
right there, ready to go,
on every box on every desk.
you'd open it up, find a program that runs,
and start banging on to see what happens.
Several other commenters responded with links to free downloads of platforms for basic programming--particularly SCHEME (from MIT Open Courseware) and SciLab. While grateful for these suggestions, I haven't been able to get any of these to run on my Mac (OS 10.4.11). I haven't yet tried them out on my Windows (Vista), but since this computer is the one I use for most of my work, I like to keep the mischievous child to whom I'm trying to teach basic programming (J, of course) entirely off this computer.
Earlier, all I had to do was this: copy an html page, "view" its source code, copy this code into a text file, edit it, and save it as an html file. But now such a file, whether opened up in Firefox or in Safari, no longer behaves like an html file, but instead gives a static display of the earlier text file with no functionality whatsoever. Only by downloading TextWrangler--suggested to me by an extremely helpful friend--was I able to bypass this problem. But why does an upgrade to my computer result in my having to download stuff that I didn't need earlier?
My new PC has also made basic programming more difficult (as well as making buttons like "save" and "refresh" less transparent for us non-visual, verbally-dependent left-brainers), but so far a special download has not been necessary. Here, it used to be possible to edit source directly from the window that pops up when you "view source." No longer. But luckily the trick that used to work on my Mac still works on my PC--for now.
The assumption by those who create operating upgrades seems to be that no one (or no one else?), at least on this side of the Pacific, wants (or needs) to do any basic coding any more. And so we're raising a generation of American STEM students that not only is increasingly dependent on things like Dreamweaver and Macromedia, but, for those few who might be interested in more basic programming, has fewer and fewer convenient venues for it.
In an earlier comment Seth, who has taught intro programming at Penn, observes one of the possible consequences of this:
It was universal that the students who came from the best high schools and had the most experience had never been exposed (consciously) to problems of recursion.
And as Joel Solsky observes in his blog post The Perils of JavaSchools, even in college, where Java has edged out more basic programming languages like Scheme, students are no longer learning basic programming concepts like pointers and recursion.
Personally, I love recursion. Ever since my great-grandfather had me thought-experimenting about cereal boxes whose front sides contain pictures of front-facing copies of themselves, and even more so since reading Gödel, Escher, Bach, but most especially since taking LISP in college, I've been fascinated by it.
Why is it so darn hard to teach it to my son?