interface theory

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.