"One who computes; a calculator, reckoner; spec. a person
employed to make calculations in an observatory, in surveying,
etc."
1897 - Present
"A calculating-machine; esp. an automatic electronic device for
performing mathematical or logical operations; freq. with
defining word prefixed, as analogue, digital, electronic
computer (see these words)."
History of Computing
3000BC - Abacus - China
150BC - The Antikythera Mechanism
Geared mechanism used to calculate orbits
1612AD - Napier's Bones - Scotland (John Napier)
Used sliding ivory rods
1630 - Circular Slide Rule - England (William Oughtred)
Used logarithms
1642 - Pascaline - France (Blaise Pascal)
An adding machine that used eight 10-toothed wheels
History of Computing (cont.)
1673 - Calculator - Germany (Gottfried Wilhelm von Leibniz)
Used gears and dials for addition, subtraction,
multiplication and division)
1801 - Jacquard Loom - France (Joseph Marie Jacquard)
Holes punched in metal cards controlled the action
of the loom.
This is a binary device that allowed thread to come
through or not.
The first stored program.
1822 - Difference Engine - England (Charles Babbage)
Designed to compute polynomials.
It was never finished.
History of Computing (cont.)
1833 - Analytical Engine - England (Charles Babbage)
Like his difference engine but controlled by
punched cards.
Four functions: processing, storage (1000 50-digit numbers),
input and output.
It was never built.
Ada Augusta (Lord Byron's daughter) developed programs
for the Analytical Engine. Hence, she is often called
the first programmer.
1890 - Tabulating Machine - U.S. (Herman Hollerith))
Used punched cards for tabulating census statistics.
The Hollerith Tabulating Company later merged with other
companies to form the International Business Machines
Corporation (IBM).
1930s - Z Computers - Germany (Konrad Zuse)
Binary digital computers.
The two-state device was an electro-mechanical relay
(i.e., a two position switch).
His assistant, Helmut Schreyer, suggested they use vacuum
tubes which could be switched between on and off
much more quickly.
History of Computing (cont.)
1936-1942 - ABC - Iowa State Univ. (Atanasoff and Berry)
A 1973 court case ruled that this
was "The First Electronic Digital Computer"
1944 - Harvard-IBM Automatic Sequence Controlled Calculator - U.S.
Known as the Mark I.
Used electro-mechanical relays.
Grace Hopper wrote programs for the Mark I and later
led the effort to develop COBOL.
Supposedly, while working on the Mark II
she discovered a bug stuck to
one of the relays which led to the term "debugging".
1943-1946 - Electronic Numerical Integrator and Calculator - PENN (Eckert and Mauchly)
Known as ENIAC.
30 tons, 18000 vacuum tubes, 70000 resistors
100 times faster than the Mark I
History of Computing (cont.)
1945 - Electronic Delay Storage Automatic Computer - U.S. (John von Neumann)
Known as EDSAC
von Neumann architecture stores program instructions
internally before executing them.
1951 - Universal Automatic Computer - U.S.
Known as UNIVAC.
Designed by Eckert-Mauchly Computer Corporation.
Sold out to Remington-Rand Corp who sold the first UNIVAC
to the Census Bureau.
Used to predict that Eisenhower would win the 1952
presidential election based on 5% of the returns.
1958-1965 - Vacuum tubes replaced by transistors
1958 - IBM 7090
History of Computing (cont.)
1965-1971 - Transistors replaced by integrated circuits (ICs)
ICs were invented by Jack Kilby and Robert Noyce.
1964 - IBM System/360
1965 Digital Equipment Corporation PDP-8
1971-Present - Very large-scale integrated circuits (VLSI)
All memory is a collection of two-state (i.e., binary) devices
Input and Output
Input Devices:
Convert "real world" analog and digital data into binary.
Examples: Keyboard, mouse, video camera
Output Device:
Convert binary data into "human readable" form.
Examples: Monitor, printer, machine tools
The Software
The Operating System:
An interface between components of the system
An interface between users and the system hardware
An "environment" within which other programs can run
Application Software:
An algorithm/heuristic for solving a user-oriented
problem that is written in a language that is/can be
converted into instructions for the ALU that is implemented
(a process that is known as
programming)