I recently attended my 50th high school reunion, which, among other things, included a tour of the school itself. I actually started going to the high school campus in 7th grade, because the district hadn’t finished building a new middle school.
The school is the source of many fond memories. But one of the most important ones involves a small room behind a non-descript door.
Why? Because that’s where my now 55-year-old passion for programming began. On a teletype terminal connected to a GE time-sharing system located who knows where, over a 110 baud modem. The only language available was Basic.
My first program was very, very simple:
10 LET N = 1
20 PRINT N
30 LET N = N + 1
40 GOTO 20
I still remember typing RUN and watching the paper roll out, each line with a new number. And being both amazed and fascinated by how a set of instructions from my mind were causing something to happen, under my control, in the real world.
Needless to say, I spent a lot of time in that tiny room.
I remember, too, working on some pretty complex problems, including trying to write a program that would generate an ephemeris to support another early habit, astronomy1. We couldn’t even save our programs on the computer itself and had to print them out on a punched-tape machine, and then reload them from the resulting paper tape. Amazing to think how far we’ve come in less than one lifetime.
I figured if Newton could do it with pencil and paper, surely, I should be able to do it with a computer. Turns out the math involved is quite complex, and the simple, brute force, inverse-square-law-of-gravitation-approach I took isn’t up to the task. But I learned a lot about the problems associated with computing involving whole numbers with very tiny parts, e.g., 37.0000000000000000031343, with those last five digits being incredibly important. ↩