Today in Computer Scientists You Haven’t Heard Of: Margaret Hamilton
This is Margaret Hamilton, standing next to one of her earlier projects: The Apollo Guidance Computer’s main operating program.
I’m going to let that sink in for a moment. Look at your image of NASA in the Apollo days. Look at miss Hamilton.
Now, I’m sure you’ve heard the story about how the computer crashed on Neil and Mike on their descent, leaving Neil to make the landing by hand. This story has only the barest grounding in reality.
During the descent, a checklist error left the rendezvous radar – normally used for keeping track of the Command Module in orbit – turned on. Radar is a computationally hungry beast, and the computer unhappily told Neil and Mike that it was being overtasked. It kept right on going, even though it was being overworked. It kept the truly important numbers – altitude, descent rate, fuel consumption – up to date perfectly as they descended, which allowed Neil to fly safely above the lunar surface to find a landing site.
So, here you have a computer, easily the most powerful computer for its size ever made as of 1969, controlling a flying machine above the lunar surface, and correctly juggling multiple real-time processing tasks by priority. This is something that modern computers, fifty years later, still struggle with. Margaret built it and got it right at the very dawn of the multi-tasking operating system. It was something done by Serious Computers – fridge-sized monsters with names like PDP-8 and System/360… and a series of tiny boxes that flew to the moon and back.
And then she went on and did other things. Ever heard the term “Software Engineering”? Margaret’s invention. More technically speaking, she’s responsible for parallel and asynchronous computing (which now is key to every supercomputer and major website), priority scheduling, end-to-end testing, and a huge chunk of human-computer interface theory.
She’s still active in software engineering today.
This is what a space wizard looks like.
In her own words:
“Due to an error in the checklist manual, the rendezvous radar switch was placed in the wrong position. This caused it to send erroneous signals to the computer. The result was that the computer was being asked to perform all of its normal functions for landing while receiving an extra load of spurious data which used up 15% of its time. The computer (or rather the software in it) was smart enough to recognize that it was being asked to perform more tasks than it should be performing. It then sent out an alarm, which meant to the astronaut, I’m overloaded with more tasks than I should be doing at this time and I’m going to keep only the more important tasks; i.e., the ones needed for landing … Actually, the computer was programmed to do more than recognize error conditions. A complete set of recovery programs was incorporated into the software. The software’s action, in this case, was to eliminate lower priority tasks and re-establish the more important ones … If the computer hadn’t recognized this problem and taken recovery action, I doubt if Apollo 11 would have been the successful moon landing it was.”
This woman programmed a computer smart enough to prioritize tasks and make sure essential functions were carried out first even if other tasks were going on – she’s the one who made the moon landing possible, more than anyone else. If her programming hadn’t been able to prioritize, the mission would’ve been aborted.
She’s also published a ton of papers and basically I’m so tired of people never hearing about all the brilliant coding women. Like, when it was first getting off the ground computer programming was a woman’s field – like they specifically looked for and hired women. There were also a ton of female mathematics BS and PhD candidates in the 30s-50s.
And for the record: all the programmers who created the first general-use computer were women. Wanna know why? The men thought actually building the computer -as in, the design of the machine itself – was more important than programming the computer – as in, actually making it work and telling it how to run, y’know, enabling it to actually be useful.
Men didn’t think programming was important so they relegated it to women, and once they realized programming was the MOST important part of computers they yanked those jobs away, made it a boy thing, and failed to highlight the huge role women played in pioneering the computer age.