| Pre-History
The abacus, a simple counting aid,
may have been invented in Babylonia (now Iraq) in the fourth century B.C.
The Antikythera mechanism, used for registering and predicting the motion
of the stars and planets, is dated to the first century B.C. It was
discovered off the coast of Greece in 1901.
Arabic numerals are
introduced to Europe in the eighth and ninth centuries A.D. Roman numerals
remain in use in some parts of Europe until the seventeenth century. The
Arabic system introduced the concepts of the zero and fixed places for
tens, hundreds, thousand, etc., and greatly simplified mathematical
calculations. John Napier, Baron of Merchiston, Scotland, invents logs
in 1614. Logs allow multiplication and division to be reduced to addition
and subtraction. Wilhelm Schickard builds the first mechanical
calculator in 1623. It can work with six digits, and carries digits across
columns. It works, but never makes it beyond the prototype stage.
Schickard is a professor at the University of Tubingen, Germany.
Blaise
Pascal builds a mechanical calculator in 1642. It has the capacity for
eight digits, but has trouble carrying and its gears tend to jam.
Joseph-Marie Jacquard invents an automatic loom controlled by punch cards.
Charles Babbage conceives of a "Difference Engine" in 1820 or 1821. It is
a massive steam-powered mechanical calculator designed to print
astronomical tables. He attempts to build it over the course of the next
20 years, only to have the project cancelled by the British government in
1842. Babbage's next idea is the Analytical Engine - a mechanical computer
that can solve any mathematical problem. It uses punch-cards similar to
those used by the Jacquard loom and can perform simple conditional
operations. Augusta Ada Byron, the countess of Lovelace, met Babbage in
1833. She describes the Analytical Engine as weaving "algebraic patterns
just as the Jacquard loom weaves flowers and leaves." Her published
analysis of the Analytical Engine is our best record of its programming
potential. In it she outlines the fundamentals of computer programming,
including data analysis, looping and memory addressing. |