A computer programmer should never touch a computer

Believe it or not, that’s the way it was in 1950! The person whose job was “computer programmer” never actually touched a computer. Did you know that? Also: the computer’s memory was built out of cooled mercury and vacuum tubes, and data was keyed onto magnetic tape by typists.

A team of programmers at work.If you didn’t know these things, you really need to watch this video: Remington-Rand Presents the Univac. It is an advertisement for the most complex, state-of-the-art general-purpose programmable computer ever invented… in 1950.  It is absolutely brilliant to watch, not just for reasons of historical curiosity, but also because it really goes into some of the fundamentals of how computers work and what computer programming really is.  If you are a computer programmer today, or are in school studying to be a computer programmer, you should watch this video. Pay attention to how it defines the components of a computer, and how it defines the job of “computer programmer,” and ask yourself this: What aspects were different back then?  But, more interestingly, what aspects are still the same today?

The advertisement is a full 17 minutes, and I know many of you don’t have that kind of attention span. So, I’ll give you some of the highlights of the various bits and pieces of the amazing “Univac” computer and how they worked.

If you are a programmer, or are studying to be a programmer, pay special attention to the very last paragraph, below. It describes the job of the computer programmer.  The job involves some drawing, a lot of writing… but no interaction with the computer. (Keying the instructions into the machine was done by a typist… of course.)

“This is the brain of the system: The central computer. This is where all the actual mathematical operations are performed, in literally millionths of seconds. It is in here that we find Univac’s fabulous memory: tanks of mercury in which data are kept in dynamic storage in the form of circulating pulses, available for use by the computer.”

“Information is stored on Univac’s magnetic tapes, one of which is shown here being mounted on a Uni-servo. These tapes are used to carry information into and out of the central computer, at a tremendous peak speed of over 12,000 digits per second.” (pop quiz: how does this compare to data storage rates today? Are we now 100 times faster? 1000 times faster? More?)

“Since this speed is far greater than could ever be achieved manually, the tapes are prepared ahead of time on independent devices, one of which is called the Uni-typer.  Here we see the transferring of data to the magnetic tapes. This may be done by one Uni-typist, or several, depending on the size of the operation. The Uni-typer has a special keyboard: a regular typewriter keyboard, plus a special numeric keyboard for the high-speed typing of numerals, and a bank of special keys for operating a control device…”

Magnetic Tape“The keyboard, as we see here, is attached to a special unit that converts each key stroke into electrical impulses. These impulses form patterns of magnetic dots on Univac’s metallic tape… When the tape is read on the Uni-servos, these selectively magnetized areas represent either the character 1 or the character 0, depending on their position. The result looks like some sort of code… which it is. A modified binary code: “binary” because it consists of just two characters, zero and one. Arranged in six-place order, combinations of zero and one can represent any alphabetic, numeric, or punctuation symbol. A seventh place is added for check purposes.”  (pop quiz: how many bits are required to store a character in this scheme? Is this more or less than ASCII?)

“If the information has previously been entered into punched cards, the cards can be placed into the card-to-tape converter.”

“The recorded data on magnetic tape is now ready for processing by Univac… The only requirement now is that we tell our computer what to do, down to the smallest detail. This is the job of an individual called a programmer.  One of the most highly-skilled members of the Univac operating team, he sets up the instructions that tell the computer what computations or operations to make. Knowing what end results are wanted, he takes the problem and breaks it down into its basic operations. First he prepares a flow-chart, using a special template that has cut-outs that represent all of the necessary arithmetic and logical symbols.  He puts down every action, every arithmetic step, leading to the solution. When it is finished, the flowchart illustrates the whole problem in the form of symbols. The next step is to translate these symbols into specially-coded instructions for Univac. The programmer writes the instructions on code sheets. These instructions tell the computer when and what to add, subtract, multiply and divide, when to compare certain data with other data, and where to find them; where to compare for equality, or inequality; and so on… These instructions are so complete that they keep Univac working through to the solution, regardless of the eventualities which arise.”

“Once the instruction sheets are prepared, they are forwarded to the Uni-typist…”

From this point, the video goes on to talk about loading the program onto the magnetic tape with the Uni-typer, running the original data tape together with the program tape, and getting results printed on the high-speed printer.

The best part about watching it, though, is the visuals.  Gigantic rolls of magnetic tape, gigantic boards with dials and pointers on them.  The control board even has an oscilloscope on it.  Oh, and keep an eye out for when the programmer pulls out a cigarette and takes a drag in the middle of writing out his instruction set on sheets of paper. Ah, the 1950’s!