Margaret Hamilton (software engineer). Margaret Elaine Hamilton (; born August 17, 1936) is an American computer scientist. She was director of the Software Engineering Division of the MIT Instrumentation Laboratory, which developed on-board flight software for NASA's Apollo program. She later founded two software companies, Higher Order Software in 1976 and Hamilton Technologies in 1986, both in Cambridge, Massachusetts.

Hamilton has published more than 130 papers, proceedings, and reports, about 60 projects, and six major programs. She is one of the people credited with coining the term "software engineering".

On November 22, 2016, Hamilton 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.

Early life and education 
Margaret Elaine Heafield was born August 17, 1936, in Paoli, Indiana, to Kenneth Heafield and Ruth Esther Heafield (). The family later moved to Michigan, where Margaret graduated from Hancock High School in 1954. 

She studied mathematics at the University of Michigan in 1955 before transferring to Earlham College, where her mother had been a student. 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.

Career 
In Boston, Hamilton initially intended to enroll in graduate study in abstract mathematics at Brandeis University. However, in mid-1959, Hamilton began working for Edward Norton Lorenz, in the meteorology department at MIT. She developed software for predicting weather, programming on the LGP-30 and the PDP-1 computers at Marvin Minsky's Project MAC. Her work contributed to Lorenz's publications on chaos theory. At the time, computer science and software engineering were not yet established disciplines; instead, programmers learned on the job with hands-on experience. She moved on to another project in the summer of 1961, and hired and trained Ellen Fetter as her replacement.

SAGE Project 
From 1961 to 1963, Hamilton 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. The SAGE Project was an extension of Project Whirlwind, started by MIT to create a computer system that could predict weather systems and track their movements using simulators. SAGE was soon developed for military use in anti-aircraft air defense. Hamilton said:

It was her efforts on this project that made her a candidate for the position at NASA as the lead developer for Apollo flight software.

MIT Instrumentation Laboratory and the Apollo Guidance Computer 

Hamilton learned of the Apollo project in 1965 and wanted to get involved due to it being "very exciting" as a Moon program. She joined the MIT Instrumentation Laboratory, which developed the Apollo Guidance Computer for the Apollo lunar exploration program. Hamilton was the first programmer hired for the Apollo project at MIT and 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 on-board 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. This included error detection and recovery software such as restarts and the Display Interface Routines (also known as the Priority Displays), which Hamilton designed and developed. She worked to gain hands-on experience during a time when computer science courses were uncommon and software engineering courses did not exist. 

Her areas of expertise include: systems design and software development, enterprise and process modeling, development paradigm, formal systems modeling languages, system-oriented objects for systems modeling and development, automated life-cycle environments, methods for maximizing software reliability and reuse, domain analysis, correctness by built-in language properties, open-architecture techniques for robust systems, full life-cycle automation, quality assurance, seamless integration, error detection and recovery techniques, human-machine interface systems, operating systems, end-to-end testing techniques, and life-cycle management techniques. These techniques are intended to make code more reliable because they help programmers identify and fix errors sooner in the development process.

Apollo 11 landing 
In one of the critical moments of the Apollo 11 mission, the Apollo Guidance Computer, together with the on-board flight software, averted an abort of the landing on the Moon. 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. This action was something he requested many times whilst working in the simulator. The result was a series of unexpected error codes during the live descent. 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:

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".

Hamilton later wrote of the incident:

Businesses 
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-Aided Manufacturing (ICAM) project. In 1980, British-Israeli computer scientist David Harel published a proposal for a structured programming language derived from HOS from the viewpoint of and/or subgoals. Others have used HOS to formalize the semantics of linguistic quantifiers, and to formalize the design of reliable real-time embedded systems.

Hamilton was the CEO of HOS through 1984 and left the company in 1985. In March 1986, she founded Hamilton Technologies, Inc. in Cambridge, Massachusetts. The company was developed around the Universal Systems Language (USL) and its associated automated environment, the 001 Tool Suite, based on her paradigm of development before the fact for systems design and software development.

Legacy 

Along with Anthony Oettinger or Barry Boehm, Hamilton is one of the people credited with naming the discipline of "software engineering". Hamilton details how she came to make up the term "software engineering":

