Automatic Digital Computer
Automatic Digital Computer
mm
ISSS
Loughborough
College of Technology
Library
The Computer Museum
History Center
library
<•
« OF TECHNOLOGY LIBRARY
000 2666 02
CAMBRIDGE ENGINEERING SERIES
GENERAL EDITOR:
J. F. BAKER, F.R.S.
AN INTRODUCTION TO AUTOMATIC
DIGITAL COMPUTERS
Digitized by the Internet Archive
in 2012 with funding from
Gordon Bell
http://archive.org/details/introductiontoau20live
AN INTRODUCTION TO
AUTOMATIC DIGITAL
COMPUTERS
BY
R. K. LIVESLEY
Lecturer in the Department of Engineering,
University of Cambridge
V
<gll ill
WrSS
w yyv
KhfcS y flS'
rt
y
CAMBRIDGE
AT THE UNIVERSITY PRESS
1957
PUBLISHED BY
THE SYNDICS OF THE UNIVERSITY PRESS
Bentley House, 200 Euston Road, London, N.W. 1
American Branch: 32 East 57th Street, New York 22, N.Y.
*QZ*W/oz
CONTENTS
List of Plates page vi
Preface vii
v
LIST OF PLATES
{Between pages 24 and 25)
ACKNOWLEDGEMENTS
Plates and II are reproduced by courtesy of Ferranti Ltd.,
1(a)
Manchester; Plate 1(6) by courtesy of the Director of the Mathematical
Laboratory, Cambridge University; Plates III and IV (a) by courtesy
of the English Electric Co. Ltd., Stafford; and Plate IV(6) by courtesy
of the British Tabulating Machine Co. Ltd.
PREFACE
This brief account of digital computers has been written mainly for
engineers and others who are faced with tedious calculations, so that
they can judge the possibility of using these machines in their own
numerical work. It describes in general terms what digital com-
puters can do and how they are made to do it, and also gives an
account of some of the calculations for which they have so far been
used. The emphasis is on the application of machines to routine
computing work rather than to research.
Since the book is merely an introduction and is not intended for
the specialist, I havemade no attempt to discuss the design of com-
puting circuits, nor have I tried to make the reader expert in the
operation of any particular machine. The reader who wishes to take
the subject further will find a more detailed treatment, together with
a comprehensive bibliography, in Dr M. V. Wilkes's book Automatic
Digital Computers (Methuen, 1956), while most computer laboratories
issue training manuals for those who wish to become skilled users of
R. K. LIVESLEY
Cambridge, 1956
Chapter 1
x-fy + 8z=llj
for instance, may be written in the form
y=(27-3a;-2z)/9, (1.26)
z = (19-6 + l)/10=l-4,
*/=(27-3xl-4-2)/9 = 2-311.
Initial 1st
values iteration 2nd 3rd 4th
x 1 1-400 0-824 0-983 1-002
y 1 2-311 2035 1-997 1-999
z 1 3-106 3040 3-002 2-999
The results in the last column are in very close agreement with the
exact solution, which is x—\ 3 y = 2, z—Z.
In the case of a general set of three equations
a 1 x + b 1 y + c 1 z = d 1 ,\
a 2 x + b 2 y + c 2 z = d2 \ (1.3)
a 3 x + b 3 y + c 3 z = d 3 ,J
Xn+i-x n = (d 1 -a 1 x n -b 1 y n -c 1 z n )la 1 ,
5
one for numerical data and one for instructions. The arrangement is
1-100
Number
tape
Printer
100-
-]
n
Instruction
reader
¥
Instruction
tape
With this code, a sequence for dividing the number in register 72 by the
content of register 49 and planting the result in register 86 would be
Function/ Address s Effect
7 49 The content of register 49 is copied into
the multiplier register.
12 72 The content of register 72 is divided by
the number planted in the multiplier
register by the previous instruction. The
result appears in the accumulator, the
previous content of which is obliterated.
10 86 The resultcopied into register 86 and
is
7
:
in that order on the data tape, and are followed by the trial solution
x , y , z , the programme for a single iteration might be as follows
1.1 1
1.2
Beading instructions: a v ..a 3 placed in registers 1...3,
b 1 ...b 3 in 4. ..6, c x ...c z in 7. ..9, d x ...d 3 in 10. ..12, and x
y , z in 13, 14, 15.
1.15
4.10 A' = dt .
7.13 M' = x .
9.1
7.14 M' = y Q .
9.4 A = d -a 1 xQ -b
,
1 x y .
M
(i
7.15 = zQ f
.
9.7 A = d 1 -a
/
1
x -b 1 y -c 1 z .
10.14
2.14
4.12
7.13
9.3
7.14
9.6
Similar sequences for calculating z v
10.15
2.15^
: '
The reader will be well advised to work through this sequence in detail.
Alternatives are possible, some of which might require fewer instruc-
tions. The use of storage registers 1-16 is a purely arbitrary choice.
Address of
instruction Instruction Effect
50 7.19 M' = x.
51 4.18 A' = l.
52 5.19 A' - l + x.
53 ^10.19 On the first cycle, (1 + x) is placed in
register 19.
54 4.18 A'=\.
55 8.19 On the first cycle, A'=\ + x(\ + x).
56 —13.53 Return to the instruction in register
53 (C" = 53).
The reader who follows through this sequence will soon see the power
of a few instructions when they form part of a repeated cycle. The
second time the instruction in register 53 is reached, its effect is to
plant 1 The next cycle calculates 1 + x + x 2 + x?
+ x + x2 in register 19. y
instructions.
The instruction introduced above can be used to jump forwards
as well as back, and its effect can be compared with the jumps which
occur in the game of 'Snakes and Ladders'. There is still no choice
of next instruction, however, and it is clear that once a loop of
instructions has been entered it can never be quitted. A more
powerful type of instruction is the 'conditional' jump, whose opera-
tion depends on the sign of a certain number, usually the content of
the accumulator. A typical example is defined as follows
Function
number Effect
14 Set the content of the control register to s only if A
is positive or zero. (C = s if ^ 0, = C + 1 if A C A < 0.)
10
In other words, the instruction is similar to the previous one, but
the jump only occurs if the number currently standing in the accumu-
lator is positive or zero ; otherwise the control number merely increases
by one and the next instruction is selected in the usual way. A simple
sequence for replacing the number x in register 19 by its modulus
would be
Address of
instruction Instruction Effect
50 4.19 A'— x.
'
11
of a 2 b 2 c 2 d 2 etc. In the
, , , , same way, in the calculation of x x , the
sequence for forming d 1 — a^ — b x y — cx 2; contains a pair of instruc-
tions repeated three times, but referring to different addresses each
time.
It is clear that if the instructions for calculating x 1 were followed
by a sequence which added appropriate numbers to the addresses in
certain instructions, they could then be used again to calculate y v
On the second cycle the modifying sequence would alter the addresses
again and the instructions would cause the computer to calculate z v
In this way considerable savings can be made in the number of
instructions required for a given calculation. To sum the contents of
fifty consecutive storage locations, for instance, it is only necessary to
write down one addition instruction, and arrange for the address in
it to be increased by one each time it is used. A conditional jump
instruction can be used to count the number of additions in the
manner described in §1.4.
In the simple computer which has been described, the task of
modifying an instruction and replacing it in its original register
requires three instructions, so that modifying sequences will tend to
be lengthy if many instructions have to be dealt with. There is also
the difficulty of resetting altered instructions if it is necessary to
repeat a complete calculation involving several smaller loops of
instructions. A system in use on several machines, including the
Ferranti computers and the EDSAC, makes such modifications much
simpler. In this system, the content of one of a number of subsidiary
registers, known as ^-registers, is added to each instruction before
it is obeyed. This is done automatically as the instruction is selected
by the control unit, a special part of the instruction specifying which
B- register is to be chosen. do not require
(Instructions which
modifying can be arranged to select a whose content is
I?-register
zero.) By this means instructions can be made to operate on a series
of different addresses merely by altering the content of the appro-
priate ^-register. In some computers it is also possible to modify
the function number in an instruction, but this is a less useful
facility.
12
:
so on. Afterit has been obeyed as 5.1, the content of the ^-register
13
is very similar to that which occurs in desk calculating machines.
Facilities for automatic multiplication, division, square-root extrac-
tion, etc., are very pleasant for the user, but if they are absent the
operations can easily be built up from the simple processes of addition
and subtraction.
Most computers have a larger instruction code than the one
described in this chapter. It is often necessary to scale a number up
or down in order to make it fit into a register, so that an instruction
which produces a left or right shift of one or more places is often
useful. Many machines also have an 'alarm' instruction, which can
be used in place of a stop instruction to
'
' summon the operator when
a check fails or a calculation comes to an end. The reader will find
detailed accounts of the instruction codes used in actual machines in
the 'programmer's handbooks' issued by most computing machine
laboratories.
14
Chapter 2
reason why such registers should not be used to store numbers and
instructions in an automatic calculating machine, and in fact Bab-
bage's engine was designed to use them, but it is clear that the speed
of any computer with mechanical elements is restricted by the inertia
of its moving parts. The Harvard Mark I, which was the
for instance,
first automatic computer actually to be built, had 72 mechanical
15
:
273 = 2 x 10 2 + 7 x 10 1 + 3 x 10°)
( 100010001 = 1 x 2 8 + 1 x 2 4 + 1 x 2°)
(
16
and 2 n — 1. Since 2 n «10°" 3w ten binary digits are approximately
,
+ = 0,0 + 1 = 1 + 0=1,
1 + 1 = 10 (i.e. a 'carry' of 1 to the next place).
2 17 LDC
'
are used for the exponent p. Since p can range from +511 to —512,
the programmer is virtually free of all scale-factor worries. In the
same way, a number can be represented in floating decimal form as
'
'
18
:
—
Most large computers, therefore, have two types of store a relatively
small high-speed one where the actual computing is done, and a larger
auxiliary store which merely acts as a filing system, holding numbers
and instructions while they are not in use.
In most automatic computers, the high-speed store has between
50 and 500 registers capable of storing instructions or numerical data.
The time taken by the control unit to pick out the content of
a particular register is known as the 'access time', and in most
modern machines this is of the order of a millisecond.
The auxiliary store of a computer may have many times the
capacity of its high-speed store. Numbers contained in the auxiliary
store are not directly accessible to the control unit, but blocks of
information can be transferred to and from the high-speed store by
'copying' instructions inserted in the programme.
A. Delay lines
A form of storage which has been used extensively both in Britain
and the United States is the mercury delay fine. This consists of
19 2-2
a tube of mercury with a quartz crystal mounted at each end.
Electrical pulses are applied to one crystal and generate stress waves
in the mercury, which travel down the tube and are picked up at the
other end. These pulses are then amplified and fed back to the
driving crystal, so that they circulate continuously as long as the
power is switched on.
The speed of sound in mercury is about 5000 ft. /sec, so that a pulse
will take approximately 1 msec, to traverse a delay line 5 ft. long.
A delay line of this length can therefore be used to store 1000 pulses,
spaced at 1 /isec. intervals, and since each pulse can be made to
represent a binary digit this is equivalent to a set of 25 registers of
40 digits each.
The digits stored in a particular register appear as a chain of
electrical pulses at the pick-up crystal every time they circulate round
the system, and the content of a register may be altered by breaking
the connexion between the amplifier and the driving crystal at the
appropriate time. Since the contents of registers are only accessible
as they pass through the amplifier, the access time to a given register
depends on where the digits happen to be in the delay line when they
are required. If an instruction affects a number which has just
entered a line, it cannot be obeyed until the digits reappear at the
other end. In preparing programmes for a delay fine machine it is
therefore desirable to arrange the timing of numbers and instructions
so that the 'waiting time' before each instruction isobeyed shall
be as small as possible. This process is known as 'optimum pro-
gramming'.
Machines which use delay lines for their high-speed store are
usually equipped with several lines of different lengths. The DEUCE
(pi. Ill), for instance, has a main store comprising twelve delay fines,
each delay fine forming 32 registers of 32 binary digits. In addition,
there are several shorter lines providing 1, 2 or 4 registers each, which
allow rapid access to frequently required numbers and are also used
for carrying out arithmetic operations. The basic pulse frequency is
metal is formed into a thin tube or wire, and stress waves are generated
20
by passing a current through a coilwound on one end. The magnetic
field causes a distortion of the material known as magneto-striction,
and this causes a wave to be propagated down the delay line. A pick-
up coil at the other end operates in a similar manner. Nickel delay
lineshave been used in several small computers, as they are light and
can easily be made into plug-in units.
B. Cathode-ray tubes
A cathode -ray tube forms a convenient means of displaying the
contents of a binary register, and it can also be used to store binary
digits. The and l's can be represented either by dots and dashes,
O's
or by faint and bright dots on the tube's fluorescent screen (pi. la).
The electrons which cause the emission of light also produce a distri-
bution of surface charge on the screen, and this distribution can be
maintained by using the phenomenon of secondary emission associated
with fluorescent material. When acting as storage device, the cathode-
ray tube has a pick-up plate mounted in front of its screen, which is
C. Magnetic cores
Both the delay line and the cathode-ray tube are regenerative
systems, requiring a power supply merely to keep the stored informa-
tion circulating. A type of binary element which can store a single
digit without the need for external power is the magnetic core. This
consists of a small toroid of moulded ferrite, a material which has an
almost rectangular hysteresis loop. The material may be put into one
of the two possible states of remanent magnetism by applying a
current pulse of the appropriate sense to a coil Unking the core.
These two states may be used to represent the digits and 1, and
the number storedmay be 'read' by examining the voltage pulse
21
'
the cores and also support them in space (pi. 16), and the change-
over time from state ' '
to state 1 is of the order of a microsecond.
'
'
22
machines. Drum computers are relatively cheap to build, and while
they may not be as fast as machines with other types of storage, they
are usually very reliable. When used as a main store, the magnetic
drum suffers from the same disadvantage as the delay line, since the
content of a particular register is only accessible once every revolu-
tion, but this can be mitigated to some extent by optimum pro-
gramming techniques. A typical drum computer is the HEC 4E,
which has a drum store of 1024 registers, each holding 40 binary
digits. The drum revolves at 3000 r.p.m., so that the access time to
a particular register is 20 msec, or less.
23
a standard output punch works at a slightly lower speed. Results
may thus be obtained rapidly in card form and printed out elsewhere
without interfering with the computer. A normal computer installa-
tion will include standard Hollerith equipment for preparing, sorting,
copying and tabulating cards.
would be a very tedious manual job to convert all data into
It
binary form and all results back into decimals. It is possible, however,
fm m
25
:
26
.
Chapter 3
27
:
28
Return from this sequence to->(c) Copy x into the accumulator.
(d) Jump to the sequence for printing
the content of the accumulator.
Return from this sequence to->(e) Copy cos Jx into the accumulator.
(/) Jump to the sequence for printing
the content of the accumulator.
Return from this sequence to-^(gr) Add 0-001 to the value of x.
(h) Form and test (x—l). Return to
(6) if (a-lKO.
(i) Stop.
29
set of routines. The majority of library routines fall into one of the
following categories:
B. Output routines
Output routines are mainly concerned with numerical information,
since it is not often that one requires a printed record of machine
instructions. Here the conversion required is from binary to decimal,
and most computers are equipped with several routines. These will
normally cover the output of single numbers and groups of numbers,
as integers, fractions or with pre-assigned decimal point. If a machine
has a direct- coupled output printer, its routines will usually include
provision for tabulation in columns and pages, so that tables can be
prepared with the minimum of human editing.
C. Function routines
These are sub-routines which generate standard mathematical
functions, such as Jx, sin x, sin -1 :r, log x, e x etc. The value of x is
,
lator, and to be quitted with F(x) in the same place. In the notation
of §1.3 the effect of such a routine can be written simply as
A'=F(A).
Functions are normally calculated from a polynomial approximation
or by an iterative process.
30
:
D. Operator routines
These carry out mathematical operations on functions, and
normally require a sub -routine for generating the function. A typical
example is a routine for the numerical integration of an arbitrary
function f(x). The routine is supplied with the limits of integration,
and works out suitable values x i at which to calculate the
first
dx {
~dt~~
F. Test routines
These routines are used to test the correct functioning of a com-
puter. They are run before a machine is handed over by the main-
tenance engineers, and are available to an operator if he suspects that
a machine fault has developed. A good set of test routines includes
checks on each separate unit of a computer, and in some cases it is
Instructions of
main routine
*
1j Instructions of
sub-routine
Jump instruction
32
l
instruction
t
sub-routine
i
S-1
S
Jump instruction
. _
Instruction causing
jump to address in
calling in a sub-routine.
3 33 LDC
instructions whose address sections depend on the position of a
routine in the store are automatically adjusted by a special input
sequence as the routine is fed into the machine.
34
:
i \
v
x-1^0 r n
Form Print
Stop 0-001
P "* x-1 cos Jx
x-1: >o to X
I
A. Slips
These are fundamentally due to human carelessness, and careful
checking of programmes will eliminate most of them. A common
example is the case where a programmer writes down some instruc-
tionsand then decides to change the location of a certain number.
He may easily forget to alter the address parts of the relevant
instructions, with the result that the computer carries out the right
operations on the wrong numbers. In the same way, the rearrange-
ment of a routine may omit an adjustment to a jump instruction, so
that the instructions are obeyed in the wrong order.
Slips can also occur in transferring instructions from paper to
punched form, and are often difficult to find since they do not appear
on the programmer's manuscript. Here again, careful checking before
the programme is fed into the machine is the only way to avoid
wastage of valuable machine time.
35 v2
B. Faults of organization
These are logical errors on the programmer's part, and usually-
mean that he has not foreseen all the consequences of an instruction.
They may result in the programme getting stuck in a closed cycle of
which were intended to repre-
instructions, or in sequences of digits
sent numbers being obeyed One fault which seems
as instructions.
to be fairly common among users of some machines is the use of a
conditional jump instruction 'the wrong way round', i.e. making
a jump occur only when a number is positive, say, when it should
have occurred only when the number was negative. Experience in
programming reduces the number of these faults, but very few
programmers avoid them entirely.
C. Numerical faults
These are usually the result of incorrect scaling. They result in
numbers either exceeding the capacities of their registers or losing
significant digits. The programme generally goes through the instruc-
tions in the correct order, but produces the wrong answer. Such
faults can usually be located by making the programme print out
intermediate answers at several points.
D. Special cases
It is usually impracticable to test a routine in all possible circum-
stances, and there are occasionally cases even in tested library
routines where the appearance of one particular number leads to a
wrong result. This may be due either to a logical fault in the routine's
—
design or to mathematical reasons division by zero is an obvious
example. This is a particularly difficult type of fault to trace, since the
programme may work correctly on one problem and fail on another.
36
technique is not too time-wasting when carried out by an experienced
operator, but it should never be considered as a substitute for the
utmost care in programme preparation.
On some machines it is possible to print out a characteristic of
each instruction, such as the function number, as the instruction is
obeyed. In this way the programmer can quickly test whether the
order of the instructions is correct. This is especially useful in checking
the correctness of jump instructions. In the same way, arrangements
for printing out the contents of the accumulator at specified points
are extremely useful in tracing numerical faults.
It is evident that programmes constructed mainly from library
routines will, on the whole, require far less time for fault tracing, and
this is a strong argument for solving problems by standard mathe-
matical processes. Machine time spent on developing a programme
is just as expensive as time spent in obtaining results, and an extra
complication designed to save a few seconds in a calculation may
waste far more development time than it saves.
A. Conversion routines
In a conversion routine, the instructions finally placed in the
machine's store are not the same as the 'instructions' punched on
the input medium. These 'instructions' are written in a code which,
while not as flexible as ordinary human language, is more familiar
to the programmer and has wider scope than ordinary machine code.
As each 'instruction' is read, the conversion routine works out the
corresponding machine instruction or group of instructions, and
places it in the store. When the programme of machine instructions
is complete, it is obeyed by the computer in the usual way.
B. Interpretive routines
With an interpretive routine, the 'instructions', which as before
are written in a special code, are actually planted in the computer's
store. Instead of being selected by the control unit in the normal
way, however, a special sequence selects each 'instruction' in turn,
decodes it, and calls in what is effectively a sub-routine for carrying
out the operation specified.
38
Chapter 4
39
represents an inefficient
'
' way of solving a problem, the use of library
routines often costs less in the long run than the development of
special routines which must be discarded when the calculation is
complete.
A programme for a 'single' problem is like a temporary piece of
laboratory apparatus, roughly built but adequate for its job. Since
it will probably be used only by its creator and discarded when the
job is finished, there is little point in spending a lot of time on
unnecessary refinements of design.
programme tries to achieve his objective with the least possible effort.
There are, however, several additional factors which he must consider.
One important difference springs from the fact that a standard
programme, like a library routine, is intended to be of permanent
40
: ; ; '
41
There is another reason why it is good policy to feed the basic
parameters of a problem directly into a computer. The first part of
many calculations consists of evaluating various coefficients from
the initial information. These coefficients are often far more numerous
than the original data, so that if they are calculated by hand outside
the machine many more quantities will eventually have to be pre-
pared for input. Whether input is by punched cards or paper tape,
the smaller the volume of material the less will be the chance of
mistakes in punching.
The
attitude which a programmer adopts towards machine results
may vary between blind faith and complete scepticism, according to
the standard of reliability of his computer. Many routine engineering
calculations are so short in terms of machine time that it is usually
simplest to omit checking sequences, repeating the whole calculation
if errors are suspected. On longer programmes of half-an-hour's
duration or more it is a good idea to incorporate checks at various
points, but most computers are sufficiently reliable to render complex
checking sequences unjustified.
It is hardly necessary to say that a standard programme should
never invite human error by requiring extensive manipulation of the
machine's controls. Experience has shown that it is perfectly possible
for a semi-skilled machine operator to produce satisfactory results,
provided that the computer is reliable. An operator having no
knowledge of the construction of a programme is naturally at a
disadvantage if suspect results appear, as he may be unable to tell
whether the fault lies in the machine, the programme, or the punching
of the data.
The standard programmes were often merely direct transla-
first
42
4.4. Problems which have been solved on computers
This section does not attempt to describe all the problems which
other, is the best one. If the design problem is a linear one, it can
'
'
If the values of the variables x t are all known for one value of t, the
equations can be integrated forward (or backward) in by anyt
46
winding. By treating the physical system as an inductance- capaci-
tance network, the problem was reduced to the forward integration
of a set of forty ordinary differential equations of the type described
above.
In cases where the boundary conditions are given at two ends of an
interval a process of trial and error is normally required. Starting
values which are not known are assumed, and the integration carried
forward to the other end of the interval. The remaining boundary
conditions are then compared with the values calculated, and an
adjustment made to the assumed initial conditions. The process is
continued until satisfactory agreement is reached at both ends of the
interval. If the functions ft are linear in the x's, an alternative
approach is to replace all differential coefficients by differences. This
has the effect of reducing the problem to the solution of a set of
simultaneous linear algebraic equations.
47
members. A preliminary linear elastic analysis calculates approxi-
mate values for the axial forces, and these are then used to modify the
bending stiffnesses of the members, in accordance with well-known
theory. The calculation is then repeated with these modified stiff-
nesses, the cycle being repeated until a sufficiently accurate answer
has been obtained.
Another interesting non-linear problem is the design of optical
lenses. Ray-tracing through an optical system is merely a matter of
coordinate geometry, normal refraction laws being used to find the
change of direction at each surface, and with an automatic computer
it is possible to trace the path of a single ray through a complete lens
48
On the more frivolous side, machines have been programmed to
play chess and draughts, and to make opening They
bids at bridge.
have not, however, so far evinced any marked superiority over human
beings at these games.
49
4.6. The human factor
The engineer who wishes to use a digital computer, but who has
not sufficient numerical work to justify the purchase of a machine,
has two courses open to him. He can either learn to programme
himself, hiring time as required on one of the machines now available,
or he can employ a commercial computing organization to solve his
problems for him. Learning to programme may take him a couple
of months, but if the work which he requires can be done by an
existing standard programme a few days' training in data preparation
and machine operation is all that is required. Hire charges for large
machines range from £20 to £50 per hour. This may appear high, but
in fact it represents a considerable economy in many problems. Once
a programme has been completed, the speed of a computer is from
100 to 500 times that of a human being equipped with a desk
calculating machine.
From the remarks made in §4.5 it is apparent that the programmer
may more than the mere ability to
require on occasion considerably
translate mathematical processes into machine code. To take full
advantage of his machine he needs sufficient vision and mathematical
skill to design new methods of solving old problems, while if he is
50
4.7.Future prospects
The early machines were relatively slow, used large quantities of
equipment, and were often unreliable. Fortunately, however, com-
puter development followed a pattern familiar in other branches of
engineering.Speed and reliability improved, while cost, size and
power consumption decreased. The open racks and trailing wires of
the laboratory-built machines gradually gave way to the enamelled
cabinets and neatly arranged control panels of their factory-built
successors. Many different types of computer are now on the market,
ranging from very fast machines with large storage capacities designed
for general scientific calculations, to simple computers with rudi-
mentary programming facilities intended for use in accountancy and
other clerical work.
While the engineering side of computers has progressed, mathe-
maticians have been exploring the potentialities of the new machines,
and developing the art of programming. What was at first an abstruse
specialism only practised by a few people has become a subject in
which regular courses are held at many universities. Programming
itself has become easier; this is partly because of accumulated
51
work in large offices has created ademand for medium-sized com-
puters, usually with complex input-output equipment.
The digital computer is now firmly established among the many
other tools available to the engineer, and it is natural that this fact
should be reflected in his education. This does not mean that every
student should be taught how to programme —programming is after
all merely a technique which can be learnt fairly quickly when
required. It is far more important that he should know something of
the mathematical techniques most useful in computer work, so that
later on he will be in a position to judge whether his own particular
problems are suitable for machine solution.
52
:
General principles
53
o{
e&*