Clearing up ‘programming myths’
It’s more than cranking out code
“There are these amazing distributions called power laws that seem to come up over and over again throughout nature and science,” explains newly tenured Professor of Computer Science Michael Mitzenmacher. “Under a power law distribution, rare events happen much more frequently than one would expect. They can come about not because of any great design or plan (by humans or by nature), but by, for example, monkeys typing randomly.”
His reference to a farcical thought experiment – an army of monkeys trained to hunt and peck at random who ultimately produce great works of literature – actually illustrates a real phenomenon. Literary minded macaques might never end up producing Shakespeare, but their word frequency distribution would exhibit a power law, as Mitzenmacher showed in an often-cited paper. The underlying theory, describing a system in which a few terminal points have the greatest number of links while the majority have only a few, has real-life applications.
“The size of earthquakes follows a power law distribution. That is, once in a while, you do get huge earthquakes. The in- and out-links of the Web, viewed as a graph, also follow a power law distribution. So there are some pages, such as Yahoo’s home page, that have many more links than the average,” explains Mitzenmacher.
While the related topics he explores in computer science – load balancing, erasure codes, error-correcting codes, and bin-packing – may sound like activities a computer does in the dark hours of the night when left unattended, Mitzenmacher is quick to bring the theoretical down to earth and to the classroom. Tapping into the lessons learned from power laws and bin-packing (how to most efficiently fill containers) provides the basis for everyday applications, from faster search engines to optimal processing in software.
“Michael is an incredibly dedicated teacher,” says Margo Seltzer, a recently named Harvard College Professor and associate dean for computer science and engineering in the Division of Engineering and Applied Sciences (DEAS). “He does a wonderful job at showcasing both the beauty and practicality of computer science theory. I expect even more great things from Michael in the years to come. We are lucky to have someone whose research and teaching are in complete harmony and whose theoretical work is of such tremendous value to our experimentalists.”
Quiet and unassuming, but with a gleeful intensity, Mitzenmacher readily connects with students – in part because he once sat where they do now. After graduating from Harvard in 1991 with a concentration in mathematics and computer science, he spent a year at Cambridge University as a Churchill Scholar, earned a Ph.D. in computer science at the University of California, Berkeley, and then worked two and a half years outside the ivory tower for Digital Systems Research before returning to his alma mater as an associate professor.
He returned because of the research environment at DEAS and Harvard and because of his strong desire to encourage and inspire the next generation of computer scientists. Because of the decrease in the total number of undergraduates enrolled in computer science at Harvard and across the nation, the field, Mitzenmacher points out, needs creative, collaborative thinkers more than ever. As a first step to opening up the world of programming, he hopes to clear up a few longstanding myths about his profession. It’s about more than cranking out code. Solo hacking sessions are rare and teamwork is essential. Theory yields basic knowledge and practical applications. In Mitzenmacher’s mind, a more accurate portrayal of computer science is as a form of construction or as civil engineering for the sciences.
“I am giving students a toolbox,” he says. “I provide them with their screwdrivers, hammers, and various sorts of nails and teach them how to use these types of tools. The general approaches and techniques they learn can be used to solve a wide range of problems.”
A surprisingly low number of undergraduate students arrive on campus saying they plan to pursue computer science (CS). A case in point: Less than 1 percent of incoming freshmen at Harvard indicate an interest in the field. That may be, speculates Mitzenmacher, because they do not realize how much the area contributes to making the Incredibles look incredible or to making e-commerce safe and secure. Harvard CS grad Danielle Feinberg ’96 was responsible for all the lighting effects in that movie, and faculty member Michael Rabin developed an algorithm essential to all modern cryptographic systems. Moreover, commercial technologies only hint at the critical role computer science increasingly plays in discovery and innovation.
“In high school, students take biology, chemistry, and other science courses and have some idea of what the big problems are and have a sense of where the fields are going,” Mitzenmacher says. “This is unlike CS, where even if a student has been fortunate enough to have a class, it likely only covered the basics of programming and did not get into the sweeping problems professionals face.”
Today’s big questions – whether in engineering, physics, or biology – inevitably have computation at their core. Scientists from all fields need their own version of the search engine, explains Mitzenmacher. The ability to take a flood of information and organize it efficiency has been critical for driving entire fields. For example, using the wealth of biological data from the human genome project to tackle diseases has been possible only because of advances in computation and the willingness of computer scientists to reach out.
“Undergraduates see programming and it doesn’t seem particularly creative because the problems they first learn on are very simple. But computer science is incredibly collaborative. If you are going to solve big important problems you work in groups, not hacking alone in your room.”