Read other letters about this article
As a student who grew up after the craze of BASIC, I can sympathize with the struggle to find a good way to do introductory programming. I remember reading a book about fibbinocci numbers and there being a program to print out the numbers and ratios. My dad and brother both did quite a bit of programming so there were plenty of IDEs and compilers to go around. Unfortunately, none of them were able to accept the simple commands that were provided in the book.
The closest thing I ever found to BASIC interpreter was on something that nearly every high school student uses: a calculator. Most of the modern graphing calculators nowadays have the ability to write small programs in a rudimentary form of basic; all the commands are available in the menus of the calculators. The instruction manual that comes with the calculator explains some of the commands but allows for enough exploration. All the basic functions (if/then/else, for, while, etc) along with some calculator specific ones are present. While it is true that many more advanced functions of higher level languages are not available, many of the math functions of the calculator can be used to immitate programming functions, giving an even deeper appreciation for the mathmatical nature of computer science. I asked my parents for a Ti-83+ for the sole reason that I could program it. I read the instruction book and created a few programs that were a lot of fun, even if they were very simple. The knowledge that I gained from programming a very simple device helped me when I moved on to higher level languages. I've had that calculator for going on 7 years and I still occasionally write programs in it. A quick google can show many ways to turn what can become a mathamatical crutch into a superb introduction to programming.