Computer programs can quickly calculate and solve complex problems, but how can we be sure the results they provide are correct? Ronitt Rubinfeld, an assistant professor of computer science at Cornell, is continuing her work here at MIT on this question.
Professor Rubinfeld was awarded a Visiting Professorship for Women through a National Science Foundation program that enables women scientists and engineers to do research at an academic institution of their choice for a year. Awardees have a lighter teaching and departmental workload, allowing them to devote more time to research. The 25 awards in fiscal 1995, which fund salary, travel and basic research expenses, totaled $3.2 million. Her MIT host is Shafrira Goldwasser, professor of computer science and engineering.
Traditionally, the most common methods for finding out if a computer program was giving the right answers were through formal mathematical proofs or "by testing the program to death," Professor Rubinfeld said. Her work focuses on less time-consuming methods, such as run-time checking (i.e., verifying answers while the program is running rather than afterwards). Although each program is different, she can develop testing techniques that are applicable to a range of problem-solving methods and use those techniques to spot-check a program.
She and her colleagues have also developed "self-testers" that quickly allow them to see if the program is correct most of the time. One way they can do this is to generate random inputs that are mathematically related to the inputs they're actually interested in. They can then check for consistency in the results. Professor Rubinfeld has also developed "self-correctors" which automatically fix bugs, "so we can take a program that's usually correct and make it a program that's always correct," she said. Her techniques add little overhead to the cost of running a program and have even allowed safe use of flawed Pentium-based computers for floating-point division computations.
Though women are underrepresented in many areas of science and engineering, computer science is an area of special concern; it is one of the few fields in which the number of women getting bachelor's degrees in the US has been declining since 1984. (In 1992, women constituted 45 percent of US workers but only 18 percent of the science and engineering work force, according to the NSF).
"There's difficulty in attracting women to computer science," both at MIT and elsewhere, "but I do think this program helps," said Professor Rubinfeld, who received the BSE from the University of Michigan in 1985 and the PhD from the University of California at Berkeley in 1990.
"Attrition of women from science and engineering study programs is still much higher than that of men," said Margrete S. Klein, who manages the program for the NSF. "This program helps experienced female researchers reach their long-term career goals while also helping those who aspire to follow them to stay on track."
A version of this article appeared in MIT Tech Talk on March 20, 1996.