- Forward


Computing and the Computer


Prof. David Bernstein
James Madison University

Computer Science Department
bernstdh@jmu.edu

Print

"Computer" Defined (OED)
Back SMYC Forward
  • 1646 to 1897
    • "One who computes; a calculator, reckoner; spec. a person employed to make calculations in an observatory, in surveying, etc."
    Expand
  • 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)."
    Expand
History of Computing
Back SMYC Forward
  • 3000BC - Abacus - China
  • 150BC - The Antikythera Mechanism
    • Geared mechanism used to calculate orbits
    Expand
  • 1612AD - Napier's Bones - Scotland (John Napier)
    • Used sliding ivory rods
    Expand
  • 1630 - Circular Slide Rule - England (William Oughtred)
    • Used logarithms
    Expand
  • 1642 - Pascaline - France (Blaise Pascal)
    • An adding machine that used eight 10-toothed wheels
    Expand
History of Computing (cont.)
Back SMYC Forward
  • 1673 - Calculator - Germany (Gottfried Wilhelm von Leibniz)
    • Used gears and dials for addition, subtraction, multiplication and division)
    Expand
  • 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.
    Expand
  • 1822 - Difference Engine - England (Charles Babbage)
    • Designed to compute polynomials.
    • It was never finished.
    Expand
History of Computing (cont.)
Back SMYC Forward
  • 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.
    Expand
  • 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).
    Expand
  • 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.
    Expand
History of Computing (cont.)
Back SMYC Forward
  • 1936-1942 - ABC - Iowa State Univ. (Atanasoff and Berry)
    • A 1973 court case ruled that this was "The First Electronic Digital Computer"
    Expand
  • 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".
    Expand
  • 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
    Expand
History of Computing (cont.)
Back SMYC Forward
  • 1945 - Electronic Delay Storage Automatic Computer - U.S. (John von Neumann)
    • Known as EDSAC
    • von Neumann architecture stores program instructions internally before executing them.
    Expand
  • 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.
    Expand
  • 1958-1965 - Vacuum tubes replaced by transistors
    • 1958 - IBM 7090
    Expand
History of Computing (cont.)
Back SMYC Forward
  • 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
    Expand
  • 1971-Present - Very large-scale integrated circuits (VLSI)
    • 1971 Intel 4004 chip - Ted Hoff
    • 1974 - MITS Altair 8800 hobby kit computer - Roberts, Yates and Bybee
      • Used the Intel 8080.
      • Bill Gates and Paul Allen wrote a BASIC compiler for the Altair in 1974.
    • 1976 - Apple II - Steven Jobs and Steve Wozniak
    • 1976, Cray I - Seymour Cray
    Expand
History: Where to Learn More
Back SMYC Forward
  • IEEE Annals of the History of Computing
  • The Computer Museum History Center
  • The History of Computing Project
A Simplified Model of the Hardware
Back SMYC Forward
computer
Processing
Back SMYC Forward
  • Control Unit:
    • Fetches instructions, decodes them, and sends them to the ALU
  • Arithmetic/Logic Unit:
    • Performs arithmetic and logical operations (several billion per second)
  • Main Memory:
    • Where instructions and data are stored
Logical Operations
Back SMYC Forward
Form the Foundation of All Computation
truth_tables
Storage
Back SMYC Forward
  • We are concerned with two types:
    • Volatile Memory (e.g., RAM)
    • Non-Volatile Memory (e.g., disk)
  • Representation:
    • All memory is a collection of two-state (i.e., binary) devices
Input and Output
Back SMYC Forward
  • 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
Back SMYC Forward
  • 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)
There's Always More to Learn
Back -