Back in the dark ages of computer education in grade schools, it was left to the math department to introduce “tommorrow’s leaders” to the new technology. For the most part their approach was pretty straightforward. They taught us to write programs, usually designed to show off the mathematical abilities of the machine.
Here’s where I got my start in systems engineering, the infamous Handbook for the DEC PDP 8 microcomputer that descended on schools throughout the country at the beginning of the 1970’s. There was a time when I knew every procedure described in that book, particularly the bootstrap routine for loading the operating system into the computer before every session.
The quintessential book on the the BASIC programming language, which was part of every computer curriculum was a tome called Basic Basic by James S. Coan.
This was the first programming book I ever read, although not necessarily the best. At one point I had an entire shoebox full of programs on paper tape that were mostly taken from this book.
Of course none of it would have been any fun at all without one of these, the DEC PDP 8/E, with integrated magnetic tape drive. Filling out the hardware suite would have been a standard teletype terminal with a paper tape reader. The machine would boot just as fast as you could complete entering instructions by flipping the front panel switches. This was a serious leap forward from using the State University timeshare system over an old-style acoustic modem.
What a long way we’ve come, eh?
Today students work at a bank of PC’s or Macs (fewer Macs of late), playing some educational game, writing reports using Microsoft Word or surfing the Internet for information on South African penguins. Almost no one learns programming anymore, at least not until college.
That’s something I see as a fundamental mistake. A crime almost.
As a lifelong avoider of things mathematical (in law school I decided on a career in trial rather than in tax law, even though the latter would have been far more lucrative), I think a good case can be made for making computer programming part of the grade school curriculum starting as early as 4th grade. Depriving kids of the lessons they could learn in using logic to solve problems that programming would provide is really unconscionable. As I’ve mentioned elsewhere in this blog, there is no lack of qualified people who could be called upon to teach the material. In fact, at this point in life I would give it serious consideration myself.
One thing I’d do differently than the computer educators of years past. I wouldn’t necessarily use BASIC to introduce the concepts and art of programming to kids. For those of us who have been kicking around systems administration for a decade or more, there is in fact a obvious alternative that would be much more suitable.
Why perl? Although a debate now rages over whether or when modern, commercially popular, object-oriented languages like Java should be introduced in undergraduate computer science curricula (there are many who think that C or C++ should have priority), what’s needed at the grade school level is utilitarian procedural language that’s flexible and broad enough to be used in a wide range of solutions from beginner to advanced. As a tool used to solve both mathematical and non-mathematical problems, perl has alot of advantages over other languages like BASIC and Pascal that are most often used in a classroom setting.
First, in its procedural context (perl can be used in an object context, but doing so in a grade school setting would unnecessarily complicate an introductory course), perl is syntactually very similar to C — but with many built-in methods that make coding easier and more straightforward. Then there is the universe of specialized modules found up on CPAN that address a multitude of recurring problems with ready-to-use methods. Finally, and possibly most important of all, as a language originally designed to handle the analysis and processing of massive quantities of text, perl has developed a regular expression engine second to none, that allows one to build solutions for text related problems that would be too time-consuming to complete in another language (if they could be done at all).
So there it is. Grade schools should return to teaching programming as the core of computer education, and the programming language they should teach is perl.
Go off someplace quiet and think about it for a little while. I think you’ll agree when you’ve had some time to mull it over.