CS173: History of Computing

Bill Mongan

Mechanical Computing Machines

Boulier1

  • The abacus (base-60 calculator), c. 2700 BCE [1]
    • Arithmetic operations

Mechanical Computing Machines

NAMA Machine d'Anticythère 1

  • Antikythera Mechanism (astronomy), c. 100 BCE [2]
    • Gearing represented periodic functions for celestial bodies

Number Systems

  • Why might the early abacus have used a base-60 system?
    • What other systems do we know?
    • What is the simplest number system?
    • Why can’t we represent this number more precisely?

Number Systems

  • Babylonian number system showing fractional portions of base 60 units to represent an approximation of the square root of 2 (24, 51, and 10 are are the numerators of each fractional place value added to the unit value 1)

Ybc7289-bw

Logic

Wikipedia in binary

  • Godfried Leibniz (1689) proposed a binary number system, derived from the I Ching (based on yin and yang) [3]
  • George Boole (1847): The Mathematical Analysis of Logic - used a binary system to propose Boolean Algebra (AND, OR, NOT)
    • Tent: Warm AND NOT Raining

Logic

  • Claude Shannon (1937) applied binary to circuits
    • This led to the publication of his The Mathematical Theory of Communication (1948), giving rise to modern Information Theory and digital communications
    • Coined the term “bit”
  • Joseph Jacquard’s Loom (1801): textile weaving from binary codes encoded on punch cards [4]

The Analytical Engine

  • Charles Babbage (1837) proposed the Analytical Engine - a design for a modern computer using punch cards [5]

  • Ada Lovelace proposed the first Algorithm to compute the sequence of Bernoulli Numbers to be executed on the Analytical Engine

    • The engine was not completed during her lifetime, so it could not be executed, but this was the first computer program [6]

Turing Machines

  • Church-Turing Thesis (1936): mathematical representation of a “function” that must be expressed in small, basic steps that could be carried out mechanically [7]
    • It doesn’t matter if the steps are so tedious that the process would take a long time, because we can eventually use this model to automate the process with fast computers

Turing Machines

  • Turing Machine: a theoretical mechanism that can carry out computations using binary and simple read/write/shift instructions on a tape
  • The Algorithm (Muhammad ibn Musa al-Khwarizimi, c. 800 CE) [8]
    • Derived from his book on Algebra as a definition of a process
    • Used to define the process of steps undertaken by a Turing Machine

The First Computer “Bug” (1945)

First Computer Bug, 1945

Modern Computer Architectures

  • John Von Neumann Architecture (1946)
    • Arithmetic, Conditionals, Branches, Loops
    • Single bus for unified instruction and data memory, using registers to bridge the gap

Von Neumann Architecture

Modern Computer Architectures

  • Harvard Architecture
    • Instruction and data memory are separated for simultaneous access

Harvard architecture

Modern Computer Architectures

  • Reduced Instruction Set Computer (RISC): short, consistent clock cycles
  • CISC instructions encode more meaning into each larger instruction

References

References