Letters to the Editor
-
David Brin Responds: Part 2
4) Many readers are so enthusiastic for PYTHON... and I admit it seems to be the logical successor to BASIC. It allows simple syntax and direct expression of the algorith in sequential lines of code -- which would be highly compatible with the notion of collaborating with schools and textbook publishers. Indeed, an effort along these lines can be seen at: http://www.python.org/doc/essays/cp4e/
Indeed, Python is so widely available, that the goal might be achieved simply via some kind of DECLARATION... say by a prominent education association... announcing support for a Python-based universal entry-level environment. If well-publicized, that may be all that’s needed for everyone from Microsoft and Apple to textbook publishers to lift their pinkies (a minimal twitch) and make this happen.
4) In order to keep using those textbooks (like my son’s) that still have TRY IT IN BASIC exercises, one reader had a fantastically simple suggestion. A turn-key web site! “For easy to use BASIC, it occurred to me that someone could set up a web site consisting of a single big BASIC window. Use Ajax to connect it to a server running one of the free BASICs to do the computation. Retain the BASIC session between visits using cookies. This isn't too hard, it could be whipped up in a week or two.”
(Actually, I seem to be redundant, as #3 appears to fit this bill. Still, others could offer their own versions.)
An ideal system would feature a good welcome page that gave extremely simple instructions for use, would be tested with some of the more common textbook examples, would link to a LIBRARY of cool games and short demoprograms... with a method for people to inload their own contributions. And it would feature a very easy to use graphics pop-up screen, that shows pixels moving in response to the program. (Something I think would be great. a button that lets you iterate the value of "n" each time you press it, instead of just letting the program zoom ahead. Great for students who want to watch the algorithm gradually change in time. (Later: One online BASIC interpreter that's already running: http://www.pachesoft.com/rockerferbasic/ )) All of this is within easy reach, though it might take a small grant. One result would be instant usability for all of the legacy TRY IT IN BASIC exercises, in ten million texts.
5) Some of the letters I’ve received pointed out that JAVA is the one language so ubiquitous that maybe it might do. Only, alas, the syntax is so difficult and unfriendly to beginners that it’s just not help, after all. Unless... a coterie of Java guys created some plug-ins and maybe a few dozen sample programs that would accomplish dual goals (1) illustrate something cool from math/physics curricula or a classic game or moving pixels with math and (2) enticed with software elegance.
Such a set of small programs might entice textbook publishers and teachers, in turn, to go along. And Java’s universal distribution could then do the trick. (And yes, I admit TOTAL ignorance about both Java and Javascript... which are apparently VERY different... which shows how long this road may be.)
Alas, from the majority of the responses I received, it seems that most of those who already know software have very little sympathy for the difficulties of students and teachers out there, or the need for universality and utter user friendliness. Some see absolutely no problem arising from the fact that nearly all computers today lack a universally accessible beginners’ language. To all of you who took that perspective, all I can say is that I can see you passionately believe in your own favorite language that you want kids to download...
...but please ponder; you are ignoring that fact that this only works for the most motivated 10,000. Not for the millions we really want to reach. For them, what has happened is a 21st century betrayal. Nothing less. Quietly, the algorithm has been taken completely away from today’s conputer-user interface, in effect ensuring that our desktops are anything BUT “computers” to kids and other explorers.
Kids who might have enjoyed and been inspired by some of the fun-with-math-onscreen that we all had, long ago. In another age.
With cordial regards,
David Brin
http://www.davidbrin.com
PS... Oh, not everybody thinks old BASIC is a lost cause. Dig this letter writer:
“Today I can code neural networks, plot fractals and beautiful plasmas, solve non-linear differential equations, automate MS Office applications using assembly, C, Visual Basic ... but all only because playing with BASIC made my computing foundation strong. It is the best language for introducing young children to the world of actual computing, and not just using tools created by other people. I have seen many adept programmers who can write object-oriented code but get stuck when asked to swap two values using two variables only. And when I ask them about BASIC, they talk about it as if it was something that used to be used by dinosaurs. “
-
Algorithms
As an instructor of computer science, I see the point to this article. In fact, I had considered requesting a BASIC course be reinstituted (non-credit) for students that needed to learn programming concepts and algorithms. This would be similar to college Algebra or lower level English classes.
Why?
Students struggle with the complexities of the language and OS and lose the art of programming. In scanning some of the posts, I see references to coding in notepad or vi. Have you ever tried to teach students using that method? Sure, for us programmers or system experts we are desensitized to the processes of edit, compile, view and fix errors, repeat.
Will a non-technical parent really build a Linux machine? I doubt that. Yes, OS-X is an option (and I am not going to argue Mac vs. PC or WIndows vs. Linux for that matter) but it is a limited option. If the parent buys a PC for work, I doubt it is a Mac. That is the reality whether you agree or not which OS is better. Buying a legacy computer on eBay or using an emulator is a far cheaper option than a second PC for Linux or a Mac as a second machine.
BASIC gave a quick way of coding and getting results. There was no fancy editor to load and unload (or switch windows). There was no high-tech compiler – just a BASIC interpreter with a line editor. This helped me with the experience of focusing on algorithms and not worrying about systems until I needed to interact with that level. For example, typing: 10 PRINT “HELLO” RUN gives immediate satisfaction of a successful program.
What really honed my skills?
Not having the programs available or the money to buy them. I bought books, subscribed to magazines, and eventually coded my own software to do what I wanted that simply did not exist. It was the concept of PULL learning as opposed to PUSH. BASIC and the external environment provided a great vehicle to accomplish this goal. I focused on typing the code, studying what was happening, and apply those tricks into every facet of computing today.
This was a great article and I am pleased to see so many individuals share my thoughts on the pedagogy of beginning computer programming.
