www-team |
Professor Frank Pfenning Department Head and Professor, Computer Science DepartmentPersonal Website Interview by CS Undergraduates: Dixie Kee, Celine Nguyen and Stephanie Yeung Could you tell us a little about your background and where you are from? I was born in Germany and grew up near Frankfurt. I went to Technical University Darmstadt there for a few years, got a Fulbright Scholarship to come to the U.S., and that's how I ended up coming to Pittsburgh. Have you ever thought about going back to Germany? Do you miss any parts of it? We go back there pretty much every summer, so we went back there many times. I spent a sabbatical there way back in '96 or something like that. At some point I had an offer from a German University for a professorship over there. At that point, we were thinking that we were going to go back, but it would have been very hard. There were multiple reasons I didn't go back. It would've been very hard for my wife to find a job over there. She teaches statistics here, and it would be difficult to do over there. Being a professor over there, you have to do more administrative work, and it was pretty early in my career, so I felt that Carnegie Mellon was giving me a better chance to do exciting research than the position over there would have. Do you miss anything about Germany? Oh yeah, a lot of things! But I have found ways to work around that. Like I cook a lot of German food myself, and I can get most of the ingredients. I especially like German bread, German sausages, and things like that, but I've pretty much found ways to get around that by finding the right suppliers over here. Is Hofbräuhaus comparable? No, that's an absolutely horrible place, and you can print that if you want. [laughs] I went there once and the food was so bad. There are some other things that I miss. There's trade-offs. Every country is different. Like in Germany, most people are middle class, and generally people are very well-educated. Here, there's much more of a difference between very well-educated and not-so-well educated people. Generally, people over there are extremely competent in whatever they do, whether it's government agency, or anywhere, people know what they're doing, but they tend to really insist on the rules. Over here, people are reasonable. The computer science department is founded on the "Reasonable Person Principle," so I really buy into that. Over there, people are more stuck on the rules than they are here. You came to CMU in 1987 to obtain your Ph.D. in math. Have you been here ever since and what about this place made you stay so long? There are many factors. The reason I stayed at first was because I came from a fairly small, kind of backwater town. I came here into the math department, and I was right in the middle of stuff going on in computer science, world class research. That was just great, so I made an effort to try to stay here. The Fulbright Fellowship was for one year, but you can extend it all the way through your degree, so I applied to be able to stay. My advisor over in the math department offered me a research fellowship so I could stay because Fulbright doesn't pay you for the full six years; they only pay for first year. But they said, "You can stay. You can extend your stay." Mainly it was just being in the middle of research. I also met my wife during that time at CMU. She was a student in the math department at the time, and so that was another reason to stay. Then we got married and had kids. The kids were growing up in Pittsburgh; their grandparents lived here and their aunts and uncles, so it was really nice to have all that family support while they were growing up, and we were starting a family. The other reason I was very lucky was that one of the members of my thesis committee was in the computer science department, so when I graduated, he offered me a postdoc position in the computer science department. Usually when you graduate from a particular place, you don't really stay at that place, but I was actually switching from the math department to the computer science department. That was an okay move, the kind of thing you can do, to switch fields. Then when I was a member of the computer science department, it was even more intense in terms of research, and I had great colleagues. The person who hired me, Dana Scott, was a Turing Award winner. Nowhere else would I have the opportunity to work with the same caliber of people. When I got the offer to go back to Germany, it was a big thing. Over there I would basically be on my own. I'd have to be in my own group and do a lot of administration—so how effective could I be? Here, I could collaborate with great Ph.D. students, great colleagues. We didn't have undergrads at the time, so I couldn't say great undergrads [laughs]. I can say that now, though. Personally, I really couldn't imagine any better place, and also professionally I couldn't think of any better place. There was no reason for me to leave, and I didn't want to change just for the sake of changing. Now that you are the head of the CS department, what is it like? How much power do you have, and how is the position so far? Well, I'm not sure how much power I have. I'll figure that out. [laughs] In some sense, as an administrator or as department head, you're serving the people that appointed you. In some sense, I'm the servant of the faculty, the students, and the staff. I'm trying to make their work possible, make their lives easy, and make this place the best it can be. There isn't really this sense of power; there's more this sense of: I'm here in service. In fact, when you put it on your CV for promotions and appointments, it's called "University Service." I was for a while, director of the graduate programs, so I was serving all the Ph.D. students. Then I was Associate Dean, so I was serving all of the PhD. Students in the whole school. Now as department head, I'm serving the faculty, the students, and the staff. I think a lot of positions of responsibility are like that. Even teaching the class, I'm serving the students. Do I have any power standing there in front of the classroom? Not really, right? I mean I have the power to choose what I actually teach you, but in some sense I'm responsible to you. What motivated you to take on this role? It was not an easy decision to decide to go ahead and do it. The reason I took these earlier administrative positions was because I felt like I could make a difference and that the people that I was working with had a lot of faith in me, that I could do it and do a good job. When they come to you and say, "Please do it. You're the best guy for the job," it's hard to say, "Nah, I don't want to do it." In this case, it was the faculty, staff, and students who talked to me and said, "You could be a great department head". In the end, I was willing to give it a shot, and see what happens. This was a reasonably good time to try doing this kind of thing. One of my senior grad students just graduated and a couple of other graduate students are co-advised so they don't rely solely on me. It's kind of an okay time for me to cut back a little bit on research because the students are taken care of. The hardest part of the battle is that there are two things I really enjoy about being a professor: research and teaching— especially teaching interesting classes that you design yourself to excellent students. Giving those things up, or at least cutting them way back, it's very had to say, "I'm just not going to teach this year", and/or "Maybe I can teach next year, maybe in the fall, but I'm not really sure because I'm not sure how much time this job will take." Right now I'm learning it so it takes all my time, but hopefully it will level out at a reasonable pace, and I will be able to get back to teaching. But even then I won't be able to devote as much time to teaching as I probably would like and the same thing with research. I've already cut back, and it's not clear I'll be able to get back to that level. If I do this job for three or six years, which is typical—if I don't do any research for six years, and go back and do research again, it might be kind of tough. I'm trying to keep at least some level of activity going. Now that you have this position in the CS department, what do you want to do to recreate that great experience you had or keep the reasons you appreciated CMU for other people? This is one of the things department head has to do, and it's one of my priorities to make sure that we continue to do world-class leading research here. That was the main professional reason why I was here. The way you achieve that is to get the best possible faculty members and the best possible grad students and you don't put any obstacles in their way. You try to enable them to do their research and be productive. I haven't had that much opportunity to do that yet, but that's the baseline of what I'm trying to accomplish. I started a little bit of that since we're in the faculty recruiting season. We invited something like nine faculty members that might be possible candidates for the computer science department. We won't be able to hire that many, but maybe we'll be able to hire two or something like that. We'll have to see when the candidates come through—we interview them, we might like some, we might not. We might make offers to two or three people. Maybe one or two will come, so that's how it usually works. The important part of this process is to find the right type of people that fit well in here and are extremely smart and enterprising. Besides education, what else do you think students should get out of their college experience? I'm not sure what you mean by "besides education," because in some sense it's an education just along very different dimensions. You leave the home for the first time. You're on your own kind of, so that's part of an education, how to live. You have to grow into your own person; you have to figure out what your goals in life have to be. When you start college, most people just have some kind of vague idea, and after four years they have a pretty good idea, whether they want to go work for an interesting company, maybe they want to work for a startup, maybe they want to go to grad school. If they are interested in working, they figure out what kind of work they want to do, like maybe Human-Computer Interaction. Or maybe they want to do more programming or they want to do some other thing, but these are the kinds of things you discover at Carnegie Mellon. The more diverse experiences we can offer, the more people can find the things that are right for them. If everybody did exactly the same thing and had the same fixed schedules—these are the classes you take and then you graduate—they don't have the opportunity to branch out. So we have minors in things like music, the arts and all difference sciences, in math, in ECE, and all these different things give people difference experiences and get them ready to do different things once they graduate. I think the knowledge that you learn and the skills that you learn is really just a fraction of the overall things that you get out of an education. One of the nice things about Carnegie Mellon, one of the distinguishing characteristics, is we don't draw a huge distinction between the arts, the sciences, engineering, and so on, so hopefully you guys will take advantage of those opportunities. What research are you working on now? Well, most of it has to do with application of logic in computer science, and in particular to computer security. So, that's kind of my research focus. There's two projects (the other one is a bit more abstract)—but in this project we're trying to figure out how to write programs in a way so that you can certify that they're secure, in ways that are explicitly defined. There is a joint Ph.D program (or dual-degree program) that we have with Portugal and so I have collaborators over there and a student who is co-advised; he spent two years here and now he's back in Portugal. We meet in Google+ hangouts once a week and talk about stuff. Do you have a favorite project you're working on? Yeah, I would say that's my favorite project. I think we've got a lot of good results by applying the techniques we like to apply. You know, my background in math was in logic, and then I kind of switched from mathematical logic to computer science logic, which is a little different in the way that you actually work. But it's still the kind of common set of techniques that you have, and they seem to work extremely well in that particular case. It was a big surprise and just happened to work out extremely well. Now the student is starting to try to work towards his proposal—thesis proposal—and he already has like four or five papers written at this point. So that was really fun. So your other passion was teaching, and we know you're heavily involved in creating the course 15-122. What were some of your thoughts in planning it, and did it turn out the way you expected? I taught the computer systems class, 213, several years in a row before this, and I always felt that there were some things that students were quite well-prepared for, but there were a few other things that students were quite unprepared for. So when we were talking about the curriculum, we were trying to figure out: how can we teach the things that they need to know to succeed in things like the malloc lab, which is one of the big obstacles for the students. So I was kind of working backwards, from trying to see why it was so difficult for the students, what skills they didn't learn in the classes up to then that they should have, and—basically, my analysis was that they didn't know enough about data structure invariants and how to work with them in order to write that kind of code. Okay—so what I need to teach them is data structure invariants and reasoning about your programming and checking invariants, those kinds of things. And so I based the course on the two endpoints. One is that it's a prerequisite for 213, and people should be able to write correct imperative programs when they come out of the course. And the other endpoint is—what do they know coming in? So basically, they've taken a high school course in Java, or they've taken our own 112 course, for basic programming. So I knew what they know coming in, and I know what I wanted them to know coming out, and so I just tried to design the lectures in between. I guess I was a little bit surprised how well it worked. I think it worked in a large part because I had some co-teachers who worked with me getting the course in place: Tom Cortina in particular, and also one of my Ph.D students who had graduated and was working with me, William Lovas, and they had some different sets of skills. William was very good at getting concepts across using interesting examples—he helped me a lot with that—and Tom was very good at understanding what was possible and what was not possible at the freshmen level. The lowest-level previous course I had ever taught was an old course called 212, which eventually evolved into 150, but it was at the sophomore level and higher and graduate students. I had never taught first-semester freshmen. So Tom would always say, "Remember, those are freshmen. Freshmen can't...freshmen won't...freshmen don't..." and so on. He was constantly reminding me, "You can't assume that they know that or that they can do this, and you have to bring them up in small steps." Without them, I'm sure it would have flamed out. But—nothing is perfect; it's still a work in progress. But overall, I think I'm quite happy with how it turned out. The transition for people with a Java background is easier than for people with a Python background, because the languages, C and C-nought, are more similar to Java. This is one of the hardest parts of the course—to get these two different audiences to converge on the same point after a few weeks. I did these early-semester evaluations, and they usually said something like, "It's kind of a steep learning curve at the beginning, and then levels off," and I already pretty much know this person knows Python. For people who come from a Java background it's a bit of a smoother transition. In the future, what do you envision for computer science in terms of the research that will happen or the culture around education that will develop? I think computer science will become even more interdisciplinary than it already is, in the sense that other disciplines will use it more and more, and that will influence the kind of work that we do and the research that we do. I think there's always going to be some core issues in computer science that are not directly connected to any particular applications or area: a lot of programming languages research, research in the theory of computation and computational complexity, these are things that arise from inside computer science and have their solutions inside computer science. Right now there are many other areas and a lot of them are represented here in the schools where computer science has had a very significant impact and very significant role—you know, machine learning for problems in sustainability, for energy, in the planet, and healthcare. So there's a lot of use for computer science in these other disciplines and we're bringing more and more of these things into computer science because it plays a bigger and bigger role. Biology is another good example, computational biology—you know, almost all biology now, or a lot of it, is becoming computational. My son is in computational biology, and is doing a postdoc right now at MIT. I don't do that much research that's reaching out into different fields, but a lot of other faculty members here do, and that's where a lot of the future of computer science is. What do you feel is unique or particularly compelling about CMU as a CS school, or as a center for computer science research? Those are two slightly different things—[to the second question] so, the unique thing is that CMU has very few boundaries. It's not like there's any difficulty for me to go to the art school and talk to somebody in the arts department about some joint work. And we have so much collaboration on the campus between different people from very different disciplines—the Entertainment Technology Center (ETC) is an example of that. You know, a computer science person and a drama person get together and they make something new and interesting. So the interdisciplinary research has an impact on both sides: on both computer science in terms of the problems we solve, and the core area. The impact we have on the discipline that we're working in or with is pretty unique. I mean, there are many, many examples—Disney Research Lab next to campus is another one and collaborations of computational biology with University of Pittsburgh. Human-computer interaction (HCI), reaches into psychology; the machine learning department reaches a lot into the statistics department. We have faculty members who have joint appointments. The Language Technologies Institute—you know, computational linguistics and computer science and some software engineering as well—so there's a lot of work going on that's not just core computer science, and that's one of the strengths here. And what about CMU's uniqueness from the perspective of CS education? I think we have a pretty unique program here, and it's a little bit going against the trend. I think the trend for a while was to make introductory CS education directly being in touch with the applications area, so the way you would start in computer science was to program a robot, or you work on some kind of multimedia thing. But here we're kind of doing the opposite thing, where we believe you can make it fun, but you wouldn't think, coming in, that you need as much as you do in applications. So we really believe in a very solid and broad foundation in theoretical computer science, programming languages, and so on, and that's what we teach the first couple of years. And after the first couple of years, you have a lot of opportunity to reach out with all the knowledge and skills that you have in order to do these things across boundaries and so on, that if you try to come in and start doing them right away, you wouldn't really be equipped to do it. So I think we're pretty rigorous at the beginning, we teach you all the basics in a very compact way over the first two years, but then you can branch out and do really cool things. And that's what I think is distinguishing about our undergraduate program. If you weren't a computer science professor, what would you be? There is a chance I might be a chef—that's the family tradition. My father was one, my grandfather was one, my cousin's a cook, my mother...my mother didn't work as a cook, but she cooks very well. She worked in a hotel as a waitress and so on... So you're the black sheep of the family? Ah, not exactly. Well, I decided on a different career path. But I do enjoy cooking, because when I grew up my parents had a restaurant. And so I liked to cook a lot; I cooked all different kinds of things: Indian and Chinese, German, French—I just taught myself, from books. Whenever I go to a restaurant and like something—I don't think I had Thai food when I was in Germany, came here and there's a Thai restaurant. I really liked the food, so I taught myself how to cook Thai. Do you have any favorite dishes you like to cook? Yes, there are a lot of them. The Thai food I really like to make is Green Curry or Penang Curry. In Indian food, I really enjoy cooking Lamb Korma. And German food, I regularly cook Schnitzel, which is breaded pork-chops basically. So a lot of different things. So your website also reveals that you have a wide range of other hobbies. Would you like to talk about some of them? What's your favorite? Sure, I like to have a work-life balance, and I think it's also important for the students. So you may know about that recent town hall meeting, where we talked about this sort of lack of work-life balance. I've already tried to use my influence as department head to try to get some positive changes in regards to that in the department. So we'll see of that takes hold. What are some of those changes? For one, I'm trying to bring the units that you sign up for more in line with the number of hours that people actually spend on the courses. So I talked to some of the teachers here whose courses are notorious for using more hours than actually prescribed. It's a delicate thing because you don't want to destroy the course experience and all the things that the students learn, but at the same time, you don't want students to spend 30 hours a week on a course that's 12 units— that's not really conducive to a work-life balance. Students should be free and have time to do other things. When I was a student, I did a lot of other things and it was very important for me to be able to do that. If you're always running up the next deadline for the next homework assignment, then that's very difficult to do. It's a long term thing, because partly, I think you guys are responsible for this [laughs]. Like for example, when you TA a course that was really hard and you survived it, then you want to make sure the students coming through have the same experience that you had, instead of making it easier for them. But it doesn't have to be that way —it's a bit like hazing right? Like, "I suffered through this, I learned so much, so you're going to have to suffer through this too." So I think there is a cultural aspect, and it's very complex and interconnected, but I think that there's pieces of it that I can influence and those are the ones that I'm going to try to influence. I don't necessarily want the courses to become easier, but become less life consuming. ... But back to the original question —what are the things I like to do? One of the things I really like to do is sports. For many years, I played soccer, but eventually I got injured so I had to retire from that. Then I switched to playing squash when the courts here were being built, and ever since then, I've played squash regularly. For SCS Day in the past, I've organized some squash workshops to introduce some other people to the game. The workshop was a good opportunity to get some people who were interested in finding out what it's like. It's not a very easy game to learn so you have to make some investment. If you think about tennis, there is some basic technique you have to have and if you don't have that technique, it's not a very easy game to play. Squash is kind of the same way, compared to running, which is very easy; you just put on your shoes and go out. But on the other hand, it's very rewarding if you know how to play it well, so it's really, really fun. Squash is much more demanding than soccer for example, because in soccer you have 11 people on each side, so if you slow down a little bit or don't run back as fast as you should, it's okay because other people can cover you. On the squash court, if you get lazy, you lose the point immediately. Once you get a little bit better at it too, the rallies get really long and it's extremely demanding. If you play really good players, it's physically very exhausting, so it's really good exercise. There was a ranking of sorts of the sports and how good they are for you a couple years ago and squash was number one. They took into account factors like how good it was for cardiovascular fitness and how often people got injured. So squash was number one, and the other things near the top were ones like swimming and biking. Running was quite some spots down because people get injured. One of the other things I like to do is hike. Over spring break, my wife and I are going to go to a cabin in the Laurel Highlands that we rented. So we'll just be there off the grid with no cell phone connection. If the weather is good enough, which in March it might not be, we'd like to go hiking every day and spend time in the woods away from technology. I think it also gives some balance from being in the city and dealing with technology all the time, to being out in the nature and disconnected from everything. I also like to read a lot. I read both ordinary novels and mysteries to mix it up. This is out of personal curiosity but on your website, you have acting, which says 'Aborted'. What does that mean? [laughs] My daughter is an artist and she's actually an undergraduate student at the Art Institute of Chicago right now. But before, when she was in Pittsburgh, she had a job at the Pittsburgh Film Makers as their equipment manager. While she was working there she was also taking some classes to get some certificate in filmmaking. She needed an actor for one of the things she was doing —you can actually find it online on Youtube. Anyway, so she asked me to act in it, but afterwards, she said she isn't going to work me with me anymore. She needed too many takes. I think in the end she got the effect that she wanted. She was shooting 16mm real movie film, but that meant that every take costs money and costs time and development. Do you have any favorite movies or other media? Or books? When it first came out, I read David Mitchell's, Cloud Atlas. I watched the movie eventually too. I think the movie was well made, but I think the book was even better. I liked several of his other books too, like Ghostwritten, which is another one that I really enjoyed. I also like Jim Crace's book, Gift of Stones, which takes place in the Stone Age. That was a really fun, really good read. I also like various mysteries. There was a mystery author, Kaminsky, who died a couple of years ago, but I really enjoyed his books. For the movies, I'm trying to think if I have a favorite movie... I wouldn't say there is one single movie that was like 'the best thing I ever saw.' Generally, one director I like is Werner Herzog, who is a German director. He also made Grizzly Man, which was one of the movies that I enjoyed. And I don't usually like to admit it, but I also enjoy James Bond movies, just for the fun and the action. Is there a favorite family activity? I did sports with the kids. We did hiking. We spend vacations in Europe, out west hiking in the Grand Tetons, and Waterton/Glacier and Yellowstone National Parks; the kids really enjoy doing that kind of thing. We also like going to Europe and going to the Swiss Alps. We spent last summer in the Austrian Alps and hiked for about four, five days. In the Austrian Alps, they have these huts that they build on the mountain and you can hike to them and stay there overnight, then hike to the next one and stay there overnight. Out west, you know, if you hike in the Grand Tetons, you have to carry your tent, you have to pitch your tent, etc. You can also do that six days in a row, but it's more luxurious in Austria because you actually get a real bed and somebody who cooks dinner for you. We've done that multiple times and I think the kids really enjoy that. Do you have a favorite quote? No I don't, I'm not the kind of person who has a lot of 'pearls of wisdom' or anything. Generally, I make fun of people who have those pearls of wisdom, because usually these things are so general that you feel like it's either completely obvious or it doesn't really affect your life in any way. So I guess my pearl of wisdom is to not have any pearls of wisdom!
|