I plan on using Python and Pygame, which make setting graphical modes, displaying images and so forth fairly trivial, but even those aren't the ideal instruction environment. Why? They still required leaving the web-based learning resource to work in a separate environment. The ideal teaching tool is one that could be embedded right in the learning resource, and can be used to make the resource interactive. JavaScript, Flash/Flex, Silverlight...
In such a case, one could provide an incomplete program that the student needed to fix, evaluate it immediately, generate a "test score" and show the working (graphical) program, all in the browser. That was my original ambition, but I figured that waiting until I got Flex/Silverlight toolchains and learned enough to build this RIA would stall for too long.
Okay, I'm done for today.
I didn't have to understand how BASIC worked, nor really much of anything else. It may as well have been magic.
I didn't need specialized tools and libraries that I needed to download and configure and understand the bazillion options of.
Between then and now, I have programmed in a number of different ways for a number of different platforms and a number of different languages.
Now, if I get to choose a language and environment to program in and for, I will choose javascript in an html page.
Why? I can use Notepad++ as my code writing tool (I like it because it does syntax highlighting, and tells me the line number), Firefox to test it (the Error Console will tell me a line number that has an error if one exists), and Paint .NET to manipulate images.
It also supports a flexible style of coding. I don't *HAVE* to make class functions if I don't want to, yet I can still use objects.
The downside of this is that I have to bring my own discipline to my coding style, which a beginner would not have.
If I were to write a book again, I would use javascript for teaching, and have it more in the style of the old learn to program books of the 80s. <br> <br>But I've pitched it twice, and there have been no takers. <br> <br>Other languages/environments you might consider: KPL/Phrogram and Scratch. Scratch has an interesting set of challenges, however, as many of the things developers tend to take for granted (arrays, strings) are just not present. <br> <br>Anyway, good luck. <br> <br>