Monday, August 21, 2006

High School Computer Science: Then and Now

Throughout kindergarten and elementary school, I pretty much took my educational environment for granted. In fact, one of the first times I ever thought my school was really cool occurred about halfway through the fall semester of seventh grade algebra when our teacher, Mr. Lunsford, showed up one day in 1977 with a short paperback manual for a WANG 3300 Mini-Computer. (here is a link to the actual manual!, and some press clippings from the type of the device's first commercial availability),

After a short 45 minute introduction to programming in BASIC, he escorted us hormone-hyped junior-high kids upstairs through the packs of upperclassmen to the third-floor computer lab. It was a rather small room with a window a the far end, filled with nervous students hovering over what looked like strange chattering typewriters on steroids. It didn't seem all that groundbreaking at first, but when realized you could program ANYTHING into the machines, it became difficult to tear me away from the place. When I found out that we were to be allowed open and generally unsupervised access to the lab during study hall so that we could nominally work on our algebra programming assignments, I caught my first glimpse of proto-nerd heaven. Up until that point, what I would have to classify as my pre-hacking era was comprised of fiddling with the programmable calculators and plastic computer models my father had brought home from work.
But holy cow, the 3300 was a SERIOUS COMPUTER! It had an 8-bit CPU running at a clock speed of 0.625 MHz, with about 4 KB of memory storage, a BASIC language interpreter, and supported both teletype terminals with punched paper tapes and magnetic tape cassette storage that could transfer 300 whole Bytes per second! Here is a photo of one of the 3300 and a teletype (on the right) complete with punch tape system in the wild. The school must have dropped about $30,000 (in 1970 dollars) on the whole setup. Note that this was a ground-breaking time-sharing system that could support up to 16 terminals and was touted as going for less than 1/4 the cost of subscription or other in-house computing solutions.

I came to know and love all of the idiosyncrasies of the finicky teletypes, and all the tricks to repairing and splicing the delicate tapes on which you would store programs via ASCII codes punched as holes in the tapes. This early version of the BASIC language only had a couple dozen instructions and operations (check the manual link above for the details), there was no really coherent curriculum, and the only way you could really interact with a program was to have it type different things on the cheap recycled paper rolls. But it didn't matter. For the first time, there was absolutely no limit to what I could build at school. We wrote simple quiz programs, played with banners and ASCII art, and made all sorts of text adventures. There is probably a whole generation of computer hobbyists who still laugh when they see "XYZZY", or "PLOUGH," and shudder just a little bit when they see the words "You are in a maze of twisty little passages, all alike," or "Tell me how you feel about Race Cars?" (Bonus points to anyone that can name the ORIGINAL programs in a posted comment!)

ASR-33 Teletype.And yes, we did some computer homework, but after effectively living in the computer lab for some time, the assignments bordered on trivial 20 minute exercises. The real value came from the unbounded vistas of creativity that demanded you invent your own problems and challenges, and the unfettered access to a powerful tool that could help you solve them directly.

One thing that I really took for granted at the time was that it was possible to repair the mechanical components of the computer rather easily. Fixing broken tape feed mechanisms was no simple task, as the picture below of an undressed teletype shows, but the beauty of these suckers was that you could take the things completely apart and really see how every mechanical part worked. This level of hands-on access is something that just isn't possible with today's density of integration that now sports microchip features smaller than the wavelength of visible light.


Some time around 1980, the school upgraded to a Digital Equipment Corporation PDP-11 computer, that came with the first ever commercial Video Display terminal, theVT-100 pictured below. You could actually send special sequences of character codes to the terminal in order to position the cursor anywhere on the 80x42 character grid and type any letter you wanted! It may not sound like much now, but it was a BIG step from typing on rolls of paper. At this point, my nascent consulting business helping students program their math assignments bloomed into a full-blown video game design and distribution business.

The highlight of the whole era for me, was when my mother ratted me out to the school's Dean, one authoritarian named Mr. Patton. Up until that point, Mr. Patton's primary targets had been the class-skipping scofflaws and people who (shocking!) wouldn't wear any socks, a peculiar preoccupation that I never really understood. My mother had become concerned because she noticed I seemed to be flush with cash all the time with no obvious source, at a time when I was also seen to be inseparable from a small cigar box with dubious contents. Being ever the responsible parent, she immediately notified the school of her concerns.

So there ensued a priceless moment, when Mr. Patton confronted me in the school hallway and asked if I had any drugs in my cigar box. When I opened the lid to reveal sets of neatly rolled paper tapes containing programs for games and programming assignments, let's just say there was a moment of confusion. But Patton's authoritarian instincts were not to be trifled with, and a few more minutes of inquiry eventually led to an extended series of meetings with the Honor Council and computer lab proctors. Had I cheated and thereby violated the school's hallowed honor code by doing other people's computer homework for them?

Fortunately, I managed to get off with a warning because I had never actually sold solutions to the homework problems themselves, only example programs that were similar to the assignments combined with debugging assistance. So they could hardly bust me for doing what the computer lab instructor should have been doing instead of sipping coffee in the teacher's lounge. And while the whole debacle was very educational technically, business-wise, and socially, it did change my relationship with the "management" leading me in a more independent direction.

While those were certainly important lessons for me, something even more important happened to the computer program. When the PDP-11 machine was finally coming on line, complete with personal password-protected accounts (a first for the school), and a whole 512 KB of hard disk storage space reserved for each student's account, and a very clear and simple VT100 video interface that replaced all the paper tape and typewriter paper roll frustration, computer programming started to get much more popular. Advances in technology had made computer science more accessible to the easily frustrated.

VT100 terminal.

At first blush, this sounds like a great thing. And it was, for a while. But as interest grew, the fact that there was only one VT100 terminal and one DEC dot-matrix teletype (nominally the administrative console) shared across about 600 high and junior high school students became a real problem. Out came the sign-up sheet. Soon new rules arose to limit the use of the machine for homework assignments only. Experimental and gaming use died almost overnight, and as the opportunities for creative use ended, so did my personal interest in computing. It wasn't until several years later at Cornell University that Steve Jobs had donated enough Macintosh computers to essentially provide one for every technical student to learn the new structured language called Pascal, that my interest in computing was revived. While well-intentioned, the school administration's decision to limit the use to classroom assignments was ultimately short-sighted and failed to appreciate that the most important lessons learned in the lab had nothing to do with any assignment. They ended up killing what they hoped to foster.


Today, almost thirty years later, the computing technology scene is, quite literally, a different world. My latest wristwatch has more computing power than the old Wang 3300 did. But troublingly, the way computer science is generally taught in high school really hasn't changed all that much. There is generally a lab with a few computers shared by many students, and usage is closely regulated. Sure, the processors are more capable and faster, and user interfaces are sexier, but the operating systems are more bloated and the dynamic of one computer for every 20 kids or so is still just as limited.

I would propose some important changes to those types of curricula that could significantly update computer science instruction and offer interesting support for other scientific and technical studies at the school.

This little board was designed by some friends form my MIT days. The board and kits can be purchased here, where full assembly and operations instruction manuals are also available. The processor runs at 8MHz, over 16 times faster than the Wang 3300. A complete electronics novice can build this computer from it's most basic component parts in under 2 hours using these directions, and the total parts cost is around $12.75 if someone with initiative orders them directly from Digi-Key, or $17 in a pre-collected kit of parts. The device can be programmed in both Assembler or in C, and there is plenty of room in the break-out area to add more electronics for experimental purposes.

What if my old high school was willing to make another investment today of comparable value to that invested in the 1977 computer lab? Adjusting for inflation based on relative GDP per person, $30,000 1977 dollars is worth about $100,000 in 2006 dollars. The school could then afford to purchase more than 5 of these computers PER STUDENT and still have a lot left over for spare parts and expansion components and even a part-time instructor to boot. (pun intended)

Imagine how cool it would be if every student at the school could build 5 computers, understand what all the component parts do, debug them, program them, connect them to LEDs, photo-cells, temperature sensors, drive motors and use them for experiments in the science class, and go through five generations of engineering evolution. The applications are endless. Come on, admit it. It sounds MUCH more interesting than sitting in front of a PC doing boring homework assignments doesn't it?

Imagine the innovation!

Seems like a tiny investment in both time and money for an enormous payoff. How can we make this happen?

p.s. keep in mind that this is just a starting point, and if you really make a serious attempt to introduce this sort of experimental opportunity, be prepared to support the inevitable explosion of interest, and the demand for ever more powerful and capable components to build an unlimited array of widgets. Fortunately there is a very large number of computing and electronic components available to build whatever you damn well please. Just start thinking about budgets and test equipment early.


Anonymous said...

I confess to getting a bit bogged down in bleedle-bleep in this one. But I did want to note that Mr. Patton was a visionary of foot hygiene, and I support his campaign against the sock-free!

Chimpunzee said...

Phillip, the links you posted to the wang 3300 manuals are now broken because I moved that info to a new domain, with a lot more information.