Was Robinson Crusoe the
  world's first "Computer Camp"?

The summer of 1965, I was doing graduate work at MIT (the Massachusetts Institute of Technology), in Cambridge, Massachusetts ("MA"). I was contacted by the director of Camp Robinson Crusoe, Bob Hill, who suggested that I teach a course at the camp, "Whatever you want", and he'd pay me for it. I had previously attended the camp for many summers.

I tried to think of something I could do in the short space of eight weeks, and I decided that I could teach a computer programming course, if anyone was interested among the campers of the camp's "Primitive" units (around 14 to 15 years old). Some of them were.

Running the students' programs

You can't learn to program a computer without programming a computer, and for that, you need a computer. As the famous science-fiction writer Arthur C. Clarke put it, "Reading computer manuals without the hardware is as frustrating as reading sex manuals without the software."

IBM 7094 computer   I think that at this point, I need to remind readers about what computers were like in 1965. There were no microprocessors, and no personal computers. Most computers of the day were huge multi-million dollar machines, into which programs and data were entered on punched ("Hollerith") cards. I had no access to such machines.

However, advances in technology had brought the price of computing down considerably, with the introduction of smaller machines called "minicomputers." One of the early minicomputers was the "PDP-1," made by a company called Digital Equipment Corporation ("DEC"), in Maynard, MA. It shrank the computer to about the size of only three refrigerators side by side (to be precise, 17 square feet), and a basic model could be obtained for only $120,000. "PDP" stood for "Programmed Data Processor." If you'd like, you can consult Wikipedia to learn about the PDP-1. Or click here for a brief history of the development of the PDP-1, with images of original documents, and a picture of one of the early machines being manufactured in DEC's old mill building in Maynard, MA.   DEC PDP-1 computer

DEC had the forsight to donate one of the early machines to MIT, with the proviso that it be made available to students, undergraduate as well as graduate. I think they reasoned, correctly as it turned out, that the students would produce all sorts of interesting programs for the machine. In any event, that was the computer I could use to run the campers' programs. All I needed to do was to sign up for time.

Programming the PDP-1

The PDP-1 was programmed in what is called "assembly language", in which the programmer must specify, in a symbolic form, the actual instructions fed to the machine to cause it to carry out the desired operation. These days, most programming is instead done in a so-called "high-level language," in which it's easier to program. The high-level language is translated into the actual "machine language" by a program called a "compiler."

The input of programs and data to the PDP-1 was via fan-folded punched paper tape, seen below:

Fan-folded paper tape

The tape was pulled through a high-speed photoelectric reader on the front of the machine, for some reason from right to left. It neatly fan-folded itself on the left side of the reader. Thus after reading, no rewinding was required. I've used a close-up of a piece of this punched paper tape as a background for the red text at the top of this page.

Programming in assembly language involves having a complete understanding of the computer's native instruction set, which in turn requires a full understanding of the binary (base 2) number system used internally by computers. Since the camp, in Sturbridge, was about an hour's drive from Cambridge, I planned a course that I could teach in about seven weekly lessons, which was clearly not enough for a conventional course. Assembly language courses taught to college students at MIT typically took a full semester, and I would be teaching fifteen-year-olds. I thus needed to simplify the material in some way, while still getting across the basic concepts.

Creating an ultra simple (fake) computer

The first thing I needed to ditch was binary arithmetic. I figured I didn't have time to teach it, and instead I needed to work with ordinary decimal (base 10) numbers. I also needed to enormously simplify the computer. I thus designed an extremely simple decimal computer, with a memory containing 1,000 four-digit decimal (i.e. ordinary) numbers. The computer had a simple set of only nine instructions for operating on these numbers, plus an input-output instruction group. I figured I could teach the students to write very simple programs for this extremely simple machine. While the programs wouldn't do anything earth shattering, they would get across the idea of what is involved in computer programming.

Of course, my simple computer had one small drawback:       it didn't exist.

That was not a problem for a computer engineer like me. I just built one, or, more accurately, I simulated one. That is, I wrote a program for a real computer, the PDP-1, that pretended to be the fake (decimal) computer. Actually, in standard Computer Science terminology, this process is usually called emulation, rather than simulation. Once I had written my emulator, I could then have my students write programs for the fake computer. I brought these programs back to MIT, and ran them on the emulator. The results of the runs were then brought back to camp a week later for the next course session.

