Augusta Ada Byron, a contemporary of the early nineteenth century, was a woman ahead of her time. She died when she was only 36 and for the next hundred years she would be known as the daughter of Lord Byron the poet. Only in this century would she become known as the first "computer programmer."
Ada's parents, Lord and Lady Byron, separated when Ada was very young and she was subsequently raised by her mother. Ada was naturally curious and spent a great deal of time on her studies. Her first love was geography, but this was soon replaced with a new passion, mathematics. She started corresponding with mathematicians about problems and ideas as her studies progressed and in 1833, when Ada was 18 years old, she met the scientist Charles Babbage, inventor of the Difference Engine, at a party. Babbage invited her to visit the studio where he kept his invention and two weeks later, accompanied by her mother, she did. She was fascinated by Babbage's invention and began corresponding with Babbage regularly, learning as much as she could about his invention and ideas. Ada and Babbage would remain friends and collaborators for the rest of her life.
In 1835, Ada married William King, and then three years later became the Countess of Lovelace when her husband was created first Earl of Lovelace. Her husband was supportive of her mathematical studies and encouraged her to continue to correspond with Charles Babbage and others, including Mary Fairfax Somerville, a Scottish mathematician who was quite well known in scientific circles. In a time when women were viewed as beings too frail for serious thought, Ada pursued her studies with vigor. While women were not allowed to attend University or private clubs where much of the scientific research and discussion took place, they were allowed to attend public lectures and many began to take a greater interest in academic learning. Ada attended several lectures, usually accompanied by her mother or Mary Somerville, and did not let the attitudes of her time dissuade her from exploring her passion for mathematics. Babbage was sympathetic to women's interest in science, and in particular Ada's. He was impressed with her energy and eagerness to learn, and encouraged her to pursue her mathematical interests.
Babbage's Difference Engine was a machine designed to perform mathematical computations. It was the application of the method of finite differences, and was capable of storing numbers and performing additions, thus supplying a method by which tables generated by polynomials could be computed by a uniform process. Babbage's ideas for improvement of the Engine led to his second invention, the Analytical Engine - the world's first computer. He was inspired by the principle of division of labor. During a time when mathematical tables had to be laboriously computed by hand by human "computers," he saw that machine automation of these tasks, which required precision and repetition, would speed up the process and reduce errors.
Unlike the Difference Engine which had actually been constructed, the Analytical Engine existed only in Babbage's mind and on paper. The development of his engines had taken Babbage many years and the government support he had relied upon was running out. No one in the government really understood his ideas for the Analytical Engine or how it was significantly different from the Difference Engine. Eventually the projected cost to support the research became too great and thus the Analytical Engine was never actually constructed.
Ada, however, was one of few people who understood the Analytical Engine intimately and she became an outspoken advocate of Babbage's invention. Babbage would eventually owe to Ada the best interpretation and description of the Analytical Engine. He was frustrated by trying to explain the principle of the machine to people with inadequate mathematical knowledge, and the descriptions he gave of its use were difficult to follow. Ada's description of the Analytical Engine, the set of instructions she wrote for it, and her speculations of its possible uses were published in 1843 in a collection of notes in Richard Taylor's Scientific Memoirs series. It is for this accomplishment that she is now remembered by the scientific community. While Ada's explanation of the Analytical Engine came too late for Babbage and any hope he may have had to construct it, her "Notes" were the first concrete description of Babbage's invention.
Ada's description of the Analytical Engine began with a mathematical description of the Difference Engine and how it differed from the Analytical Engine. Unlike the Difference Engine, which required a human programmer to set the initial values to enter data that had been computed and set into columns, the Analytical Engine used "operation cards" to perform arithmetic on numerical data as well as to respond to symbols representing data. Ada described how the Analytical Engine was capable of computing with general information and stressed its ability to be programmed - that is, to act on general instructions supplied on the operation cards.
The design of the Analytical Engine was adapted from the punched-card principle used in the Jacquard weaving looms. In the looms, punched cards allowed threads to be woven in certain patterns, a task which traditionally had been done by hand. One set of cards determined the operations for the adding and multiplying states in the engine, while another set of cards distributed the operations according to a particular function, providing the engine with data and receiving results. Ada described the details of the Engine: how the engine could achieve iteration by making cards revolve backwards instead of forwards, and how sets of cards could be accessed any number of times, which would provide the functionality of a subroutine or do-loop.
Ada understood the potential power of a computing machine such as envisioned by Babbage - one that had internal memory, could make choices and repeat instructions - and she foresaw its application in mathematical computation, artificial intelligence and even computer music. She was one of few at the time who saw the advantages of abstraction and speculation; she saw beyond what was obviously useful about the Analytical Engine to its contribution to advancing science.
She emphasized the versatility of the Analytical Engine by providing numerous examples such as demonstrations of how it would compute trigonometric functions containing variables, examples of how the engine would do difficult problems without error, and most notably, her detailed example of how the engine would compute the Bernoulli numbers. This last example is what sets Ada apart as the "first computer programmer" - it is in fact a program that illustrates how a function would be computed by the engine without having first been computed by hand.
Ada was also able to see into the future of the Analytical Engine. She speculated that the Engine would be able to solve many problems then considered impossible because of limited resources. She believed the machine would prove indispensable to the future of science and would perhaps be used in the discovery of new problems, and even for what where then considered less interesting problems, such as the generation of prime numbers.
In the Victorian age few women were able to study science or contribute with the development of their own ideas. Ada was a woman working in a man's field but despite this she pursued her passion for mathematics. She understood the importance of Charles Babbage's Analytical Engine and glimpsed the future of computing in her ideas for programming the engine and in her speculations of its possible uses.
Ada was the first woman intimately involved with computer science, even though there was no "computer science," but she is by no means the only one. Many other women have followed in her footsteps in helping to create, explore and define the science of computing.
Perhaps the most well known of these women is Admiral Grace Hopper. Admiral Hopper received her Ph.D. in mathematics from Yale in 1934 and went on to do innovative research in both mathematics and computer science. She worked as a senior mathematician at Eckert-Mauchly Computer Corporation, helped program the UNIVAC I, the first commercial large-scale electronic computer, contributed many ideas to the development of modern compilers, and coined the term "computer bug" when she discovered a bug that had crawled into a large computer and caused an electrical short. "Amazing Grace," as she was often called, died in 1992. She will always be remembered as a pioneer in the field of computing.
Ada, Countess of Lovelace and Admiral Grace Hopper are both featured in The Ada Project (see page 43) history pages, which profile women who have figured prominently in the history of mathematics and computing. These women and many others have contributed to the development of the field and deserve their place in history beside their male counterparts.
Elisabeth Freeman is a graduate research assistant in the Yale University Department of Computer Science.
[email protected]
The Ada Project
A Web Site for Women In Computing
by Elisabeth Freeman and Susanne Hupfer
In 1980, the U.S. Department of Defense honored Ada Lovelace by naming its new programming language "Ada" after her. The Ada Project (TAP) is also named after Ada Lovelace. TAP is a centralized World Wide Web (WWW) site where the vast multimedia resources of the Web can be "tapped" and where women (and men) in computing can find information quickly and easily. TAP was created in 1994 and serves as a clearinghouse for a wide variety of information relating to women in computing. Visitors to the site can find conferences, fellowship and job announcements; listings of discussion groups and organizations; and descriptions of pertinent projects. TAP also includes extensive bibliographies of references relating to women in computing, science and engineering; early technological and scientific education; and academic issues. While TAP's primary focus is on computing, it also includes information of broader interest to women in engineering, mathematics and technology.
TAP has at least three broad goals: to prompt women to investigate potential careers in computing, to encourage women already in computer science to persist and advance in the field, and to foster a sense of "virtual community" among women in the discipline. The TAP section "Fellowship, Grant and Award Information" provides valuable data about the availability of financial resources for education, and their application deadlines. The sections "Upcoming Conferences" and "Organizations and Discussion Groups" give information on the ways in which women can network - both online and in person - with their female colleagues. To provide quick and easy access to time-critical information, TAP includes a "Deadlines and Calls for Participation" section that is an up-to-date compilation of deadlines for the upcoming three months.
TAP features biographical data both about women from the history of computing, such as Ada Lovelace and Grace Hopper, as well as women currently involved in computer science in industry and academia. The section "Past Women of Computing" presents biographies and photographs of influential women from the history of computing and mathematics, while the section "Present Women of Computing" features professional biographies of women around the world currently working and doing research in computing. To date, more than 100 women have contributed either biographies or links to Web pages. By collecting and presenting information about women involved in computer science, we hope to create a "virtual community" in which women new to the field will feel less isolated, and where they will find encouragement, support and perhaps most importantly, mentors who can answer their questions and act as role models.
TAP has generated a great deal of interest since its opening. In its first year of operation, the site recorded more than 32,000 total accesses, reflecting connections from over 7,000 different machines around the world. In March 1995, TAP became an official project of the Association for Computing Machinery's (ACM) Committee on the Status of Women.
Response to the site, as reflected by "The TAP Comments Page," has been extremely positive. The site has supplied many students with information about programs and fellowships; encouraged women to participate in discussion groups at work, school and online; and provided users with statistical and background information for articles, papers and projects.
We encourage all TAP visitors to contribute to the site. TAP is a collection of resources for and by women in academic and industrial computing, and much of the content is relevant to male computer scientists as well. We rely on the entire computing community to help us keep TAP as up-to-date as possible, and users are encouraged to send submissions, feedback and comments.
To access TAP, use Netscape (or another graphical or textual WWW viewer) to open the URL: http://www.cs.yale.edu/ homes/tap/tap.html
Susanne Hupfer is a doctoral candidate in Computer Science at Yale University.
[email protected]