I am an engineer, and I have daughters, so I am big on encouraging women in STEM and sharing my love of math and science with them. We were planning a trip to Cape Canaveral and my friend suggested I get the book “Women in Science: 50 Fearless Pioneers who changed the World” by Rachel Ignotofsky. After finding it on Amazon, I immediately went to the index to see if I approved of the book or not. It needed to have three women in it for my approval. It did, so I bought it and the girls enjoyed reading it on the trip.
Anyone in the IT industry will know the name Alan Turing. He’s the “father of computers” for his work with formalizing algorithms and his work on the Turing Machine. Do not take me the wrong way, Turing was an amazing genius, but his work was just the beginning. Turing was the father of computers, but I propose we include the names Grace Hopper and Margaret Hamilton in the same discussion.
Rear Admiral “Amazing” Grace Hopper earned her PhD in Mathematics from Yale and was a Professor of Mathematics at Vassar during a time when women were shunned from the sciences. When WWII broke out, she kept getting rejected for the navy due to her professorship, size, and age. So she took a leave of absence from Vassar and joined the Naval Reserve where she was first in her class at Midshipmen’s School and assigned to the Bureau of Ships Computation Project at Harvard. She was on the Mark I Computer staff under Howard Aiken. After the war, she turned down a full professorship at Vassar to continue working as a research fellow for the Navy at Harvard.
In 1949, Hopper joined the team developing the UNIVAC I. At this role, she suggested developing a language in English, but was told “computers don’t understand English.” The UNIVAC company was taken over by another and Hopper was given the chance to make the first compiler, the “A compiler”. She had an operational compiler that no one believed would work. At the time, computers were for arithmetic only. Her link-loader “translated mathematical notation into machine code.” Manipulating symbols was fine for mathematicians but it was no good for data processors who were not symbol manipulators. Very few people are really symbol manipulators. If they are they become professional mathematicians, not data processors. It's much easier for most people to write an English statement than it is to use symbols. So I decided data processors ought to be able to write their programs in English, and the computers would translate them into machine code. That was the beginning of COBOL, a computer language for data processors. I could say "Subtract income tax from pay" instead of trying to write that in octal code or using all kinds of symbols. COBOL is the major language used today in data processing.
COBOL is usually shunned today, but at the time, it was groundbreaking. What Hopper really envisioned is what we today, would call Dynamic Software Language (DSL). The idea that if someone knows the domain, it would be easy to teach them a computer language for that specific domain, eliminating the need for high salaried programmers constantly maintaining the code. COBOL was also the way to get free from writing assembly. We were using a language instead of machine code. Computers became more than giant calculators. And making them do what you wanted didn’t require knowing the specific machine code for that particular machine. Compilers made it so we can use one language and the compiler would convert it to the specific machine code needed. Every programmer writing in javascript or python or Java or .Net or anything not assembly should know the name Grace Hopper.
You may have seen this picture before, but who was she and why is she standing by that huge stack of really large books?
That large stack of books is the software for the Apollo program, and that woman was the head of software for the Apollo Program.
Margaret Hamilton was another woman with a background in mathematics. She got her BA in mathematics at Earlham College in 1958. You will notice that Alan Turing, Grace Hopper, and now Margaret Hamilton all have mathematic degrees, not software engineering or computer science. That’s because software development wasn’t considered an engineering discipline, let alone a science. It was just a machine you learned on the job.
Margaret was a high school math teacher while her husband finished his undergrad at Harvard and she moved to Boston with him. She was considering getting a grad degree in abstract mathematics, and took an interim job at MIT working on computer systems to help predict the weather. These systems were part of Project Whirlwind that was built by the government to track and predict storms, but the cold war turned the project into military applications for anti-aircraft defense against a possible soviet attack. Part of the project was a problem that was so hard no one could get it to run. Not only was it a tricky problem, the comments were written in Latin and Greek. Not only did the brand new team member Hamilton, get the program to run, she had it spit out answers in Greek and Latin as well. It was her efforts on this project that made her a candidate for the lead programmer for the Apollo Program.
As lead of the Apollo software program, her main team was responsible for the in-flight software. She personally developed the systems for error detection, restarts, recovery, and display. During one Apollo mission in the moments before touching down on the moon, various alarms went off. It was Hamilton’s attention to making reliable software that alerted the astronauts that there were issues, but the mission could continue and Apollo 11 was able to successfully land on the moon.
Her areas of expertise include systems design and software development, enterprise and process modeling, development paradigm, formal systems modeling languages, system-oriented objects for systems modeling and development, automated life-cycle environments, methods for maximizing software reliability and reuse, domain analysis, correctness by built-in language properties, open-architecture techniques for robust systems, full life-cycle automation, quality assurance, seamless integration, error detection and recovery techniques, man-machine interface systems, operating systems, end-to-end testing techniques, and life-cycle management techniques. If those sound familiar, it is the base for software development and software lifecycle. You see, Margaret Hamilton wasn’t just a fantastic lead developer to some of the largest engineering projects ever, she also was the person that developed the term and discipline of software engineering. When she coined the phrase software engineer while starting at NASA, it was considered a joke. It wasn’t until respected engineers of other disciplines also recognized the term and recognized it was just as important of other engineering disciplines when developing the project. Margaret Hamilton is the reason you have a computer science or software engineering degree, not just a math degree.
Alan Turing may have been the father of computers, but I would like to propose that we recognize Grace Hopper and Margaret Hamilton as the “Mothers of Modern Computing”. Without those two amazing pioneers, we would be math majors working on a machine, writing machine code to specific hardware nowhere near where we are today as far as technology. While the IT industry seems to be male dominated, we always need to remember that modern computing was built on the shoulders of these pioneer technical women.