This morning I continued the nostalgic task of organizing old papers and came across my Yale college transcript in a red folder labeled “Me.” The transcript is diagonally stamped “RELEASED TO STUDENT” in large block letters. The list of courses is surprisingly short – about a page long -- 36 in eight semester blocks, all described in run-together shorthand so they could be jammed into a 22 character text field. PltclThrysncMachiavlli. NumericalLinearAlgebra. EuropeanLtryTradition1. PhlsphclFndtnScntfcRev.
Fall 1984 through Spring 1988 was an intense time in my life and I remember each course that I took distinctly. Some of those offerings stand out as especially affecting my later choices: one titled AmPolitclParties&Electns, with Professor David Mayhew. Another called DataAnal/Poltcs&Policy, with Professor Edward Tufte. And the innocuously named Intro—Computer Science, with Professor Alan Perlis.
Professor Perlis was unlike anyone I’d seen before or since. He was bald, wheel-chair-bound, opinionated and something of an enigma, a pioneer in computer science. During his lectures he talked while an assistant changed handwritten slides on an overhead projector. A short biography is available here: http://en.wikipedia.org/wiki/Alan_Perlis. Anyone steeped in computer science, who has a sense of humor and an interest in language, should read his epigrams about programming. As a junior, I took a compiler course with him, another experience. I was sorry to see that he passed on in 1990.
I came to college a self-taught programmer, having spent countless hours experimenting with Applesoft BASIC and 6502 assembler on my Apple II Plus. I had taught programming in private lessons and also for two summers at the Rocky Mountain Computer Camps, and won the western division of a national programming contest. These were relatively unusual accomplishments in those days, and by the way, I gave no thought to whether they were considered geeky. At the time of Perlis’s class I had already taken one previous college class in Pascal.
But CptSci221b was different order – a truly intensive introduction to computer science. It filled that second semester of my freshman year with all-nighters and comraderie. I learned that I knew only the very first thing about computer science and that there were amazing programmers – and minds -- among those of my peers who survived that class. I remember that the first lecture involved a program to tessellate a sphere, which impressed me because “tessellate” was a new word to me.
The initial assignments were in a language called APL, a matrix manipulation language that used Greek symbols to indicate operations. Iota 8, I remember, would create a matrix 1 2 3 4 5 6 7 8. Other symbols would rotate, reshape, or perform other transformations on matrices. You could write a fairly hairy and virtually indecipherable program in one line of run-together hieroglyphics, and, as with all programming languages, there were many different ways to solve the same problem, some aesthetically superior to others. My memory is hazier about the second half of the class. If I remember correctly, we worked on tweaking a compiler for a mini-language that Perlis called NARPOL. I think was written in T, and we also worked from a famous text called Structure and Interpretation of Computer Programs.
Looking back, I am thrilled that I experienced – and completed -- that class. The A minus I earned gave me a real sense of momentum. I would go on to major in computer science, without a thought to another choice. I also learned that I was by no means a star, though I am naturally proud that I graduated with distinction in the major. I learned about computer science as I think you should in a liberal arts school, as an intellectual pursuit. I came to respect the discipline deeply. Though I tailed off when it came to some of the later mathematical courses and did not continue in that field, what I learned in that class and in that major, and the confidence it gave me about what I could pass through, has, in one way or another, informed everything I have done since.