When Hamilton started using the term "software engineering" during the early Apollo missions, software development was not taken seriously compared to other engineering, nor was it regarded as a science. Hamilton was concerned with legitimizing software development as an engineering discipline. Over time the term "software engineering" gained the same respect as any other technical discipline. The IEEE Software September/October 2018 issue celebrates the 50th anniversary of software engineering. Hamilton talks about "Errors" and how they influenced her work related to software engineering and how her language, USL, could be used to prevent the majority of "Errors" in a system. With USL, rather than continuing to test for errors, her program was designed to keep most errors out of the system from the beginning. USL was created after her knowledge and experience from the Apollo mission, in which she determined a mathematical theory for systems and software. This method was then, and still is, highly impactful to the field of software engineering. Writing in Wired, Robert McMillan noted: "At MIT she assisted in the creation of the core principles in computer programming as she worked with her colleagues in writing code for the world's first portable computer". Hamilton's innovations go beyond the feats of playing an important role in getting humans to the Moon. According to Wireds Karen Tegan Padir: "She, along with that other early programming pioneer, COBOL inventor Grace Hopper, also deserve tremendous credit for helping to open the door for more women to enter and succeed in STEM fields like software."

Tributes

In 2017, a "Women of NASA" LEGO set went on sale featuring minifigures of Hamilton, Mae Jemison, Sally Ride, and Nancy Grace Roman. The set was initially proposed by Maia Weinstock as a tribute to the women's contributions to NASA history, and Hamilton's section of the set features a recreation of her famous 1969 photo posing with a stack of her software listings.

In 2019, to celebrate 50 years after the Apollo landing, Google decided to make a tribute to Hamilton. The mirrors at the Ivanpah Solar Power Facility were configured to create a picture of Hamilton and the Apollo 11 by moonlight.

Margo Madison, a fictional NASA engineer in the alternate history series For All Mankind, was inspired by Hamilton.

Awards 

 In 1986, Hamilton received the Augusta Ada Lovelace Award by the Association for Women in Computing.
 In 2003, she was given the NASA Exceptional Space Act Award for scientific and technical contributions. The award included $37,200, the largest amount awarded to any individual in NASA's history.
 In 2009, she received the Outstanding Alumni Award from Earlham College.
 In 2016, she received the Presidential Medal of Freedom from Barack Obama, the highest civilian honor in the United States.
 On April 28, 2017, she received the Computer History Museum Fellow Award, which honors exceptional men and women whose computing ideas have changed the world.
 In 2018, she was awarded an honorary doctorate degree by the Polytechnic University of Catalonia.
 In 2019, she was awarded The Washington Award.
 In 2019, she was awarded an honorary doctorate degree by Bard College.
 In 2019, she was awarded the Intrepid Lifetime Achievement Award.
 In 2022, she was inducted into the National Aviation Hall of Fame in Dayton, Ohio.

Publications 

Hamilton, M. (April 1994). "Inside Development Before the Fact". (Cover story). Special Editorial Supplement. 8ES-24ES. Electronic Design.
 Hamilton, M. (June 1994). "001: A Full Life Cycle Systems Engineering and Software Development Environment". (Cover story). Special Editorial Supplement. 22ES-30ES. Electronic Design.
 Hamilton, M.; Hackler, W. R. (2004). "Deeply Integrated Guidance Navigation Unit (DI-GNU) Common Software Architecture Principles". (Revised December 29, 2004). DAAAE30-02-D-1020 and DAAB07-98-D-H502/0180, Picatinny Arsenal, NJ, 2003–2004.
 Hamilton, M.; Hackler, W. R. (2007). "Universal Systems Language for Preventative Systems Engineering", Proc. 5th Ann. Conf. Systems Eng. Res. (CSER), Stevens Institute of Technology, Mar. 2007, paper #36.

Personal life 
Hamilton has a sister Kathryn.

She met her first husband, James Cox Hamilton, in the mid-1950s while attending college. They were married on June 15, 1958, the summer after she graduated from Earlham. She briefly taught high school mathematics and French at a public school in Boston, Indiana. The couple then moved to Boston, Massachusetts, where they had a daughter, Lauren, born on November 10, 1959. They divorced in 1967 and Margaret married Dan Lickly two years later.

See also 
 List of pioneers in computer science

References

Further reading

External links 

 Hamilton Technologies, Inc. 
 MIT News
 Margaret Hamilton  Video produced by Makers: Women Who Make America
 Margaret Hamilton ’58– Presidential Medal of Freedom Recipient : Earlham College profile

1936 births
Living people
People from Paoli, Indiana
American computer scientists
American women computer scientists
Apollo program
Earlham College alumni
University of Michigan College of Literature, Science, and the Arts alumni
Massachusetts Institute of Technology faculty
NASA people
Presidential Medal of Freedom recipients
MIT Lincoln Laboratory people
Computer programmers
American software engineers
Scientists from Indiana
20th-century American women scientists
American women academics
21st-century American women
Women rocket scientists
Apollo 11