Thursday, December 11, 2014

Standing on the shoulders of giants

In this case, those shoulders are a little smaller, but no less impressive. [Link]
Margaret Hamilton earned her BA in math from Earlham College, but obviously learned about programming on the job—there was no other way. In the photo above, she is standing in front of the printouts of the code for the Apollo guidance system, a lot of which she wrote and which she oversaw.
She was all of 31 when the Apollo 11 lunar module landed on the moon, running her code. (Apollo 11 was able to land at all only because she designed the software robustly enough to handle buffer overflows and cycle-stealing.)
She’s now a tech CEO and won the ‘86 Lovelace Award and the NASA Exceptional Space Act Award.
The engineers weren’t all boys with crewcuts, short sleeve oxford shirts, and narrow black ties. That’s just a fairy tale they told for a while.
Her Wikipedia Entry.
At NASA Hamilton was responsible for helping pioneer the Apollo on-board guidance software required to navigate to/from and land on the moon, and its multiple variations used on numerous missions (including the subsequent Skylab).[1] She worked to gain hands-on experience during a time when computer science and software engineering courses or disciplines were non-existent.
In the process, she produced innovations in the fields of system design and software development, enterprise and process modelling, preventative systems design, development paradigm, formal systems (and software) modelling languages, system-oriented objects for systems modelling 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 (including systems to software), distributed processing systems, error detection and recovery techniques, man/machine interface systems, operating systems, end-to-end testing techniques, and life-cycle management techniques.[1]
These in turn led her to develop concepts of asynchronous software, priority scheduling, and man-in-the-loop decision capability, which became the foundation for modern, ultra-reliable software design.


No comments:

Post a Comment