CS 4, Summer 2006: Lecture 1: Introduction & History
Welcome
Your perspective?
- What is a computer?
- What is computer science?
- Why do you care?
Some thoughts
- Brian Kernighan: universality
- Numbers are a universal representation (music, pictures, books)
- Computers are universal number processors
- The internet is a universal number carrier
- Universal gadgets: cell phone = computer with radio, iPod =
computer with headphones, ...
- Sean Smith: A liberal arts education centers on thinking and
knowledge. CS is the study of the physical embodiments of thinking
and knowledge.
- General consensus: Fun! Freedom! Creativity! Make things happen
that otherwise just couldn't! Learn to communicate a process precisely!
- Invitation to Computer Science (ICS): some misconceptions about CS
- not just about the machines (just like biology is not just about
the microscopes), but also what can we do with them
- not just about programming, but also about the stuff leading
up to it (analysis and design) and following it (testing)
- not just about applications (just like automotive engineering is not
about driving cars)
Also a precise definition of what it is, centered on the idea of
an "algorithm", or step-by-step method for accomplishing a task.
What we'll cover
(see also the schedule page)
- How do we represent information?
- How do we compute with those representations?
- How do we make a program do those computations?
- How does a computer carry out that program?
- What can a computer do and not do?
- What can we do with computers?
Administrative stuff
See http://www.cs.dartmouth.edu/~cbk/4/
for
- News
- Who, when, where
- Requirements: homeworks, exams
- Policies: follow the honor code
- HW 0: apply for web space now
- Schedule
A brief history of computing machines
To see some historical computing machines used at Dartmouth over
the years, and learn about their history (teaser: one exhibit is "when
computers were human"), visit the Count
on It exhibit at the Kresge/Cook
Library. Take a friend!
Calculation: mechanical
Abacus, circa 3000 B.C.: addition, subtraction, multiplication,
division
- Information stored in positions of beads.
Blaise Pascal's "Pasacline", 1642 (he was 18): addition
- Information stored in positions of gears.
- Upon cranking, rods and meshing gears transferred information.
Gottfried Wilhem von Leibniz, 1694: extended
Pascal's design to include multiplication.
Charles Xavier Thomas de Colmar, 1820: invented the
arithometer that could add, subtract, multiply and divide.
Programmable: punch cards
Joseph Jacquard (1752-1834): punch card loom
- Holes punched in a card controlled movement of the warp strings.
- Cards described patterns and the looms cycled through the cards.
- Encoded knowledge of master weaver, for automation.
- Software piracy: competing manufacturers would steal card decks.
Charles Babbage (1792-1871): Difference Engine (1820s)
- Could perform many arbitrary sequences of arithmetic, in some cases to
as many as 31 digits of precision.
- The Kensington Science Museum built a replica of the Difference Engine
in the 1990s.
Babbage, with Lady Ada Lovelace: designed (but never completed)
first general purpose computer -- the steam-powered Analytical
Engine.
- Included 50,000 components, input device (perforated cards) containing
instructions, memory (1,000 numbers), a control unit that allowed
instructions to be processed in any order, and an output device.
- Lady Lovelace (daughter of the poet Lord Byron) helped develop a
"program" for computing a sequence of Bernoulli numbers.
Herman Hollerith (1860-1929): 1890 census via punch card
tabulator.
- Estimates said it would take 8 to 9 years by hand; machine helped do
it in 6 weeks.
- Tiny wires detected the presence or absence of holes.
- His company eventually became known as IBM.
Let's get digital
Mark I, 1945 ($200,000): sines, cosines, logs, and basic
arithmetic.
- Harvard's Howard Aiken (1900-1973) helped design it after finding a model
of Babbage's difference engine sitting in an attic.
- 51 feet long, 8 feet high and 2 feet wide; over 10,000 pounds.
- About 5 operations per second.
ENIAC, 1944: artillery shell trajectories
- Roughly 18000 vacuum tubes, weighed 30 tons, dimmed lights in section
of Philadelphia.
- Up to 5000 additions per second.
The CPU
- John von Neumann (1903-1957) simplified the model.
- One "central processing unit" would do the calculation.
- The program would be stored in memory and fed into the CPU to tell it what to do.
- No need to replug wires or rewire the machine; no more wiring
"bugs".
- But the word "bug" stuck. Grace Hopper started using it to refer to
correcting ("debugging") programs.
- Beginning of software.
Quotes about where computers are heading:
"I think there is a world market for maybe five computers."
--Thomas Watson, IBM chairman, 1943
"Computers in the future may weigh no more than 1.5 tons."
--Popular Mechanics, 1949
The modern era
Transistor (1956): replace vacuum tubes; smaller, faster, more
reliable
- IBM Stretch: 50,000 ops/sec, $3.5 million
Programming languages (1960s): COBOL, FORTRAN, LISP
- High-level languages make it easier and faster to program
computers; "compilers" convert to machine-understandable code.
- At Dartmouth, John Kemeny and Thomas Kurtz invented BASIC.
- Somewhat later, a man by the name of Bill Gates got his start making
BASIC available for an early personal computer.
Integrated circuits (1960s): multiple transistors per chip
- 100,000+ ops/sec.
- "There is no reason anyone would want a computer in their home."
--Ken Olson, president, chairman and founder of Digital Equipment
Corp., 1977
Personal computers (1970s): Apple, Commodore, Radio Shack
Where are we now?
CS to automobile industry: if we made cars,
- They would cost $1.
- They would go 20,000 mph
- They would get 1,000,000 miles per gallon.
(ICS, p. 28, analogous rate of change from 1909 Model T)
Automobile industry back: but,
- They would crash twice a day for no reason.
- You would need a new car every time they repainted the lines on the road.
- If it stalled, you would need to open and close the passenger's window three times, twist the radio knob to the left for a quarter turn, turn the air conditioner on full blast, and then it would restart.
- Airbags would ask, "Are you sure?" before proceeding.
- You would press the "start" button to turn it off.
(Folklore from multiple sources.)
Where are we going?
Moore's law: processor complexity doubles every 18-24 months.
Computers getting smarter (AI@50)
Computers everywhere (ubiquitous)