Mary Shaw (born 1943), a professor of computer science and Dean for Professional Programs at Carnegie-Mellon University in Pittsburgh, has made major contribution to the field of computer science. She also has been involved in the development of computer science education.
Professor of computer science and dean of professional programs at Carnegie-Mellon University in Pittsburgh, Pennsylvania, Mary Shaw has made major contributions to the analysis of computer algorithms, as well as to abstraction techniques for advanced programming methodologies, programming-language architecture, evaluation methods for software performance and reliability, and software engineering. She has also been involved in the development of computer-science education. She was elected to the Institute of Electrical and Electronic Engineers in 1990 and the American Association for the Advancement of Science in 1992; she received the Warnier Prize in 1993.
Mary M. Shaw was born in Washington, D.C., on September 30, 1943, to Eldon and Mary Holman Shaw. Her father was a civil engineer and an economist for the Department of Agriculture, and Shaw attended high school in Bethesda, Maryland, at the height of the Sputnik—the first artificial satellite—era, when the country was making a concerted effort to bolster science and mathematics education. Her father encouraged her interest in science with books and simple electronic kits when she was in the seventh and eighth grades, and her high-school years provided opportunities to delve more deeply into both computers and mathematics.
An International Business Machines (IBM) employee named George Heller from the Washington area participated in an after-school program which taught students about computers; he arranged for the students to visit an IBM facility and run a program on an IBM 709 computer. This was Shaw's introduction to computers. For two summers during high school, as well as during the summer after she graduated, she worked at the Research Analysis Corporation at the Johns Hopkins University Operation Research Office. This was part of a program begun by a woman named Jean Taylor to give advanced students a chance to explore fields outside the normal high school curriculum. "They would give us a system analysis problem and ask us to investigate," Shaw told contributor Rowan Dordick. Among the problems she worked on was a study of the feasibility of using irradiated foods to supply army units.
Shaw entered Rice University with the idea of becoming a topologist, having become enamored with Moebius strips and Klein bottles while in high school. She quickly changed her mind, however, after looking through a textbook on topology. Though there were no courses at that time in computer science, there was something called the Rice Computer Project, a group which had built a computer—the Rice I—under the leadership of an electrical engineering professor named Martin Graham. Shaw wandered into the project area one day and asked a question about the computer. By way of an answer, she was given a machine reference manual and was told to read it first and then come back. She surprised the project members by doing just that. It was a small group, consisting mostly of faculty and graduate students, and Shaw ended up working with the project part-time during her last three years, under the mentorship of Jane Jodeit, the head programmer. Shaw gained valuable experience on the Rice I; she worked on a programming language, wrote subroutines, and helped figure out ways to make the operating system run faster.
After her junior year, Shaw attended summer school at the University of Michigan, where she met Alan Perlis, a professor at Carnegie Mellon University. After receiving her B.A. cum laude in mathematics from Rice in 1965, she entered Carnegie Mellon, where Perlis became one of her advisors. She received her Ph.D. in 1971 in computer science, with a thesis on compilers—programs that translate language a human can easily understand into language that the computer understands. Shaw was invited to join the faculty after receiving her degree. One of her first notable accomplishments, in collaboration with Joseph Traub, was the development of what is known as the Shaw-Traub algorithm, an improved method for evaluating a polynomial which allows computers to compute faster. This effort was part of a general interest Shaw had in finding ways to formalize computations in order to make them more efficient.
Shaw's focus on improved software design led her to pursue an approach to the organization of computer programs called abstract-data types. This approach is one of the foundations of object-oriented programming. Large programs are difficult to read or modify unless there is some intrinsic structure, and this is the problem abstract-data-type programming was designed to address. Abstract-data types is a method of organizing the data and computations used by a program so that related information is grouped together. For example, information about electronic details of a telephone-switching network would be grouped in one part of the program, whereas information about people and their telephone numbers would be grouped in another part.
Shaw's work in this area came to fruition in two ways. The first was in the creation of a programming language called Alphard that implemented abstract-data types; she developed this language with William A. Wulf and Ralph L. London between 1974 and 1978. The second, more theoretical result, was the clarification of abstractions in programming. Shaw made it easier to design programs that are more abstract—the word "abstract" in this context means that elements of the program are further removed from the details of how the computer works and closer to the language of the problem that a user is trying to solve. This work can be viewed as a continuation of the trend in programming languages, begun with FORTRAN, to write programs in a higher-order language that reflects the nature of the problem, as opposed to programming in the binary machine language—ones and zeros—that the computer understands.
Shaw's concerns with abstraction proved a natural bridge to a more general issue, which she posed to herself as a question: What other ways are there of organizing programs? The answer emerged as Shaw came to realize that what she was really looking for was the organization of software engineering. In "Prospects for an Engineering Discipline of Software," she wrote: "The term 'software engineering' was coined in 1968 as a statement of aspiration—a sort of rallying cry." The problem, as she and others realized, was that the term was not so much the name of a discipline as a reminder that one did not yet exist.
Through historical study of the evolution of civil and chemical engineering, Shaw has developed a three-stage model for the maturation of a field into a complete engineering discipline. She has shown that an engineering discipline begins with a craft stage, characterized by the use of intuition and casually learned techniques by talented amateurs; it then proceeds through a commercial stage, in which large-scale manufacturing relies on skilled craftsmen using established techniques that are refined over time. Finally, as a scientific basis for the discipline emerges, the third stage evolves, in which educated professionals using analysis and theory create new applications and specialties and embody the knowledge of the discipline in treatises and handbooks. Shaw has concluded that contemporary software engineering lies somewhere between the craft and commercial stages, and this conclusion has led to an effort on her part first to promote an understanding of where software engineering should be headed and second to develop the scientific understanding needed to move the discipline into the third stage.
The transformation of a discipline proceeds through its practitioners, so it is natural that Shaw has devoted much of her career to improving computer-science education. She was a coauthor of the first undergraduate text to incorporate the concept of abstract-data structures, and she led a group that redesigned the undergraduate computer-science curriculum. She was also involved in the execution of an innovative Ph.D. program that has been widely adopted.
Shaw's accomplishments are not limited to computer science. She was the National Women's Canoe Poling Champion from 1975 to 1978, and she placed in the Whitewater Open Canoe National Championships in 1991. Her marriage to Roy R. Weil—a civil engineer, software engineer, and commercial balloon pilot—spurred an interest in aviation. She has become an instrument-rated pilot, a single-engine commercial glider pilot, and a Federal Aviation Administration (FAA) certified ground instructor.