* undergraduate research participation
* employment experience
* publications/presentations
* national/regional professional meetings
I learned that lesson from the 1879 issue of the American Journal of Mathematics. The article, On the Geographical Problem of the Four Colors, was the very first citation of the Four-Color Theorem in North America. Discovering those yellowed pages, I saw a physical artifact nearly seven times older than I was, undisturbed on its shelf since before I was born.
But as I read this document, I suddenly realized that I was indeed listening to Alfred Braye Kempe himself, a barrister almost a century dead, expounding on a problem that would turn 140 years old that Friday -- and I knew that I, too, was part of the tapestry of minds that had grappled with this challenge, transcending time and place.
To me, that was a new side of science; in place of the image of excitement and drama so carefully inculcated in Caltech frosh, I saw the reverent, nearly religious aspect of research.
Not only did it illustrate the connection across generations, it reminded me of the connections in my own life. By the time I finally tracked down that reference during my summer research fellowship on Parallel Algorithms for Coloring Planar Graphs, I had been pondering this problem for eight years.
* * * * *
My seventh-grade science teacher deserves the blame for passing along Kenneth Appel and Wolfgang Haken's 1976 Scientific American article on their alternately epochal, exotic, and controversial computer-assisted proof of the Theorem. Until then, research was something that came from a book; over the years I worked with this, off and on, I ran into a whole slew of colorful characters from this underground community of 4-colorers that the world had seemingly left behind decades ago. That was the first-order joy of research: sharing a challenge with some nebulous but ever-present research community. Today, in computer science, I'm excited by research for the same reasons; it's why I've either attended or volunteered at over two dozen academic meetings, workshops, and industry conferences in the last few years. It's the joy of reading the literature and recognizing that there are real people behind it. That intimacy with research is, in my mind, the alpha and omega of a Caltech education.
That's certainly the premise on which I have educated myself at Tech. Certainly there is a kernel of truth to my trademark complaint, ``Classes are getting in the way of my education...'' I began with a SURF fellowship my freshman year, and another project analyzing American Political Fiction that same summer. In January of my sophomore year, I helped establish Dr. Chandy's eText and Archetype projects, and haven't looked back. I spent most of my junior year focussed exclusively on the eText project; I'm currently applying my full-time research work towards an MS thesis for June '95. In all honesty, I've probably learned more from research, seminars, and reading at Caltech than from classes -- and not for slack of academic effort!
I have learned to work independently and in teams, to motivate myself and others, to write papers and reports, to give short talks and multimedia extravaganzas (usually with a proportionally spectacular technology failures...). Most importantly, I've had a good look at how the CS research community actually works: how (not) to get published, strategic alliances, funding, corporate sponsorship -- all useful lessons that aren't taught in class. Most importantly, I've tried to make the most of it by exposing myself to wide number of areas within CS. It makes it difficult to appear focussed on paper, but it's far more rewarding.
Returning to our story, Dr. Chandy and a graduate student, Adam Rifkin, were exploring the idea of creating multimedia textbook support for Dr. Chandy's classes based on a emerging notion of patterns of scientific computing, then called templates. I was on board from the beginning, initially as the multimedia guy, since I was familiar with the state-of-the-art in hypermedia technology. I helped define the requirements and design of our electronic textbook, and helped install and administer a new NeXT lab for the eText Project. I also worked closely with Adam on specifying the editorial framework for the book. I named and helped develop the notion of an Archetype, a recurring pattern such as Divide-and-Conquer, Dynamic Programming, or Mesh Computation, which can be expressed as either sequential or parallel execution without modifying its correctness. Archetypes are refined into Applications by specifying a creative step, such as QuickSort and FFT. Only at the last level, where Applications are implemented in a variety of different sequential and parallel languages, do issues of machine & network dependence arise.
At each level, an Archetype, Application, or CaseBook has the same structure: an introduction, specifications, documentation, testing, performance analysis, and correctness arguments. This book structure was implemented in a custom prototyping environment for the NeXTs by our whole team of undergraduate and graduate students. These chapters were deployed in Dr. Chandy's classes a few months later, and presented to other NSF Center For Research on Parallel Computing members, local high school teachers, and even to a class at Dartmouth, with Adam.
My job, though, took a very independent turn in the middle of 1993. I argued that we could not continue developing these fragile, bulky prototypes as, well, prototypes, and proposed writing our own authoring environment. The main challenge was embedding live simulations within applications. Rather than passive media presentations, an early and emphatic goal of our efforts has been interactive figures that replace pictures of an algorithm with a live, working, visualization. To date, I have spent almost two years, and five complete rewrites working on the eText Engine, a successful compound document editor that's as natural to use as a word processor, but can do drag-and-drop linking, navigation, indexing, multimedia and interactive media annotations... and can automatically articulate documents in alternate formats like LaTeX, RTF, Ascii markup, C code, and HTML, the World-Wide-Web's HyperText Markup Language, making this the first WYSIWYG, multimedia editor for the Web.
By now, eText has been implemented in the style of a miniature operating system, like Mach: there is a document-editing microkernel, and a small, replacable set of core services, such as the Navigator, UserModel, DocInfo, and Components. Even the most sacred of services are removed from the kernel, such as Links and Bookmarks (the hypertext features). I've built an OO filesystem layer to hide UNIX. Interfaces to the host environment, NEXTSTEP, have been integrated to allow drag-and-drop, linking, undo/redo, and a host of other features. Most importantly, eText uses protocols and dynamically loading to extend its document structure, multimedia support, and user interface; Inspectable objects can have controls on an Inspector panel, Annotation objects can be embedded in documents, and new file formats can be added.
* * * * *
The moral of the opening story is not about mathematics. All of those years studying graph theory didn't do much for me on that count. --No, it's about the meaning and significance of scientific research to me. I really do revere a good idea as far more valuable than material achievement. On the other hand, I don't believe in academic exercises past a certain point, either. Part and parcel of a good idea is the obligation to take it out to the world and make it stick. This is the same logic that places computing in perspective for me as only part of the wider world of science, a luxury nurtured by Caltech's breadth and ambition. If I can keep that spirit alive, then I think anything is possible...