## Whatever happened to …

… the Hollerith Code? (and by inheritance, the punched computer card)

Image Credit – Wikimedia Commons – https://commons.wikimedia.org/wiki/File:FortranCardPROJ039.agr.jpg – Attribution-Share Alike 2.5 Generic

It was the CSTA Conference last summer in San Diego.

I was sitting next to Alfred Thompson and he was showing off various things about his newest computer, including facial recognition to log in.  Then, he showed me a project that he was working on.  It was one where he was showing off the Hollerith Code.

Wow, that brought back memories!

When I got my first teaching job, I looked through the materials left to me.  One of the questions on the exam was to “give the Hollerith Code for the following characters”.  Seriously?

For those that remember, the Hollerith Code was invented by Herman Hollerith and was a scheme for punching holes into a computer card so that you could provide instructions or data to a computer for execution.  If you look carefully at the card above, you’ll see the digits 0-9 and then above a couple of rows.  The digits were easy.  You just punched the digit you wanted.  Letters were a different game.  They were created by a combination of a punch in the top rows or a zero followed by a digit.  The combination resulted in a representation of the letter.  If you look closely, you’ll see that a Z is formed by a 0 and a 9.  For a greater discussion and more information that you’d ever care to know about this, check out this link.

Essentially, your program was a sequence of cards – one per instruction punched according to the rules of the language.  In the example above, branded a Fortran card, columns 1-5 were for statement numbers, 6 was a continuation column if your statement required two cards, 7-72 for the actual instruction and then 73-80 to identify the card if you were so inclined.  My personal theory was that the original CRT displays showed 80 characters inspired by the punch card.  I have no idea whether that is true or not.  So, call that an alternative fact, if you wish.

I still can’t get over students having to memorize the punches and characters though.

So, a good question would be – how do the holes get into the cards?  Through a keypunch, of course.  My first keypunch machine was an IBM 026.  In high school, we had one and time to get on it was based on a sign up basis.  That was never enough time so there were times that lunches and out of school hours were spent in the computer room.  When I got to university, it was comforting to see that the 026 was there as well in addition to the more modern looking model 029.  No idea if there was an 027 or 028.

It was an expensive time to be a programmer and certainly not good for the environment.  You had to buy the cards although \$JOB and \$ENTRY cards were free (and in different colours).  If you made a mistake, the card was no good.  You couldn’t go back and fill in the incorrect hole.  Being the cheap person that I am, I attribute programming in COBOL (a very verbose language) to my mastering of keyboarding.

It also led to one of my favourite jokes that kept my students rolling in the aisles.

What’s the most expensive computer statement?
X=0

Anyway, I thought it was funny.

There were bad things about punched cards.  You had to devise some way to carry them, keeping them dry.  At university, after exams, it wasn’t unusual to see thousands of these things discarded on the grounds outside the Math and Computer Science building as the end of a course was celebrated by tossing them from the lounge.  The building itself looked like one giant punched card.

As noted above, my first teaching job involved using punched cards.  We had two keypunch machines for student use and they could buy their cards through the school store.  Now, every teacher recognizes there are opportunities for student fun/abuse here.  The little chads were collected in an easily removable bucket under the keyboard.  If you weren’t carefully about cleaning these regularly, they passed for confetti in the hallways.  Another form of fun/abuse was to reorder your elbow partner’s deck of cards when they weren’t looking.  Or go nuclear and just knock the whole set off the table.

Survival techniques are in order here!  We talked about numbering the cards (on the back where the reader couldn’t get to them) so that they could easily be put back in order.  1 2 3 4 5 worked well until you needed to insert a card resulting in 2b 2c.  I recall one student who planned for the worst and numbered them 5 10 15 20 25.  Other techniques like writing a diagonal with a marking pen on the tops could help keep them in order.

Another concern for the classroom teacher was being able to teach the concepts to be done in as few (read as affordable) statements as possible.

As a teacher, you haven’t lived until you enjoy the noise of a keypunch going on while you’re trying to remain on point.  The worse noise was the DUP key which allowed for easily duplication of a card.

The Hollerith Code led to other ways to thinking about encoding characters so, while the description above now reads archaic, there are modern lessons to be learned here.  But, memorizing them?

This Computer Science teacher embraced the day when punched cards in the classroom just became a fond memory.  However, coding characters remains a constant today.

Speaking of memories, if Alfred happens to read this post, I hope he updates us on his Hollerith Code program.

• Have you ever used a keypunch?  Do you have any similar memories?
• It’s not as obsolete a concept as you might think.  Where do you see punched cards today?
• Do the terms ASCII, BCD, EBCDIC, ANSI, or Unicode mean anything to you?  What did I miss?