Pioneers Of Computing And Information Theory Codexery

Margaret Hamilton (software engineer)

Led Apollo flight software development; coined 'software engineering'.

Margaret Hamilton (software engineer)

Margaret Elaine Hamilton (née Heafield; born August 17, 1936) is an American computer scientist who directed the Software Engineering Division at the MIT Instrumentation Laboratory, where she led the development of the on-board flight software for NASA's Apollo Guidance Computer for the Apollo program. She later founded two software companies, Higher Order Software in 1976 and Hamilton Technologies in 1986, both in Cambridge, Massachusetts. She coined the term "software engineering" to distinguish it from hardware and other kinds of engineering, yet treat each type of engineering as part of the overall systems engineering process. On November 22, 2016, she received the Presidential Medal of Freedom from President Barack Obama for her work leading to the development of on-board flight software for NASA's Apollo Moon missions.

field
Computer science, software engineering
nationality
American
known_for
Leading development of Apollo flight software; coining 'software engineering'

Verified Timeline

19361954195519581959196119631965197619862016

Lore & Background

Margaret Hamilton was born August 17, 1936, in Paoli, Indiana, to Kenneth Heafield and Ruth Esther Heafield (née Partington). She graduated from Hancock High School in Michigan in 1954. She studied mathematics at the University of Michigan in 1955 before transferring to Earlham College, where she earned a BA in mathematics with a minor in philosophy in 1958. She cites Florence Long, the head of the math department at Earlham, as helping with her desire to pursue abstract mathematics and become a mathematics professor. She says her poet father and headmaster grandfather inspired her to include a minor in philosophy in her studies. In mid-1959, she began working for Edward Norton Lorenz in the meteorology department at MIT, developing software for predicting weather on the LGP-30 and PDP-1 computers at Marvin Minsky's Project MAC. Her work contributed to Lorenz's future publications on chaos theory, as acknowledged by Lorenz himself. From 1961 to 1963, she worked on the Semi-Automatic Ground Environment (SAGE) Project at the MIT Lincoln Lab, where she was one of the programmers who wrote software for the prototype AN/FSQ-7 computer (the XD-1), used by the U.S. Air Force to search for possibly unfriendly aircraft. She also wrote software for a satellite tracking project at the Air Force Cambridge Research Laboratories. She learned of the Apollo project in 1965 and joined the MIT Instrumentation Laboratory, which developed the Apollo Guidance Computer. She was the first female programmer in the project, and later became Director of the Software Engineering Division. She was responsible for the team writing and testing all onboard in-flight software for the Apollo spacecraft's Command and Lunar Module and for the subsequent Skylab space station. Another part of her team designed and developed the systems software, including error detection and recovery software such as restarts and the Display Interface Routines (also known as the Priority Displays), which Hamilton designed and developed. During the Apollo 11 landing, three minutes before the lunar lander reached the Moon's surface, several computer alarms were triggered. According to software engineer Robert Wills, Buzz Aldrin entered the codes to request that the computer display altitude and other data on the computer's screen. The system was designed to support seven simultaneous programs running, but Aldrin's request was the eighth. The on-board flight software captured these alarms with the "never supposed to happen displays" interrupting the astronauts with priority alarm displays. Hamilton had prepared for just this situation years before, including a failsafe where when you see a priority display, first count to five. By some accounts, the astronauts had inadvertently left the rendezvous radar switch on, causing these alarms to be triggered (the claim that the radar was left on inadvertently by the astronauts is disputed by Robert Wills with the National Museum of Computing). The computer was overloaded with interrupts caused by incorrectly phased power supplied to the lander's rendezvous radar. The program alarms indicated "executive overflows", meaning the guidance computer could not complete all of its tasks in real time and had to postpone some of them. The asynchronous executive designed by J. Halcombe Laning was used by Hamilton's team to develop asynchronous flight software. Hamilton's priority alarm displays interrupted the astronauts' normal displays to warn them that there was an emergency "giving the astronauts a go/no-go decision (to land or not to land)". Jack Garman, a NASA computer engineer in mission control, recognized the meaning of the errors that were presented to the astronauts by the priority displays and shouted, "Go, go!" and they continued. Paul Curto, a senior technologist who nominated Hamilton for a NASA Space Act Award, called Hamilton's work "the foundation for ultra-reliable software design". In 1976, Hamilton co-founded with Saydean Zeldin a company called Higher Order Software (HOS) to further develop ideas about error prevention and fault tolerance emerging from their experience at MIT working on the Apollo program. They created a product called USE.IT, based on the HOS methodology they developed at MIT. It was successfully used in numerous government programs including a project to formalize and implement C-IDEF, an automated version of IDEF, a modeling language developed by the U.S. Air Force in the Integrated Computer.

