Assistant Professor of Computer Science
What kind of research do you do?
My areas of research are I/O-efficient algorithms and algorithms for Geographic Information Systems (GIS). I/O-efficient algorithms are algorithms designed to be efficient on very large data sets. GIS is one of the domains with plenty of massive data available, therefore my interest in GIS.
Research in processing very large data sets has grown rapidly in the recent years because incredible amounts of data are becoming available. This data needs to be processed efficiently and requires new paradigms to do so. What we learn in computer science classes is to assume that main memory is infinite and can hold all data and that all data accesses cost the same, and we optimize CPU efficiency. These assumptions do not hold for massive data; data does not fit in main memory, it sits on disk, and accessing the disk is approximately a thousand times slower than working with main memory. When working with large data we want algorithms that optimize the data movement between main memory and disk, rather than, or, better said, in addition to, optimizing CPU efficiency.
In particular, Iím interested in I/O-efficient graph algorithms; graphs are ubiquitous, they come up a lot in applications. My other area of interest, GIS, offers a lot of real practical problems for Computer Science that range from purely theoretical to algorithm engineering. In the last years I have been working with two students at Bowdoin who did their honors projects on GIS topics. Tom Hazel '05 worked on computing least-cost path surfaces across terrain. Jon Todd '05 worked on converting and refining grids to triangulations.
Whatís it like teaching computer science at Bowdoin?
The challenge is that very few students come into Bowdoin interested in computer science; it is nice to watch people transform and realize that Hey, computer science is not about geeks fixing their computers, and it is not about guys playing games. Some people fall into that pattern and thatís fine, but many people donít. Iím trying in my Intro class to focus on theory and on problem solving, and we start by writing algorithms with pen and paper. Programming is not about the actual programming, itís about thinking and problem solving. Hopefully this approach shows students that being a computer scientist is different than the general pattern that they might have expected.
As a professor, what do you hope that a student gets out of your classes?
It depends on what class we are talking about. In the Intro class Iím hoping that they get a general understanding for the area and a respect for what goes on in computer science. People ask me all the time, Oh, youíre in computer science, can you fix my computer?, and I canít; I canít even fix my own computer. Computer science isnít about that, and itís amazing how many people donít realize this. If you say math, people have an idea what math is about, but if you say computer science, many people think that you are a geek who fixes computers.
In my core class, Algorithms, I want students to get a solid background and a state-of-the-art class like they would get at a top university. Sometimes they arenít happy with that because it means that itís hard and a lot of work. But, I think that this is important and it keeps open all of their career choices, including graduate school. If they have a good understanding of the core and of the theory of computer science, then all doors are open.
At the upper level I try to motivate them and give them good projects and let them learn on their own. Computer Science has a steep learning curve, but once you have the background, the fun starts.
What types of challenges have you faced as a woman, to get where you are now?
Overall, my biggest challenge to get where I am now has been my timidity, and lack of confidence. You know, if I had to answer in class, during my undergrad and grad school days, I was terrified and worried about saying the wrong thing, and I never, ever, raised my hand to answer. Even today, after 3 years of teaching, I am terrified of speaking in front of crowds and people I do not know. I don't like to make generalizations, but studies have shown this to be true for many women in science.
At Bowdoin, there are fewer women in CS than the national average. Both of the classes that Iím teaching now (fall '05) are all male. As the faculty member it is not really a problem, but I can see how it could become a problem. Sometimes during the lunches that we have together with the students, or at the social events, everybody talks about Star Wars or some game they play, and I donít relate to that because Iím not interested; I've never played a game in my life. These are just minor things, but I certainly notice.
Why do you think that there are so few women in the computer science field, and what can the field offer women?
Iím still trying to understand what happens. It is certainly a society-induced problem. Proof to this is that in countries like Romania, China, India, and others, this problem does not exist, or at least not at this scale. Part of the problem in the US is that there are so few women in the field and this causes even fewer to consider it as an option. The other, bigger, part of the problem is induced by society. The general perception is that women are not fit for this career, and thatís wrong. I donít understand exactly how it happens. I think it is something before women come to college; they have formed this idea that computer science is not for women, because it is about fixing computers. If more women would take the Intro class I think that they would go on, because I donít think there is anything scary in it. But they donít come. When you have nothing to start with, you've got a problem.
Iím not sure what the solution to this is. It has this tunneling effect, where fewer and fewer women come because there are so few women in the field. I don't know how to reverse that, but itís definitely a problem and many people think about it. There was a big study done at Carnegie Mellon when their percentage of female undergraduates dropped to an all-time-low record. With the help of big funding throughout several years, the enrollment of women was raised back to around 30%. Thatís proof that through strategic thinking and action at the university level, it is possible to reverse the trend.
What can CS offer to women? Computer science is an area that tries to recruit women, so women have a lot of opportunities. Women can be successful in CS just like they can be in any other science. Plus CS offers a lot of options for interdisciplinary work (for example there is work with biology, neuroscience, and environmental science). This may be of particular interest to women, as these are sciences that typically attract many women.
What are some interesting careers that rely on a computer science background?
I think computer science is starting to play a role in virtually every discipline. I am trying to think of an area where it does not, and I can't. Even in math, theorem proving, like the proof for the map coloring problem, involves the help of a computer program. Computers are so much part of our life.
Computer Science majors have a lot of opportunities, especially at a liberal arts college like Bowdoin where interdisciplinary work is so encouraged, even required; I think all of our CS major have a double major: computer science and biology, computer science and visual arts, computer science and Spanish, computer science and Russian, computer science and economics, computer science and Asian studies, and I could go on and on.
One of the classical career paths for computer scientists is in financial markets and investment banking (with an economics major). More recent career paths are in GIS and environmental studies, as well as biology, biochemistry, neuroscience and genetics. A hot area of application of CS is study of the human DNA, and processes like protein folding and protein docking. For instance, if we could understand how proteins fold and what causes them to fold, we could then block the folding and slow down the formation of cancerous tumors. But, these processes are so complex that understanding them without the help of computers is practically infeasible. The spectrum of the possibilities is immense.
Until recently it was possible to have just one specialization, and grasp programming skills along the way; if you were a biologist, you could write your own code to search for a gene in a DNA; if you were a physicist, you could write your own code to model star formation. But this is becoming harder and harder. We collect more and more data, and the problems we need to solve are more and more complex. On the other hand, computer science has matured immensely as a discipline in the last 20 years. The future is in interdisciplinary work. We live in the age where results can't be obtained by a brilliant researcher who works alone in the lab. Results are obtained by groups of people across disciplines, computer scientists and chemists and biologists who work together with clusters of computers and groups of grad students.
What would you like to do if you were not a computer scientist?
Eliminating the crazy answers that come to mind, I think I would have liked to work in environmental sciences. Thatís another reason why I like GIS; I feel I can contribute to protecting the environment.
What do you like to do for fun?
I like traveling every time I have a chance, usually with conferences. And, I like to dance argentine tango. Every week I go for classes and practices in Portland, and sometimes for workshops in Boston. It is addictive, and very special.