Joan Feigenbaum is currently the Grace Murray Hopper Professor of Computer Science at Yale University. She graduated from Harvard University with a B.A. in Mathematics. Under the guidance of Professor Andrew Yao, she subsequently earned her Ph.D. in Computer Science at Stanford in 1986. She then worked at AT&T Bell Labs, founding a research group in Algorithms and Distributed Data, before starting at Yale in 2000.
Professor Feigenbaum’s research interests include Internet algorithms, computational complexity, security, privacy, anonymity, and accountability. While at Yale, she has been a principal in the DHS-funded Pri-Fi Project, the DARPA-funded DISSENT project, and the NSF-funded PORTIA project, among other activities. In 2001, Professor Feigenbaum was named a fellow at the Association for Computing Machinery for “foundational and highly influential contributions to cryptographic complexity theory, authorization and trust management, massive-data-stream computation, and algorithmic mechanism design.”
Vivek Gopalan: So how did your interest in computer science initially begin and how did it change during your time in college? Can you describe the differences in the field back then and now.
Professor Joan Feigenbaum: I was an undergraduate math major at Harvard, and I was somewhat unusual among math majors in that I didn’t have a strong math background going in. I didn’t go to an elite high school, I didn’t go to math camp, and I didn’t really know what college-level math was – much less math research – when I started. You might wonder why I chose to be a math major, because at that time – and maybe even more so now – most people who chose to major in pure math at an elite college had some attachment to the math world. They’re Math Olympiad people, or they had some teacher in high school that got them into math team or math camp. Many of them were actually children of mathematicians. I did it for what, looking back, seems to be a very unusual reason. Any time I say this to people in the math world, they’re shocked. The reason that I chose to be a math major is because I thought math was really hard.
My reason for thinking that I should do something really hard was unusual as well. I came from modest circumstances – economically and socially. Nobody in my family had gone to an elite college or been very academically oriented. So I was very aware that “This is a big change. I’m the first person in my family to take this kind of step.” It was a huge privilege to go to Harvard, and if my parents were going to spend all that money (although it was quite a bit less back then than it is now), I really had to do something with this opportunity. I really had to learn something that I would not have learned had I not studied it in college. I was an all around good student in high school and interested in most things. I was at least as interested – if not more – in English literature but I just didn’t see the point of being a college English major. That’s not because I don’t respect English literature – I respect it enormously – but because I just didn’t see why I needed to take college courses in it. I had been reading great novels, poems, and plays my whole life. I figured I could keep doing that.
Mathematics seemed to be the purest, hardest intellectual challenge. So that’s what I did. I wound up getting more into it than I thought I would. I thought it would be an undergraduate thing and that, after graduating, I would follow some pedestrian career path. I didn’t foresee myself becoming a researcher. I saw myself getting a job and maybe going to professional school. The way I got into computer science from math was that I went to a summer program at Bell Labs that one of my Harvard math professors pointed me to. I spent the summer between my junior and senior years at Bell Labs working in the database group. I just really loved the environment – I thought it was the best job imaginable. I also wanted to live in New York, and I knew that geography was going to be a problem if I became an academic mathematician. I would have had to live wherever I could get the best tenure-track job.
I also took a course in computer science – what was then the “weed-out” course in computer science at Harvard. It was called AM110.
VG: What did that look like back then?
JF: Assembly language programming – and a lot of it. I actually got more into that than I expected to as well. The professor of that course, Harry R. Lewis, is still there, and he’s sort of the pied piper of Harvard CS. He did something with me that he’d done with many Harvard math majors over the years. He said “you would really love theoretical CS … apply to Stanford’s PhD program. You’ll get in.” It was hard to believe that I could get into a top-ranked PhD program in CS even though I had only taken a few CS courses as an undergraduate, but I figured it was worth a try. I also realized that if I did get a PhD in theoretical CS, I could probably get a job at Bell Labs.
So I took Prof. Lewis’s advice and changed from pure math to theoretical computer science. I got into Stanford, finished my PhD, got a job at Bell Labs, and moved to New York! That was my life plan, and it worked.
It wasn’t until after I got to Stanford that I find out that quite a few of its theoretical CS graduate students had been Harvard-undergraduate math majors and that Prof. Lewis had given them the same advice he gave me.
VG: Did many end up at Bell Labs?
JF: No. Almost all of them stayed in California. New York centrism figured in big for me.
I should tell one more anecdote. I took just one CS-theory class as an undergraduate during my senior year. It was taught by Turing-Award winner Michael Rabin, who had just come to Harvard at that time. Since then, he has been very influential in Harvard’s development and is one of the main reasons Harvard now has a strong CS department. He’s a brilliant leader in many respects. I took his basic CS-theory class and learned about the RSA cryptosystem – it was absolutely the cleverest thing I’d ever seen. It was beautiful mathematically and seemed so obviously useful. I expected to be using it very soon. I was instantaneously convinced that Prof. Lewis had been right in saying theoretical computer science was the thing to study. Unfortunately it took about 20 more years for public-key cryptography (and the RSA system in particular) to find widespread use; systems and applications needed to catch up with theory. That’s often the case.
VG: How have your CS research interests evolved?
JF: At first I was only interested in pure theory. For at least the first decade, that was all I did as far as research goes. After about ten years, I started branching out. For example, I’ve worked on many aspects of cryptography and security over the years, both theoretical and applied.
At some point in the mid to late 1990’s (I had been out of grad school since 1986), I started meeting with people at Bell Labs and the rest of AT&T who were working on practical problems but wanted input from theory. I started doing what’s sometimes called “hybrid research” – research projects that have both practical and theoretical aspects. That’s the kind of technical work that I’m interested in now.
I’m not really part of the pure-theory world anymore. It’s become far more advanced mathematically than it was when I was a young researcher. There is a beautiful, multi-layered edifice of theoretical-CS knowledge, and I admire it greatly, but it’s not something I could jump back into very easily. Fortunately, I’m very happy in my hybrid world and think that the CS future belongs to hybrid researchers. At this point in technological history, there are very few important problems that we’re going to be able to solve without techniques from both theory and practice.
Basically, the way I’ve gotten into everything I’ve gotten into (with the exception of my decision to be an undergraduate math major) is by meeting people who have fascinating ideas or suggestions; I listen to these people, and, occasionally, I follow their suggestions. That’s how I got into computer science, how I got out of pure theory, and why I’m now interested in the intersection of CS and the social sciences.