An Old Programmer Tries New Tricks

This punch card identifies the parts of a Fortran statement. The first five columns contain the line number, unless column 1 is a “C”, which turns the statement into a comment. Column 6, if marked, usually by an “X”, turns it into an extension of the previous statement. Columns 7-72 hold the Fortran statement itself, and the rest are an optional “sequence field” for use by the programmer as desired.

I wrote my first program at the age of 15 using a coding pad provided by my dad, who was managing an early computer installation for his employer, General Mills.  It was 1968, and programs were drafted on these pads, which were basically a grid with 80 columns and maybe two dozen lines.  The program statements on the pad would later be transcribed by a keypunch operator onto punch cards, one line per card, and then fed to the computer by a card reader that could sense the holes in the cards and turn them into bits in the computer’s memory.

I didn’t understand the details of how computers worked, but I was able to figure out how to write a series of statements in a programming language (Fortran) to do something I thought was cool:  print out the coordinates that I could plot on graph paper (yes, that’s how it was done), to create an Archimedes Spiral;  the path traced out by what I imagined to be an insect crawling on a ruler that was rotating around the starting point.

It was an ambitious goal, and I had to think hard about how to do it.  I had to learn about loops, conditional IF statements, and distinguish between integers and floating-point numbers.  And how to format them and print them out.  In the end, I think I was able to do it on one page.  I carefully wrote each line on the coding pad and gave it to my dad, who promised to take it to work and run it on the computer (I later learned it was an early Control Data Cyber 6600 model which occupied a large room).

He returned that evening with the result, a line printer output on “computer paper”, large folded pages with detachable tractor feed sprocket edges.  I looked at it and saw numbers printed along the left edge.  Pairs of numbers, one pair per line on the page.  These were the XY Cartesian coordinates I was looking for!  

I pulled out my pages of graph paper and started plotting them.  I marked a dot at each XY location, and soon I saw that as I connected the dots, a spiral shape was forming!  I was quite excited.  This was the experience I had of writing my first program.

I later learned that writing a program that ran correctly on the first attempt is a rare thing.  And I also heard that my dad teased his staff of professional programmers to try and be as successful as his teenage son.

Continue reading