Computer camp

I think that I was the very first person in the world to teach a computer programming course at a summer camp. Does everyone have something he or she has been the first in the world to do? Consider my mother, Rose Krakauer. I think she was the very first person in the world to drive off the end of the Long Island Expressway. Note 1

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

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, so we can ask the question:

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

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 a couple of large 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 initially told that the computer they were writing programs for did not actually exist as a hardware computer, but was merely an emulation.

For all you true computer geeks only (you need to be familiar with assembly language):  click the following link for a more detailed description of my emulated decimal computer.

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 among a set of pages devoted to the camp. 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.

This entry was initially posted on my Camp Robinson Crusoe pages, here.

#0036   *CAMP   *MIT   *TECHNOLOGY

Next in blog     Blog home     Help     Next in memoirs
Blog index     Numeric index     Memoirs index     Alphabetic index
© 2010 Lawrence J. Krakauer   Click here to send me e-mail.
Originally posted June 24, 2010

Footnotes (click [return to text] to go back to the footnote link)

Note 1:   The Long Island Expressway runs from the Queens Midtown Tunnel (which comes from the island of Manhattan in New York City) all the way across Long Island to the town of Riverhead. When it was under construction, and ended somewhere in the vicinity of Roslyn Heights, my mother managed to drive off the end of the pavement. She did this by daydreaming her way past a bunch of barriers and flashing lights, with signs that indicated, "ALL TRAFFIC MUST EXIT HERE". Her car dropped about six inches from the pavement, onto gravel that had been layed in preparation for further extending the road.

A sympathetic abutter found some sturdy boards, and helped her build a ramp that allowed her to drive back up onto the pavement.   [return to text]

Note 2:   I've spoken of Camp Robinson Crusoe in other entries, as it was an important part of my youth. Indeed, it deserves its own keyword, "*CAMP". You can see my web pages devoted to the camp here. See in that section, "What was Camp Robinson Crusoe?".   [return to text]