```History of Computing
 Definition of Computing:
• Computing is the study of systematic processes that
describe and transform information: their theory,
analysis, design, efficiency, implementation, and
application. The fundamental question underlying all
computing is, What can and cannot be automated?
(adapted from Denning et. al., “Computing as a
Discipline,” Communications of the ACM, January,
1989).
CS 1401 (Source:
Andrew Bernat)
History of Computing
 What is Process?
• How we do things
• How we specify what we do
• How we specify what kinds of things we’re processing
CS 1401 (Source: Mark
Guzdial)
History of Computing
 What is an Algorithm?
• Precise description of a process
• Specifies exactly what is to be done in what order
• Uses terms that can be completely defined and
understood
• Similar to a recipe
• Word algorithm is derived from name of Persian
textbook author al-Khowârizmî (approx. A.D. 825)
• Word originally referred to process of using arithmetic
computations using Arabic numerals
CS 1401 (Source: Mark
Guzdial, Andrew Bernat)
History of Computing
 A goal of computing
If we:
• Develop a computing machine
• Specify a precise algorithm, represent the data used,
and devise a way to translate all of this into a language
(encoding) that our computing machine can
“understand”
Then,
• Our computing machine can accurately, consistently,
and more quickly carry out our computation for us
CS 1401
History of Computing
 Prehistoric People Groups
• Used fingers for counting, and length of hands and
arms for measurements
• Kept track of larger numbers, such as number of
animals in herds, using small pebbles
CS 1401
History of Computing
 People of Egypt, China and ancient Babylonia
• By 3000 B.C., had developed written symbols to
represent numbers
• Computational methods developed to save labor and
solve practical eng., ag., bus., and gov. problems
(applied math)
• Applications included measuring time, drawing straight
lines, counting money, and computing taxes
• Developed tables for multiplication, square and cube
roots, exponents, formulas for quadratic equations
• Babylonians and Egyptians not systematic reasoners;
trial-and-error methods not always precise
CS 1401 (Source:
Andrew Bernat)
History of Computing
 Practical examples of geometry in ancient Egypt
• Annual Nile River flooding fertilized plains but
made it difficult to mark property
• Geometry used to survey fields and reestablish
property boundaries
• Navigation required for food distribution
• Building of pyramids required extensive measurements
CS 1401
History of Computing
 Greece
• Between 600 and 300 B.C., inherited mathematical
knowledge from Egypt and Babylon
• Were the first to separate study of mathematics from
application to practical problems
• Developed foundation of formal logic: stated formal
axioms, precise definitions, and patterns of valid
reasoning
• Pythagoras, Euclid, Archimedes, Ptolemy, and others
developed extensive knowledge of geometry,
trigonometry, algebra, astronomy and physics
CS 1401
History of Computing
 Aristotle’s modus ponen example:
If a student is a CS major, then the student takes CS
1401.
You are a CS major.
Therefore, you take CS 1401.
Notice that the reasoning is valid, but this does not assure that the
statements in the argument are true
CS 1401
History of Computing
 Rome
engineering, and military work
• Had little interest in study of pure mathematics
CS 1401
History of Computing
 Middle Ages
• No new mathematical advances in Europe for hundreds of years
after fall of Rome in 476 A.D.
• Arabs preserved mathematical knowledge developed by Greeks
and Romans and expanded algebraic concepts
• Concept of zero and decimal number system developed in India
and used by Arabs
• After 1100, growing commerce in Europe required an easier
numbering system for merchants than Roman numerals
• Europeans started using decimal number system and studying
Arabic mathematical texts
• During late Middle Ages, European mathematicians such as
Fibonacci contributed to algebra and geometry
CS 1401
History of Computing
 Renaissance
• From 1400’s to 1600’s exploration of new lands
required improved mathematics to support navigation,
• Invention of mechanical printing press allowed rapid
CS 1401
History of Computing
 Renaissance
• What was an important contribution of Francois Viète
(1540-1603) ?
CS 1401
History of Computing
 Renaissance
• What was an important contribution of Francois Viète
(1540-1603) ?
• Francois Viète introduced the use of letters to stand for
unknown numbers in formulas and equations (use of
variables, important in computer science)
• Example:
c2 = a2 + b2
CS 1401
History of Computing
 Renaissance
• What was an important contribution of John Napier
(1550-1617) ?
CS 1401
History of Computing
 Renaissance
• What was an important contribution of John Napier
(1550-1617) ?
• Scottish mathematician John Napier invented
easier than multiplication:
log (a * b) = log a + log
b
• Logarithms are inverse of power function:
log2 8 = 3 because 23 = 8
CS 1401
History of Computing
 Renaissance
• Do you know what a slide rule is?
CS 1401
History of Computing
 Here’s Robby the Robot holding a giant-sized slide rule:
CS 1401
History of Computing
 But the actual size was hand-held, with a middle sliding
rule:
CS 1401
History of Computing
 Renaissance
• Edmund Gunter (1581-1626) invented forerunner of
slide rule in 1620. Slide rule invented around 1630.
• Slide rule is ruler-like device marked with logarithmic
scales used to perform mathematical calculations.
• Slide rule used extensively for mathematical
calculations by students, engineers, scientists, military,
and others until largely replaced by hand-held
calculators, starting with HP models in 1970’s
CS 1401
History of Computing
 Renaissance
• Galileo (1564-1642) worked on mathematical
applications in physical sciences
• Rene Descartes (1596-1650) developed analytic
geometry
• Who designed and built what is believed to be the first
digital calculator?
CS 1401
History of Computing
 Renaissance
• Who designed and built what is believed to be the first
digital calculator? Wilhelm Schickard, in 1623
• Automated addition and subtraction; partially
automated multiplication and division
• Blaise Pascal (1623-1662) developed version of
mechanical calculator called “Arithmometer” about 20
years later; just added and subtracted
• Modern computer programming language named after
Pascal
CS 1401
History of Computing
 Renaissance
• Who was a co-inventor of calculus along with Sir Isaac
Newton?
CS 1401
History of Computing
 Renaissance
• Who was a co-inventor of calculus along with Sir Isaac
Newton? Gottfried Wilhelm Leibniz (1646-1716)
• What did he state about machines assisting with the
work of calculation?
• Invented the Leibniz wheel based upon Pascal’s work,
which performed arithmetic automatically
• Investigated binary arithmetic and proposed machine
testing of hypotheses
CS 1401
History of Computing
 1700’ and 1800’s
• Who was Charles Babbage (1791-1871) ?
CS 1401
History of Computing
 1700’s and 1800’s
• Who was Charles Babbage (1791-1871) ?
• A founding member of the British Royal Astronomical Society
• In 1800’s England’s sea power required accurate computations for
calculating cannon shots from moving ships
• Babbage developed concept for steam-powered “Difference
Engine” in 1821 to produce math tables
• Developed concept for “Analytical Engine,” designed to be general
device for any kind of calculation and symbol manipulation
• Similar in concept to modern computers, “Analytical Engine”
designed to use punch cards; unfortunately, working model never
completed
CS 1401
History of Computing
 1700’s and 1800’s
• Where did Babbage get the idea of using punch cards?
From Joseph-Marie Jacquard of France
• Many inventions during Industrial Revolution led to automation of
• Jacquard invented automatic loom in 1804, improving on earlier
punch card concept
• Holes in card controlled which doors opened or closed for thread
patterning
• Similar cards with holes punched to represent data developed for
use by modern computers
CS 1401
History of Computing
 Jacquard Loom:
CS 1401
History of Computing
 Computer punch card:
CS 1401
History of Computing
 1700’s and 1800’s
• Why did the U.S. DOD name the new programming
language it developed in 1979 “Ada” ?
CS 1401
History of Computing
 1700’s and 1800’s
• Why did the U.S. DOD name the new programming
language it developed in 1979 “Ada” ?
“computer programmer”
• Daughter of the famous English poet Lord Byron, and trained in
mathematics and science
• Became colleague of Babbage after hearing about his ideas for
“Analytic Engine” at a dinner party
• Predicted in 1843 many uses for engine and developed first
“programs” for it
CS 1401
History of Computing
 What was George Boole’s (1815-1864) important
contribution to the field of computer science?
CS 1401
History of Computing
 What was George Boole’s (1815-1864) important
contribution to the field of computer science?
 A largely self-educated Englishman, Boole
worked on identifying fundamental operations,
variables, and symbolic representations of both
 Introduced and studied expressions that had only
two values:
CS 1401
1 for “true”
0 for “false”
History of Computing
 Boole’s ideas became foundation for logic
study
 Concepts are basis for arithmetic-logic
CS 1401
History of Computing
 Late 1800’s and 1900’s - Herman Hollerith
• Considered father of modern automatic computation
• Worked on 1880 U.S. census and saw need for
mechanization of recording and tabulating process as
immigration increased
• Won design competition for 1890 census by inventing
equipment to tabulate and sort punched cards similar to
ones used on Jacquard loom
• Founded company Computing-Tabulating-Recording
Company (CTR) that later changed name to IBM in
1924
CS 1401
History of Computing
 Late 1800’s and 1900’s - Herman Hollerith (cont’d.)
• In Hollerith’s own words (“An Electric Tabulating System,” 1889):
“Few, who have not come directly in contact with a census office, can form
any adequate idea of the labor involved in the compilation of a census of
50,000,000 persons, as was the case in the last census, or of over
62,000,000, as will be the case in the census to be taken in June, 1890…
Although our population is constantly increasing, and although at each
census more complicated combinations and greater detail are required in
the various compilations, still, up to the present time, substantially the
original method of compilation has been [-239-] employed; that of making
tally-marks in small squares and then adding and counting such tallymarks. While engaged in work upon the tenth census, the writer's attention
was called to the methods employed in the tabulation of population
statistics and the enormous expense involved. These methods were at the
time described as "barbarous…” Some machine ought to be devised for
the purpose of facilitating such tabulations.”
CS 1401
History of Computing
 1900’s Question: Is it possible to state one consistent
system of logical/mathematical axioms from which all
mathematics can be derived?
Or…..
 Are there mathematical problems that are inherently
unsolvable? (Is there a limit to how far the systematic
reasoning methods first developed by the ancient Greeks
can take us) ?
CS 1401
Source: Andrew Bernat
History of Computing
 1900’s Question: Is it possible to state one consistent
system of logical/mathematical axioms from which all
mathematics can be derived?
Answer: Mathematician David Hilbert (1862-1943) thought so. He
proposed the existence of such a system for which all mathematics
could be derived
 Are there mathematical problems that are inherently
unsolvable? (Is there a limit to how far the systematic
reasoning methods first developed by the ancient Greeks
can take us) ?
Answer: Kurt Godel (1906-1978) proved in 1931 that a sufficiently
general formal system either must be inconsistent or must contain
statements that can’t be proved or disproved.
CS 1401
Source: Andrew Bernat
History of Computing
 Mathematics were revolutionized
 Mathematicians and logicians worked to define
exactly what it means when they say they have a
method to solve a problem.
 One very influential answer came from Alan
Turing. (1912-1954)
 What is Alan Turing famous for?
CS 1401
Source: Andrew Bernat
History of Computing
 What is Alan Turing famous for?
 Turing defined an “effective computation” as a
specific kind of “abstract machine”
 Became a major development in field of
computing
 Greatest impact was on design of digital computer
CS 1401
Source: Andrew Bernat
History of Computing
 Late 1800’s-1900’s New Applications Drive Advances in
Computing Design
• Leonardo Torres y Quevedo (1852-1936), President of
Academy of Sciences in Madrid , proposed chessplaying electromechanical version of Babbage’s
machines
• New scientific uses developed for Hollerith’s punchedcard tabulating machine , such as calculating position of
moon
• Astronomer Wallace J. Eckert (1902-1971) recognized
need for more scientific capability; proposed several
extensions to IBM tabulating machine
CS 1401
Source: Andrew Bernat
History of Computing
 1900’s - Four new computing capacities identified
by Howard T. Aiken (1900-1973). Ability to:
• Handle positive and negative numbers
• Apply various mathematical formulas
• Operate fully automatically
• Perform long calculations in sequence
CS 1401
Source: Andrew Bernat
History of Computing
 1900’s -
“Mark I” is not a missile. What is it?
CS 1401
Source: Andrew Bernat
History of Computing
 1900’s -
“Mark I” is not a missile. What is it?
Answer: A computing machine designed and built in 1944
by Aiken and his engineers in collaboration with IBM
engineers.
• Instructions written on paper tape
• Could multiply 2 numbers in 6 seconds !
• Similar machine built by Bell Labs
CS 1401
Source: Andrew Bernat
History of Computing
 1900’s -
theory of computation and the design of computing
machines?
CS 1401
Source: Andrew Bernat
History of Computing
 1900’s -
theory of computation and the design of computing
machines?
Answer: Claude E. Shannon, in master’s thesis at MIT,
showed how Boolean algebra could be used to analyze
complex switching circuits
• Pioneered systematic approach to design of switching
circuits
CS 1401
Source: Andrew Bernat
History of Computing
 1900’s -
The first fully electronic digital computer was named
“ABC.” Why?
CS 1401
Source: Andrew Bernat
History of Computing
 1900’s -
The first fully electronic digital computer was named
“ABC.” Why?
• Built in 1940 by John V. Atanasoff (1903- ), prof. at
Iowa State University and grad. Student Clifford E.
Berry
• Used vacuum tubes and binary arithmetic
• Influenced design of ENIAC
CS 1401
Source: Andrew Bernat
History of Computing
 1900’s -
• First modern computers developed in 1940’s
• Government and military requirements drove many
- Accurate artillery tables needed for WWII, 19391945
- Automatic computations needed for atomic bomb
development
• Increasingly larger and more powerful computing
machines were developed
CS 1401
History of Computing
 1900’s – What is ENIAC ?
• Electronic Numerical Integrator and Computer, world’s first
electronic digital computer, developed by Army Ordnance to
compute WWII ballistic firing tables
• Completed in 1945, served as prototype for development of most
other modern computers
• Weighed over 30 tons, and stored a maximum of twenty 10-digit
decimal numbers
• Included logic circuitry design now standard in computers
CS 1401
History of Computing
 1900’s – ENIAC
CS 1401
History of Computing
 1954 - IBM's Naval Ordinance Research Calculator, the first
“supercomputer”
CS 1401
History of Computing
 1954 – Tubes in IBM's NORC
CS 1401
History of Computing
 1900’s – Who was John von Neumann (1903-1957) and
what are characteristics of a von Neumann machine?
CS 1401
History of Computing
 1900’s – Who was John von Neumann (1903-1957) and
what are characteristics of a von Neumann machine?
• Famous Princeton University mathematician interested in both
logic design and applied math
• Investigated complex problems in fluid flow requiring intensive
calculations
• Developed characteristics of modern computers, which became
known as von Neumann machine
• Began working with ENIAC project in 1944
• Took responsibility for logic design of new machine (EDVAC)
planned to correct some of ENIAC’s shortcomings; created
detailed instruction set
CS 1401
History of Computing
 1900’s - Some of von Neumann’s Contributions (“von
Neumann machine”)
• Notation for describing logic aspects of computer
circuitry
• Concept of stored program (program and data can be
stored in memory; first program sorted and merged
numbers in list)
• Concept of serial operation, one step at a time,
simplifying circuitry (now going in direction of parallel
processing)
• Use of binary arithmetic rather than decimal
CS 1401
History of Computing
 1900’s and Beyond: Hardware Generations
• Can you describe five generations?
CS 1401
History of Computing
 1900’s and Beyond: Software Generations
• Early machines – machine language
Ex: 10100101
• Early 1950’s assembly languages (symbolic )
• Late 1950’s and early 1960’s high-level languages.Ex:
• FORTRAN (formula translator), John Backus,1954
Grace Murray Harper and others, 1960
• Pascal (Nicklaus Wirth, 1970)
CS 1401
History of Computing
 1900’s and Beyond: Software Generations
• Move from procedural languages to object-oriented
languages
• C  C++
• C++ developed at Bell Labs starting in 1979 (named in
1983), “C with Classes”
• Java (James Gosling and others at Sun Microsystems)
developed early 1990’s, released 1995; platform
independence lent itself to Internet use
CS 1401
```