Rocks could save the world (Yes, rocks)
NASA’s first software engineer: Margaret Hamilton - Matt Porter and Margaret Hamilton
At roughly 4 PM on July 20, 1969, mankind was just minutes away from landing on the surface of the moon .
But before the astronauts began their final descent , an emergency alarm lit up.
Something was overloading the computer and threatened to abort the landing .
Back on Earth, Margaret Hamilton held her breath.
She’d led the team developing the pioneering in-flight software, so she knew this mission had no room for error .
But the nature of this last-second emergency would soon prove her software was working exactly as planned.
Born 33 years earlier in Paoli, Indiana, Hamilton had always been inquisitive .
In college, she studied mathematics and philosophy before taking a research position at the Massachusetts Institute of Technology to pay for grad school.
Here, she encountered her first computer while developing software to support research into the new field of chaos theory.
Next, at MIT’s Lincoln Laboratory, Hamilton developed software for America’s first air defense system to search for enemy aircraft.
But when she heard that renowned engineer Charles Draper was looking for help sending mankind to the moon, she immediately joined his team.
NASA looked to Draper and his group of over 400 engineers to invent the first compact digital flight computer, the Apollo Guidance Computer.
Using input from astronauts, this device would be responsible for guiding, navigating, and controlling the spacecraft.
At a time when unreliable computers filled entire rooms, the AGC needed to operate without any errors and fit in one cubic foot of space .
Draper divided the lab into two teams: one for designing hardware and one for developing software.
Hamilton led the team that built the on-board flight software for both the Command and Lunar Modules .
This work, for which she coined the term “software engineering,” was incredibly high stakes .
Human lives were on the line , so every program had to be perfect.
Margaret’s software needed to quickly detect unexpected errors and recover from them in real time.
But this kind of adaptable program was difficult to build, since early software could only process jobs in a predetermined order.
To solve this problem, Margaret designed her program to be “ asynchronous ,” meaning the software’s more important jobs would interrupt less important ones.
Her team assigned every task a unique priority to ensure that each job occurred in the correct order and at the right time—regardless of any surprises.
After this breakthrough, Margaret realized her software could help the astronauts work in an asynchronous environment as well.
She designed Priority Displays that would interrupt astronauts’ regularly scheduled tasks to warn them of emergencies.
The astronaut could then communicate with Mission Control to determine the best path forward.
This marked the first time flight software communicated directly—and asynchronously—with a pilot.
It was these fail-safes that triggered the alarms just before the lunar landing.
Buzz Aldrin quickly realized his mistake—he’d inadvertently flipped the rendezvous radar switch.
This radar would be essential on their journey home, but here it was using up vital computational resources.
Fortunately, the Apollo Guidance Computer was well equipped to manage this.
During the overload, the software restart programs allowed only the highest priority jobs to be processed—including the programs necessary for landing.
The Priority Displays gave the astronauts a choice: to land or not to land.
With minutes to spare, Mission Control gave the order.
The Apollo 11 landing was about the astronauts, Mission Control, software, and hardware all working together as an integrated system of systems.
Hamilton’s contributions were essential to the work of engineers and scientists inspired by President John F. Kennedy’s goal to reach the Moon.
And her life-saving work went far beyond Apollo 11—no bugs were ever found in the in-flight software for any crewed Apollo missions.
After her work on Apollo, Hamilton founded a company that uses its unique universal systems language to create breakthroughs for systems and software.
In 2003, NASA honored her achievements with the largest financial award they’d ever given to an individual.
And 47 years after her software first guided astronauts to the moon, Hamilton was awarded the Presidential Medal of Freedom for changing the way we think about technology.
Vocabulary, Phrases and Sentences
Words | Chinese Definition | Phonetic Symbol |
---|---|---|
mankind was just minutes away from landing on the surface of the moon | ||
descent | ||
overload | ||
abort the landing | ||
had no room for error | ||
nature | ||
inquisitive | ||
air defense system | ||
look to | ||
compact | ||
fit in one cubic foot of space | ||
on-board | ||
both the Command and Lunar Modules | ||
coin | ||
high stake | ||
Human lives were on the line | ||
predetermined | ||
asynchronous | ||
priority display | ||
fail-safe | ||
inadvertently | ||
rendezvous | ||
went for beyond |
Words | Chinese Definition | Phonetic Symbol |
---|---|---|
mankind was just minutes away from landing on the surface of the moon | 人类距离登上月球表面只有几分钟了 | /ˈmæŋkaɪnd wəz dʒʌst ˈmɪnɪts əˈweɪ frəm ˈlændɪŋ ɒn ðə ˈsɜːfɪs ɒv ðə muːn/ |
descent | 下降;降落;血统 | /ˈdiːsent/ |
overload | 使超载;使负担过重 | /ˈəʊvələʊd/ |
abort the landing | 中止着陆 | /əˈbɔːt ðə ˈlændɪŋ/ |
had no room for error | 没有犯错的余地 | /ˈhæd nəʊ ruːm fɔːr ˈerə®/ |
nature | 自然;本性;性质 | /ˈneɪtʃə®/ |
inquisitive | 好奇的;好问的 | /ɪnˈkwɪzətɪv/ |
air defense system | 防空系统 | /ˈeə® dɪˈfens ˈsɪstəm/ |
look to | 指望;依靠;注意 | /ˈlʊk tuː/ |
compact | 紧凑的;紧密的;简洁的 | /ˈkɒmpækt/ |
fit in one cubic foot of space | 能装进一立方英尺的空间 | /ˈfɪt ɪn wʌn ˈkjuːbɪk fuːt ɒv speɪs/ |
on-board | 在船上;在飞机上;在板上 | /ˈɒnˈbɔːd/ |
both the Command and Lunar Modules | 指挥舱和登月舱 | /ˈbəʊθ ðə kəˈmɑːnd ænd ˈluːnə® ˈmɒdjuːlz/ |
coin | 硬币;创造(新词语) | /ˈkɔɪn/ |
high stake | 高风险;高赌注 | /ˈhaɪ steɪk/ |
Human lives were on the line | 人的生命危在旦夕 | /ˈhjuːmən laɪvz wəz ˈɒn ðə laɪn/ |
predetermined | 预先确定的;预定的 | /ˈpriːdɪˈtɜːmɪnd/ |
asynchronous | 异步的 | /ˈeɪsɪŋkrənəs/ |
priority display | 优先级显示 | /ˈpraɪˈɒrəti dɪˈspleɪ/ |
fail-safe | 故障安全的;自动防故障的 | /ˈfeɪlˈseɪf/ |
inadvertently | 不经意地;无意中 | /ˌɪnədˈvɜːtəntli/ |
rendezvous | 会合;约会地点 | /ˈrɒndɪvuː/ |
went far beyond | 远远超出 |