We started class reviewing the feedback from last class—it seems that everyone is pretty satisfied, which is great!  From now on, we will be doing about a half and half mix and reading review and class discussion, which is very similar to the previous class format.  A new element will be focused reading questions (non-graded) to aid the reading process, given out via email.

There will be a new blog post with the class’s topics for Assignment #2, as we all kicked butt on the assignment with an average of 9.3/10.

We ended with Hollerith last time, so today we continued right where we left off.  It was mentioned that IBM started on their path to creating the modern computer, at this moment in history, making calculating machines.  The company began as CTR, and became successful selling punch cards to other companies.  This was a very lucrative venture because each punch card can only be used once.  Howard Aiken designed the first real computer in the modern sense, produced by IBM, which cost $1.5 million in modern dollars, which wasn’t even a commercial venture.  The machine was given to Harvard University, and named the Harvard Mark I (although officially it was called Automatic Sequence Controlled Calculators).

This brings us to today’s real topic, Grace Hopper.  She worked as a mathematician for the navy, and when Aiken requested women from WAVES to do calculations (women were often used for calculations during this time, which I found surprising), Hopper started working for IBM.  We read her paper, “The Education of a Computer,” in which she talked about programming computers.  Programming in her time was very low level in comparison to modern programming.  She envisioned using programming languages to speed up and enhance the accuracy of computer calculations, because at the time, only raw numbers were able to be entered into computers.  To demonstrate this process, we played a game called “Robo Rally” in groups of four.

Each team of two was given a robot pieces, and told the following instructions:

000: Forward 1

101: Forward 2

010: Turn right

011: Turn left

100: Back up 1

The goal of the game is to reach the goal marker in 10 moves or less.  The conveyor belt spaces move you one or two spaces post turn, (depending on the number or arrows in the space), the gear spaces rotate you 90 degrees post turn, and the black spaces are death holes that you fall through and die.

The actual game, of course, does not work this way.  Instead of binary codes, players are given cards with symbols on them which represent possible moves.  This is better because sequences of zeros and ones have no semantic meaning to us, and it is very easy to make clerical errors.  Hopper rightly saw that a language to program computers would make programming far more human-friendly.

Grace Hopper did eventually create a programming language, which she called FLOW-MATIC.  At the time, programmers used flow charts to accurately use binary, which inspired the name FLOW-MATIC for her language.  IBM advertised the change thusly, “Mastering the knowledge of the complicated techniques and symbols of conventional computer flow charts requires a long training period.  Flow-Matic charting, however, can be easily grasped by anyone with knowledge of the application to be programmed.”

A fun anecdote about Grace Hopper was the story of the “first bug,” which happened to Harvard Mark II in 1947.  The word bug was used to describe as a flaw in physical design at the time, but after a moth was actually found in the machinery, disrupting a computer program, the term “bug” became a term for a programming flaw or mistake, and “debugging” became the process of fixing this mistake.

Finally, we watched this video:

Grace Hopper 60 Minutes Interview in 1982

For next time, the readings are available on the syllabus.  Questions will be sent out via email, including a request for a saying, less than 80 characters, to be brought in by each student.