Margaret Hamilton: Programmer Supreme

This week’s Occupy Math is mostly about the most excellent and ground-breaking software engineer Margaret Hamilton (she was the one who popularized the term software engineer). The picture at the top of the post is Ms. Hamilton standing next to the source code for the control code for the moon shot. She wrote code for air defense in the cold war, weather prediction, and was the director of software development for the Apollo Program and Skylab.

With a bachelor’s degree in math, Ms. Hamilton is a founder of the modern age and a towering presence in computer science.

Ms. Hamilton made two huge contributions to the discipline of computer science:

  1. While it has many names – systems modeling, enterprise process modeling, quality assurance, and error detection among them – Ms. Hamilton was one of the founders of the obviously critical discipline of getting a computer to function reliably.
  2. Our greatest access to huge amounts of computer power is dividing up a job across many (thousands? millions?) of processors. Originally called asynchronous software and later called parallel computing Ms. Hamilton was among the first to figure out how to do this sensibly and efficiently.

A recent study of code downloaded from GitHub found that code written by women was accepted more often than code written by men as long as their femaleness was concealed. Looking only at code where the sex of the programmer was obvious, code written by men was accepted more often. This is deeply disappointing. Occupy Math can understand five-year-olds making a clubhouse with a sign “No Gurlz Alowd!” (he would try and talk them out of it), but seeing the behavior in alleged grownups is just sad.

Given the bias against women still pervading computer science, Ms. Hamilton’s status as head software developer for the Apollo program in the early 60’s reflects awesome skill and undeniable competence.

If it were not for robust code engineered by Ms. Hamilton, the Apollo 11 landing would have been aborted three minutes out from Tranquillity base. Her code was able to survive an onslaught of mis-labeled high priority information from the rendezvous radar module (which wasn’t needed for landing). Having a computer able to concentrate on only the critical (landing related) tasks and ignore spurious information is really good design. Doing it in 1969 is incredible.

Without Ms. Hamilton’s skill, we would have missed “Houston. This is Tranquillity Base. The Eagle has landed.”

After her work for NASA Ms. Hamilton founded a software company, Higher Order Software, that worked on how to specify software so that it could be written smoothly and transparently. In 1986 she founded Hamilton Technologies which still offers robust software development tools and techniques. The theme of dependable software pervades Ms. Hamilton’s career. Occupy Math is sure that most of his readers will agree that more people should use her techniques.

One of the other historical greats in computing, Ada Lovelace has an award named after her. Margaret Hamilton was the 1986 recipient of that award. Rear Admiral Grace Hopper, the inventor of COBOL, is another woman at the foundations of computer science. Occupy Math hopes the example of Ms. Hamilton and these other women will help the community of computer scientists adjust its irrational beliefs and expectations about women. I’d like to thank the reader that pointed out Ms. Hamilton to Occupy Math. Remember, Occupy Math reads and, when possible, acts on your comments and tweets. So: comment! Tweet!

I hope to see you here again,
Daniel Ashlock,
University of Guelph,
Department of Mathematics and Statistics


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s