To give a bit more detail: The campers' programs were assembled for the emulated computer, and put into the emulated computer's (emulated) memory (all computers hold both their programs and the data that the programs operate on in the same Random-Access Memory). The emulator printed out the contents of the memory first, and then emulated the excution of the program. Finally, it again printed out the contents of the memory, so the students could see the results produced by their program (and debug it, if it had not done the right thing). These printed "core dumps" were brought back to the students, and discussed in the class. The students were not told that the computer they were writing programs for did not actually exist as a hardware computer, but was merely an emulation.

A field trip to MIT

The final class of the course took place not in Sturbridge, but in Cambridge - the students were bused in for a field trip. In a classroom at MIT, I explained how I had emulated the "computer" they had been programming, although I think, in retrospect, that the emulation concept was so convoluted that I'm not sure everyone understood what I was saying. We then went in to the computer room, where I ran their final programs on the PDP-1, with them watching.

I think they were impressed that their programs, which executed hundreds of instructions, ran from start to finish in a fraction of a second, despite being slowed down drastically by the emulation process. The irony today is that the PDP-1, by modern standards, would be considered incredibly slow. Modern computers can be clocked at speeds approaching 2 GigaHertz (2,000,000,000 cycles per second). The PDP-1 was 10,000 times slower, with a basic clock cycle of 0.0002 GigaHertz (200,000 cycles per second, or 200 KiloHertz). But we thought it was pretty fast at the time.

An encounter with one of my students

At the 1999 camp reunion at Camp Taconic, I met the former camper who had been far and away the best student in the class, Kathy Taylor. I was delighted to find that she thought my course had influenced her, and affected her career in a positive way. I contacted her again via e-mail after I first posted this page. She wrote:

  I remember taking your computer programming class. I looked forward to your teaching each week so much. I understood the subject matter and the weekly challenges, although I admit to being a bit disappointed on our field trip to MIT to learn we had programmed a non-existent computer! I have always known that I observed in person the very large machines of the day (computer history) on that visit to MIT. But until I read your website today, it had not occurred to me that I was a part of computer history (the first computer camp)!

As a 'girl' being educated in the 1960's, I was not directed into taking advanced math, and computers were only at universities and government facilities. I did well in my basic math classes, and choose math and chemistry over the biological sciences for fulfilling general education course requirements.

The computer programming classes taught me a logical way of thinking and problem solving in steps. This has served me very well throughout my high school, college, and graduate school education, as well as in my various career endeavors.

My first personal computer, which was custom built for me, had a 20 Meg hard drive (twice the size of the commonly installed ones that year). Twenty years later, every computer on which I work ... well, you know how far we have come. I used that and many after for supporting my entrepreneurial ventures. Now, my sister and I have partnered to 'build' a website! It is a different world, and 'girls' are no longer considered math-impaired. All in our lifetime, and it is not stopping.

At various times in its history, Camp Robinson Crusoe emphasized tennis (hiring U.S. tennis champion Darlene Hard to run their tennis program) and later, horse-back riding. But was it the world's first "Computer Camp"?

Strictly speaking, no. That term would have to apply to a camp whose major focus is computing, and that was never the case at Robinson Crusoe. In fact, National Computer Camps claims to have pioneered that category, and to have coined the term "Computer Camp".

But it's very likely that I was indeed the very first person to ever teach a course in computer programming at a summer camp. This was in 1965, a full 12 years before the founding of National Computer Camps, and well before the days of the personal computer. The National Computer Camps history page shows students at work on a 32K Radio Shack TRS-80 computer, which was introduced in August, 1977, but the IBM PC did not appear until 1981.

After getting my doctorate at MIT in 1970, with a thesis for Professor Marvin Minsky in the field of Artificial Intelligence, I worked briefly on helping to implement the Logo programming language on a PDP-10 computer. This project was under the direction of one of the inventors of Logo, Professor Seymour Papert. Logo is primarily used to teach the concepts of Computer Science, often in an elementary school setting, so in a sense I was continuing my early work in Computer Science education.

Go back to the CRC Starting page
This page was first posted August 2, 2007.
It was last updated April 16, 2009