Kids, Code, and Computer Science Magazine

Margaret Hamilton

NASA

She was in her 30s when she led the team that developed mission critical software used guide the Apollo moon landings.

Today we take for granted software works well and solves a wide range of problems. But software didn’t always work this way. Or need to work this way. The Apollo moon landing needed a guidance system that could handle errors, prioritize tasks, execute tasks at different times, and more. Many of these demands were new to computing. Margaret Hamilton led the team that developed this new software.

If you have ever flown on an airplane, you probably know some of the flight was managed by computers. You also may have heard Airbus recently acknowledged the crash of a Spanish A400 plane was caused by faulty software configuration of the engines.

Now imagine in the mid to late 1960s designing computer hardware and software to land human beings on the moon, almost fifty years ago. Ideas about fault tolerance in real life computer systems were new. And the tight space limitations of the lunar lander required using another new technology, microchips on computer boards. Today we take both fault tolerance and microchips for granted. It’s rare when one or both cause a crash and loss of human life.

That wasn’t the case for the Apollo moon landing missions.

Margaret Hamilton, a self taught programmer with advanced math degrees, managed a team at the MIT Instrumentation Lab that won the NASA contract to write guidance software to land the first human beings on the moon. Their software had to accept inputs from a number of sensors which tracked speed, location, and other details then manage the data to answer questions from the astronauts in real time and signal as problems happened.

There were no code bases or earlier software projects to learn from. The software and programming techniques had to be created from scratch.

One big problem they solved is how to manage the priority of data fed into the computer. As it happened, their solution saved the first lunar landing. Three mintues before landing, the onboard computer was flooded with useless data when one of the astronauts accidentally switched on a radar system while following a script. The computer set off alarms, to indicate it had to deal with useless data, but ignored the lower priority radar data and focussed, instead, on data needed to put the lander in position for the astronauts to fly the final short distance to land on the moon based on what they saw out their windows.

Imagine if the software created by Hamilton’s team had handled all data equally. The useless data would have overwhelmed the processing power of the computer and likely crashed the lunar lander or led to the landing and mission being aborted.

While the design and code were tweaked for future missions, the initial designs and solutions from Hamilton and her group were kept intact. And the team went on to build software for Skylab, the first space station, in the 1970s. Many of their ideas and solutions became the building blocks of software development, for example, end to end testing, asynchronous software, and
priority scheduling.

Hamilton learned computer programming while working on weather forecasting projects at MIT then projects for the Air Force. At that time, software development and computer science were not separate disciplines. You learned programming on the job while solving problems.

Perhaps one of the more amazing details about Hamilton and her work? She was only in her early 30s when she led the MIT team and made significant critical contributions to the NASA Apollo moon landing program. She went on to start a business and continue to contribute ideas that advanced software design and development. She’s also credited with coining the term, “software engineering.”

Learn More

Margaret Hamilton

http://en.wikipedia.org/wiki/Margaret_Hamilton_%28scientist%29
http://klabs.org/home_page/hamilton.htm
http://history.nasa.gov/alsj/a11/a11Hamilton.html

Software — and a Woman — at the Heart of Lunar Triumph

http://www.wired.com/2014/08/software-woman-heart-lunar-triumph/

Apollo Guidance Computer (AGC)

http://en.wikipedia.org/wiki/Apollo_Guidance_Computer
http://en.wikipedia.org/wiki/Apollo_Guidance_Computer#Software

Airbus Confirms Software Configuration Error Caused Plane Crash

http://arstechnica.com/information-technology/2015/06/airbus-confirms-software-configuration-error-caused-plane-crash/

How the Apollo 11 Moon Landing Worked (Infographic)

http://www.space.com/17411-apollo-11-moon-landing-explained-infographic.html

Also In The August 2015 Issue

In his classroom, he and his students learn together as a community.

These fifth grade students use their genius hours and Trello software to answer tough questions.

Visual storytelling apps are a great way for kids to document and explore their lives.

Raspberry Pi, Arduino, BeagleBone, Micro Bit, Edison, CHIP, and other handheld computers trace their history to board computers used by engineers.

Random Hacks of Kindness, Jr. helps schools and groups host one day hacking events for kids to work with local non-profit groups.

Resources based on teacher recommendations and other sources.

The new Sphero SPRK Edition makes it even easier for teachers, parents, and kids to learn math, robotics, and programming.

Facts, programs, and groups can help girls succeed at STEM careers.

She was in her 30s when she led the team that developed mission critical software used guide the Apollo moon landings.

Learn about and explore the code used to guide Apollo missions.

CRUD is a powerful concept used everywhere in software programming that uses a database.

Links from the bottom of all the August 2015 articles, collected in one place for you to print, share, or bookmark.

Interesting stories about computer science, software programming, and technology for August 2015.

Some thoughts on starting the third year of publishing this magazine and what's new this month.