Iterations – Norberg – Software Development at EMCC
9
for use on UNIVAC I. This suggests that the approach to
programming
inside IBM was similar to that inside EMCC, where IBM programmers
saw needs similar to those perceived by EMCC programmers. Second,
IBM programmers traded on their advanced knowledge of business and
engineering problem solution developed for tabulator operations over the
previous two decades, an experience that no one in EMCC possessed
outside of the Aberdeen problems area. Here EMCC stood at a
disadvantage, and therefore took longer to develop a strong approach to
programming. Thus, UNIVAC I’s delivered possessed few applications
programs, though they did arrive with basic programming structures
available for programming applications by the customers, along with
instructions on how to program the applications.
EMCC Reaching Out
The applications group, especially Mauchly, identified a need to provide
training for incoming programmers, engineers, customers, and sales
personnel, an area already deeply embedded in the business approach of
IBM. As a result, several members of the group worked on a training
manual and developed a course to be offered either at EMCC or at the
customer’s site.
22
The course began with defining the operating code for
UNIVAC and an introduction to programming in which several short
examples of coded operations were presented. Subsequent lectures
included description of flow-charting, types of subroutines, collation, and
matrix algebra. Students spent substantial time on specific examples to
understand operations like floating point, round off, problems of tape
wear, etc.
23
While all this coding activity was going on, Mauchly, as President of
EMCC, was extremely busy visiting many customer and potential
customer sites. For example, between October 28 and November 14, 1947,
Mauchly hosted visitors and took two trips to New York City and one to
Chicago. There were multiple visits with representatives from A. C.
Nielsen, Northrup, and Prudential Insurance. He participated in drafting
proposals for sales, interviewing candidates for positions at EMCC,
conferences with staff on design questions, and oversaw the applications
group.
24
EMCC at the time ran a six-day work week, and often Eckert and
Mauchly were in on Sundays. Eckert’s idiosyncratic work habits
sometimes led him to stay at work around the clock.
25
Returning to the discussion of
applications efforts at EMCC, as the use of
ENIAC and the other computer systems of the middle 1940s showed, there
was a large class of engineering and scientific problems that could be
attacked using electronic computers. Mauchly, with his interest in weather
problems, which had led him to be interested in electronic computation
methods in the first place, was in a good position to know this. Thus, it is
Iterations – Norberg – Software Development at EMCC
10
no surprise that among the applications group there were people thinking
about the solution to such problems. The better posed problems involved
partial differential equations that could be solvable using finite difference
techniques. Betty Snyder and Hubert M. Livingston investigated various
solutions for the plane potential problem. This pair published an article in
1949 in which they presented a computer program for the UNIVAC to
solve the Laplace boundary value problem.
26
They set up a two-
dimensional space, and used a finite difference method originally
proposed by H. Liebmann in 1918.
27
The article opened with a very brief
description of the UNIVAC system, including a list of the instructions to
be used in the solution of this problem. As is typical in the solution of such
problems, the authors set up a region, in the example a rectangular space,
though they argued how irregular spaces could be examined as well, with
a mesh of horizontal and vertical lines, and set up the equations to
calculate approximations for the partial differential equation that led to a
set of difference equations. The number of equations resulting is equal to
the number of interior mesh points. Either a direct or iterative method can
be used to solve the linear system of equations. The authors discussed the
availability of subroutines for use in these problems, and in a company
document on the subject intended for circulation, discussed truncation
errors, scale factors, and times of solution.
28
This problem is
representative of the types of research going on in this group in the late
1940s.
Programming the UNIVAC
From 1947 on, coders at EMCC developed a number of subroutines for
both mathematical and business use. By 1951, the number of subroutines
had increased to the point where they needed to put some order into them
to increase efficiency of use. While the other members of the Applications
Department continued their work on programs and routines, including
diagnostic routines, for UNIVAC I, Hopper assumed an interest in
automatic programming. She attempted to meld the operations of the
computer system and its programs with the use of subroutines. This idea
of subroutines was exploited at EMCC before she arrived, as we saw
above in the work of Betty Snyder. Hopper’s contribution was to make it
possible not just to call up a routine from memory, but, if necessary,
actually construct a subroutine program, insert it into a program, and carry
out the computation. The process of translating a subroutine into a
program received the name “compiler.” The needed information was
delivered by UNIVAC under the control of an operation they called a
“differentiator.” The differentiator delivered the information necessary to
program the computation of a function and its derivatives. The actual
derivation of the function was done by the computer system, not by the
programmer as before. Thus, the UNIVAC became capable of developing
a completed program.
29