## Mechanical Computing Machines

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

## Mechanical Computing Machines

• 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)

## Logic

• 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

## 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

## Modern Computer Architectures

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

## Modern Computer Architectures

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