Letters posted here are associated with the following article:
The letters thread is now closed.
...to put out a simple version of Basic.
However, it would be almost as easy for educators and textbook writers to put out their own version of Basic. Call it 'School Basic,' make it cross platform and free to download. Then all those textbook examples and those wonderful little programs that Scientific American used to put out can come alive again.
IOW, if we really want a universal programming language--and I think we do--then I think it's really up to the schools to maintain and develop it, exactly in the same way that schools maintain such universal languages as arithmetic and spelling. Companies just don't do arithmetic and spelling, no matter how much they depend on it, and it may be just as ludicrous to expect Microsoft to maintain Basic as it would be to expect that banks should teach people how to add, subtract, multiply and divide.
sounds like it might be a good fit for your son's needs.
http://www.leopardprogramming.com/screenshots.php
http://www.leopardprogramming.com/download.php
From Wikipedia:
"Leopard is a programming language featuring an integrated development environment for creating Windows applications. Leopard is designed to be easy to learn and it is especially aimed at users who have never programmed before. Leopard is written in Liberty BASIC."
Dig out a old Windows 95 or 98 install CD and look in the \other\oldmsdos directory. Just double click on qbasic.exe and it runs. A useful installation with the excellent help system involves copying help.com, help.hlp, qbasic.exe and qbasic.hlp to a directory on your hard drive. It will run in a window or full screen. Hundreds of thousands of already written programs and examples will be at your command. With minimal modification many Visual Basic code samples will work.
It is essential for a mechanic to understand a lawn mower engine before they move on to electronic engine management systems. Likewise an programmer should start with something simple. Those that skip the beginning of a learning process usually end up making beginner mistakes later when the "cost" is greater.
It is a shame that operating system companies don't include BASIC in the default installation. It would cost nothing and would open a window for countless potential programmers.
The BASIC language is far from dead. Anyone who says otherwise probably thinks BASIC programs still have line numbers.
He wants a simple UNIVERSAL procederal programming language that EVERYONE can be conversant with and use.
He's talking about something on the level of arithmetic, not on the level of calculus or beyond. Something that is step by step and completely clear, something which teaches thinking, not computers or web page design. The other languages that people are mentioning are not at all suitable for this purpose.
I'm a bit disappointed at the number of mac users who responded to this article. Their many suggestions for scripting languages and HTML only further proved the point the author made. That is -- scripting languages don't teach you a darn thing about how the computer actually works! What's really going on down below. But that's been my chief complaint against Apple for so many years; they hide the inner workings of the computer from the user, so the users are all but computer illiterate!
The old-style BASIC interpreters forced you to learn a thing or two about the very hardware and critical functions of the CPU in order to write a program. Today's scripting languages don't do that at all. You can't Peek and Poke a memory location. You aren't forced to think mathematically about iterating an array of numbers across memory locations that correspond to bitmaps to draw pictures on your screen. Did you know that's how modern computers draw all those fancy graphics? See this text I'm writting? Ever see the math involved in rendering all these little letters through your video card? You'll never understand those things if Perl is your first language. (Oh, and for the record, HTML is not a lanuage despite the fact LANUAGE is part of it's name.)
I was in elementary school when my father bought a Commodore64 and I loved that thing. Thinking about it now, you had complete and total control of every hardware microchip on that machine. All you needed was the memory address and it was your to control!
Now-a-days with protected memory schemes, well it's quite a bit more complex. (I hold a bachelors in computer engineering and I still have to pull out my textbooks to remember how it all works. How the page is translated in the TLB to generate a logical address and moved into the memory management unit and transformed into a physical address. Unless a page fault and move to the disk. bleh.)
I agree with the other posters who suggested using the TI programmable calculators and Lego Mindstorm sets. I'm not sure how much computer architecture one can learn, but maybe it's something.
My opinion would be to start down low, with the basic concepts of binary arithmetic and binary logic tables. Then progress to assembler language. You'll have to provide an environment pre-configured for assembler code. I would suggest Linux and how to compile assembler code to make it run with the libc libraries. From there, move on to the concept of a compiler, how it works and how the C language is really just high-level assembler. Then from there it's just a quick understanding of object oriented structures and before you know it, everything makes sense.
A quick google found a site called QBasic cafe, which has a current quickbasic. I don't know anything about them but they are not alone in the world of emulators.
Assembly is harder although Microsoft I believe still sells MASM. If not, NASM is a selectable install option for the inexpensive commercial linux distributions (Redhat, Suse). You should be able to simply open a command window and text editor, and a browser to download examples :))
The people who wrote about web development as programming made me sad.
Honestly, a book with BASIC examples in it is either an intellectual classic or worthless. Why not start with C, using the very approachable examples in Kernigan and Ritchie's "The C Programming Language?" They will work on any free compiler from microsoft, and they are twenty eight years old! There's something to be said for learning assembler, but the requirements of machine programming are well described in C as well, and there's this great book that starts with printf("Hello World");...the conventions of C have informed everything since.
The other great language to set up, if one is setting up old languages for reasons of edifyication and amusement, might be Smalltalk. Smalltalk gave rise to most of the common languages of today -- .NET and its manifestations, Java, C++. Its been used as an educational language and even getting the SQUEAK project to run was kind of fun, out of date and funky as it was.
When I was young and dumb(er), there were developer boards called KIM-1's which were the cat's pajama's for assembler programming. There was even a small basic. If you want to give your kid that, any Freescale development board with the cheap or free SDK and some kind of A/D -- from a speaker to the truly cool -- is a beautiful introduction to memory types, machine instruction sets, allocation issues, and tiny tiny increments of time. And its more accessible to motivated kids than the engineers at Motorola might think....