Neil Armstrong owed his moon walk on July 20, 1969 to a former high school teacher named Margaret Hamilton.
Three minutes before the Apollo 11 lunar lander Eagle reached the moon's surface, computer alarms went off. But Margaret Hamilton had anticipated the problem and created software to solve it. The landing went ahead.
Thirty-four years after Armstrong walked on the moon, NASA administrator Sean O’Keefe acknowledged the contribution of Margaret Hamilton and her team. They didn't just land a man on the moon, they created the building blocks for modern software engineering.
Margaret Hamilton was born Aug. 17, 1936 in Paoli, Ind., to Kenneth and Ruth Heafield. She earned a B.A. in Mathematics from Earlham College, then married and taught high school math and French while her husband finished college. In 1958, she moved to Boston, intending to study abstract mathematics at Brandeis University. She got a job, though, at MIT, to develop software for predicting the weather.
At MIT Margaret Hamilton taught herself to program computers.
Margaret Hamilton coined the phrase 'software engineering' to gain legitimacy for her work.
In an interview, she said, people thought it funny that she used the phrase.
It was an ongoing joke for a long time. They liked to kid me about my radical ideas. Software eventually and necessarily gained the same respect as any other discipline.
Margaret Hamilton then got a job at the Software Engineering Division of the MIT Instrumentation Laboratory, which developed software for the NASA Apollo programs. Then in her early 30s, she supervised a team of 100 engineers, mathematicians, programmers and technical writers.
The team developed the code for the Apollo Guidance Computer, one of the first chip-based computers. It had only 64 kilobytes of memory. A typical cellphone has 31,000 times that memory.
For the Apollo 11 moon mission, the guidance computer had to process input from Mission Control, from the spacecraft's instruments and from the astronauts.
Margaret Hamilton understood the computer could be overloaded. She and her team wrote a program that established the order in which the computer would do the different things it was asked to do all at the same time.
The team created a feature crucial to the moon landing: the ‘asynchronous executive.’ That meant the computer would recognize the danger of overloading and drop low-priority tasks.
When Neil Armstrong and Buzz Aldrin were about to land on the moon, something went wrong. Their checklist had a mistake in it: It told the astronauts to activate the radar system used for taking off from the moon, but they didn't need it for landing. The radar started sending the computer massive amounts of information, threatening to overload it. Had the guidance computer overloaded, the astronauts would have to abort the mission.
The asynchronous executive saved the landing. It told the computer to ignore the information from the rendezvous radar. The computer automatically rebooted, and the Eagle landed.
"If the software had not functioned, the moon landing might not have happened," wrote space journalist A.J.S. Rayl. "Instead, Neil Armstrong took that 'giant leap' for all humankind."
Not until 2003 did NASA recognize Margaret Hamilton’s contribution to the moon landing – and to computer science. She received the NASA Exceptional Space Act Award. The scientist who nominated her, Paul Curto, said,
"I was surprised to discover she was never formally recognized for her groundbreaking work. Her concepts of asynchronous software, priority scheduling, end-to-end testing, and man-in-the-loop decision capability, such as priority displays, became the foundation for ultra-reliable software design."
Finally, on Nov. 22, 2016, President Barack Obama awarded her the Presidential Medal of Freedom for her work on the Apollo Moon Missions.
Read about another pioneering computer scientist, Grace Hopper. This story was updated in 2018.