Reader's Guide

Margaret Hamilton's significance lies in her pioneering role in software engineering at a time when the field did not formally exist. She directed the team that created the on-board flight software for the Apollo Guidance Computer, which was critical to the success of the Apollo Moon missions. Her work on error detection and recovery, including priority displays and asynchronous software design, directly contributed to handling the Apollo 11 landing alarms. She coined the term 'software engineering' to distinguish it from hardware engineering, emphasizing its role within systems engineering. Her legacy includes foundational concepts in ultra-reliable software design and the professionalization of software engineering.

Did You Know?

From Weather Models to the Moon

Margaret Hamilton's professional trajectory spans an extraordinary range of computational work. Her career at MIT began in the meteorology department under Edward Norton Lorenz, where she wrote weather-prediction software on the LGP-30 and PDP-1 machines at Marvin Minsky's Project MAC. That early work later contributed to Lorenz's own publications on chaos theory, a connection he himself acknowledged.

The Priority Display and the Apollo 11 Descent

The most dramatic test of Hamilton's engineering came during the final three minutes of the Apollo 11 lunar descent. Buzz Aldrin, following a routine he had practiced repeatedly in the simulator, entered codes requesting the computer to display altitude and other data. The system was architected to handle seven simultaneous programs, but Aldrin's request became an eighth. The result was a cascade of unexpected error alarms that interrupted the astronauts with what Hamilton had called "never supposed to happen displays." These were the Priority Displays she had designed and developed as part of the error-detection and recovery software. Hamilton had anticipated years in advance that the switchover to new programs behind the alarm screens could lag a step behind what the astronauts expected, creating a dangerous desynchronization between human and machine. Her failsafe architecture, built into the onboard flight software, captured those alarms and kept the landing sequence on track rather than triggering an abort. The system she had engineered in a lab in Cambridge, Massachusetts, ultimately allowed the first crewed Moon landing to proceed.

Naming a Discipline and Earning National Recognition

Hamilton's influence extends well beyond any single mission. She is credited with coining the term "software engineering," a phrase she introduced to set the discipline apart from hardware and other branches of engineering while still treating each as a component of a broader systems-engineering process. At the time she was doing this work, computer science was not yet an established academic field and dedicated software-engineering courses did not exist; programmers learned through hands-on, on-the-job experience. She was also the first woman to serve as a programmer on the Apollo project at MIT, a distinction that underscores how few women occupied technical roles in aerospace computing during the 1960s.

Roots in Indiana and a Love of Abstract Thought

Hamilton has pointed to Florence Long, who headed the mathematics department at Earlham, as a key figure in nurturing her ambition to pursue abstract mathematics and eventually become a professor. The philosophy minor, she explained, was inspired by her poet father and her grandfather, who had served as a headmaster. After college she initially planned to enroll in graduate study in abstract mathematics at Brandeis University in Boston, a path that would have kept her firmly in pure mathematics had circumstances not redirected her toward computing.

More in Pioneers Of Computing And Information Theory 1-18

Spotted an error? Know more?

This is a living reference — every entry is fact-audited, and reader corrections feed straight into our audit queue. Suggest an edit · See this site's audit record

Comments

Loading…
Open in the interactive codex →