1001 Things Every Self-Respecting Computer Scientist Should Know

advertisement
10012 Things Every
Self-Respecting
Computer Scientist
Should Know
CS390
14 April 2004
David Evans
evans@cs.virginia.edu
http://www.cs.virginia.edu/evans/talks/cs390-s04/
1001 Questions
0000 What is Computer Science?
0001 What problem did the first electronic programmable
computer solve?
0010 Why was the first “personal computer” built?
0011 Is Computer Science a science, engineering or other?
0100 What are the world’s most complex programs?
0101 How do Computer Scientists manage complexity?
0110 What is and is not computable?
0111 Who was the first object-oriented programmer?
1000 Who invented the Internet?
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
2
0. What is
Computer Science?
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
3
Let AB and CD be the two given numbers
not relatively prime. It is required to find the
greatest common measure of AB and CD.
If now CD measures AB, since it also
measures itself, then CD is a common
measure of CD and AB. And it is manifest
that it is also the greatest, for no greater
number than CD measures CD.
Euclid’s Elements, Book VII, Proposition 2 (300BC)
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
4
The note on the inflected line is
only difficult to you, because it is so
easy. There is in fact nothing in it, but
you think there must be some grand
mystery hidden under that word
inflected!
Whenever from any point without
a given line, you draw a long to any
point in the given line, you have
inflected a line upon a given line.
Ada Byron (age 19), letter to Annabella
Acheson (explaining Euclid), 1834
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
5
What is the
difference
between
Euclid and
Ada?
“It depends on what your
definition of ‘is’ is.”
Bill Gates (at Microsoft’s antitrust trial)
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
6
Geometry vs. Computer Science
• Geometry (mathematics) is about
declarative knowledge: “what is”
• Computer Science is about
imperative knowledge: “how to”
– Ways of describing imperative
Language
processes (computations)
– Ways of reasoning about (predicting)
Logic
what imperative processes will do
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
7
1. What problem did the first
electronic programmable
computer solve?
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
8
Colossus
First Programmable Computer
• Bletchley Park, 1943
• Designed by Tommy
Flowers
• 10 Colossi in operation at
end of WWII
• Destroyed in 1960, kept
secret until 1970s
• 2 years before ENIAC –
calculating artillery tables
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
9
Colossus’ Problem
• Decode Nazi high
command messages
from Lorenz Machine
• XOR encoding:
Ci = Mi  Ki
– Perfect cipher, if K is
random and secret
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
10
Why perfectly secure?
For any given ciphertext, all plaintexts are
equally possible.
Ciphertext:
Key:
Plaintext:
14 April 2004
0100111110101
1
1100000100110
B
1000111010011
= “CS”
0
http://www.cs.virginia.edu/evans/talks/cs390-s04/
11
Breaking Lorenz
• Operator and receiver need
same keys
• Generate key bits using rotor
machine, start with same
configuration
• One operator retransmitted a message (but
abbreviated message header the second
time!)
• Enough for Bletchley Park to figure out key –
and structure of machine that generated it!
• But still had to try all configurations
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
12
Colossus
• Read ciphertext and Lorenz wheel
patterns from tapes
• Tried each alignment, calculated
correlation with German
• Decoded messages (63M letters by 10
Colossus machines) that enabled Allies
to know German troop locations to plan
D-Day
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
13
2. Why was the first personal
computer built?
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
14
Apollo Guidance Computer, 1961-69
1 cubic foot,
70 pounds
4KB of read/write
magnetic core
memory
64KB of read-only
memory
Why did they need to fit the
guidance computer in the rocket?
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
15
AGC History
• Needed all guidance to be on board in
case Soviets jammed signals for Earth
• Design began in 1961
• Risky decision to use Integrated Circuits
(invented in 1958)
– Building 4 prototypes used 60% of all ICs
produced in the US in the early 60s!
– Spurred industry growth
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
16
3. Science, Engineering or
Other?
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
17
Science?
• Understanding Nature through
Observation
– About real things like bowling balls, black
holes, antimatter, electrons, comets, etc.
• Math and Computer Science are about
fake things like numbers, graphs,
functions, lists, etc.
– Computer Science is a useful tool for doing
real science, but not a real science
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
18
Engineering?
“Engineering is design under
constraint… Engineering is synthetic
- it strives to create what can be, but it
is constrained by nature, by cost, by
concerns of safety, reliability,
environmental impact,
manufacturability, maintainability and
many other such 'ilities.' ...”
William Wulf
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
19
Computing Power 1969-2004
(in Apollo Control Computer Units)
18,000,000
Moore’s Law: computing power
doubles every 18 months!
16,000,000
14,000,000
12,000,000
10,000,000
If Apollo Guidance
Computer power is 1
inch, you have 5 miles!
1GB/4KB = 262 144
but why not 18M x?
8,000,000
6,000,000
4,000,000
2,000,000
2005
2004
2002
2001
1999
1998
1996
1995
1993
1992
1990
1989
1987
1986
1984
1983
1981
1980
1978
1977
1975
1974
1972
1971
1969
0
Constraints Computer Scientists Face
• Not like those for engineers:
– Cost, weight, physics, etc.
– If 1 Million times what NASA had in 1969 isn’t
enough for you, wait until 2007 and you will
have 4 Million times…
• More like those for Musicians and Poets:
– Imagination and Creativity
– Complexity of what we can understand
– Cost of human effort
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
21
So, what is computer science?
• Science
– No: its about fake things like numbers, not
about observing and understanding nature
• Engineering
– No: we don’t have to deal with engineeringtype constraints
Must be a Liberal Art!
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
22
The Liberal Arts
Trivium (3 roads)
Grammar
Rhetoric
Quadrivium (4 roads)
Logic Arithmetic
Music
Geometry
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
Astronomy
23
Liberal Arts
Quadrivium
Trivium
Yes, we need to understand
• Grammar: study of meaning in
meaning to describe
written expression
computations
• Rhetoric: comprehension of verbal Interfaces between
components, discourse
and written discourse
between programs and users
• Logic: argumentative discourse for Logic for controlling
and reasoning about
discovering truth
computations
• Arithmetic: understanding numbers
Yes
• Geometry: quantification of space
Yes (graphics)
• Music: number in time
Yes (read Gödel,
• Astronomy: laws of the planets and
Escher, Bach)
stars
Sort of, read Neil DeGrasse Tyson’s essay
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
24
4. What are the world’s most
complex programs?
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
25
Complex Programs
• Apollo Guidance Software
– ~36K instructions
• F-22 Steath Fighter Avionics Software
– 1.5M lines of code (Ada)
• 5EEE (phone switching software)
– 18M lines
• Windows XP
– ~50M lines (1 error per kloc ~ 50,000 bugs)
• Anything more complex?
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
26
Human Genome
Produces
60 Trillion Cells (6 * 1013)
50 Million die every
second!
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
27
How Big is the
Make-a-Human Program?
• 3 Billion Base Pairs
– Each nucleotide is 2 bits (4 possibilities)
– 3B bases * 1 byte/4 pairs = 750 MB
– Highly redundant encoding (21/64) ~ 250 MB
– About 95% of it is junk ~ 12 MB
1 CD ~ 650 MB
14 April 2004
Wal-Mart’s database
is >280 Terabytes
http://www.cs.virginia.edu/evans/talks/cs390-s04/
28
Expressiveness of DNA
• Genetic sequence for 2 humans differs
in only 2 million bases
– 4 million bits = 0.5 MB
1/3 of a floppy disk
<1% of Windows 2000
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
29
5. How do Computer
Scientists manage
complexity?
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
30
Abstraction
Adapted from Gerard Holzmann’s FSE Slides
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
31
Abstraction in Computer Science
• Procedural Abstraction (CS101)
– Abstract what to do from specific values to do
it to
• Data Abstraction (CS201)
– Abstract away representation details by
specifying what you can do with something
• Abstraction by Specification (CS340)
– Abstract away how details by saying what a
procedure does
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
32
6. What is and is not
computable?
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
33
Halting Problem
Input: a procedure P
Output: true if P halts (finishes
execution), false otherwise.
Is it possible it implement a procedure that
correctly implements halts and always
terminates?
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
34
Halts is not Computable
boolean contradictHalts (Program P)
if (halts “contradictHalts (P);”)
while (true) ;
else
return true;
If contradictHalts halts, the if test is true if enters
the while loop - it doesn’t halt!
If contradictHalts doesn’t halt, the if test if false,
and it evaluates to true. It halts!
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
35
Learned Discussion on
Computability
(Video)
Ali G Multiplication Problem
• Input: two d digit numbers (mostly 9s)
• Output: the product of all the numbers
Is it computable?
Yes – a straightforward algorithm
solves it.
Is it tractable?
Yes – elementary multiplication
solves it in O(d2)
Can real computers solve it?
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
37
Ali G was Right!
• Theory assumes ideal computers:
– Unlimited, perfect memory
– Unlimited (finite) time
• Real computers have:
– Limited memory, time, power outages, flaky
programming languages, etc.
– There are many decidable problems we cannot
solve with real computer: the numbers do matter
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
39
6. Who was the first
Object-Oriented
Programmer?
“I invented the term
Object-Oriented and I can tell
you I did not have C++ in mind.”
Alan Kay
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
40
What is an Object?
• Packaging state and procedures
– State: the representation
• What a thing is
– Procedures: methods and constructors
• What you can do with it
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
41
Object-Oriented Programming
• State of mind where you program by
thinking about objects
• It is difficult to reach that state of mind if
your language doesn’t have:
– Mechanisms for packaging state and
procedures (Java has class)
– Subtyping (Java has extends and implements)
• Other things can help: dynamic dispatch,
implementation inheritance, automatic
memory management, Krispy Kremes, etc.
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
42
Who was the first
object-oriented programmer?
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
43
By the word operation, we mean any process which
alters the mutual relation of two or more things, be
this relation of what kind it may. This is the most
general definition, and would include all subjects in
the universe. Again, it might act upon other things
besides number, were objects found whose mutual
fundamental relations could be expressed by those of
the abstract science of operations…Supposing, for
instance, that the fundamental relations of pitched
sounds in the science of harmony and of musical
composition were susceptible of such expression and
adaptations, the engine might compose elaborate and
scientific pieces of music of any degree of complexity
or extent.
Ada Augusta Byron, 1842
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
44
7. Who Invented the Internet?
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
45
What is a Network?
A group of three or more connected
entities communicating indirectly
Ancient Greeks had beacon chain
networks on Greek island mountaintops
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
46
Chappe’s Semaphore Network
First Line (Paris to Lille), 1794
14 April 2004
Mobile Semaphore Telegraph
Used in the Crimean War 1853-1856
http://www.cs.virginia.edu/evans/talks/cs390-s04/
47
internetwork
A collection of multiple networks
connected together, so messages can
be transmitted between nodes on
different networks.
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
48
The First Internetwork
• 1800: Sweden and Denmark worried about
Britain invading
• Edelcrantz proposes link across strait
separating Sweden and Denmark to connect
their (signaling) telegraph networks
• 1801: British attack Copenhagen, transmit
message to Sweden, but they don’t help.
• Denmark signs treaty with Britain, and stops
communications with Sweden
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
49
First Use of The Internet
• October 1969: First packets on the
ARPANet from UCLA to Stanford.
Starts to send "LOGIN", but it crashes
on the G.
• 20 July 1969:
Live video (b/w) and
audio transmitted from
moon to Earth, and to
several hundred million
televisions worldwide.
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
50
Licklider and Taylor’s Vision
Available within the network will be functions and services to
which you subscribe on a regular basis and others that you
call for when you need them. In the former group will be
investment guidance, tax counseling, selective dissemination
of information in your field of specialization, announcement of
cultural, sport, and entertainment events that fit your
interests, etc. In the latter group will be dictionaries,
encyclopedias, indexes, catalogues, editing programs,
teaching programs, testing programs, programming systems,
data bases, and – most important – communication, display,
and modeling programs. All these will be – at some late
date in the history of networking - systematized and
coherent; you will be able to get along in one basic
language up to the point at which you choose a
specialized language for its power or terseness.
14 April 2004
J. C. R. Licklider and Robert W. Taylor, The Computer
as a Communication Device, April 1968
http://www.cs.virginia.edu/evans/talks/cs390-s04/
51
The Modern Internet
• Packet Switching: Leonard Kleinrock (UCLA),
Donald Davies and Paul Baran, Edelcrantz’s
signaling network (1809)
• Internet Protocol: Vint Cerf, Bob Kahn
• Vision, Funding: J.C.R. Licklider, Bob Taylor
• Government: Al Gore (first politician to promote
Internet, 1986; act to connect government networks
to form “Interagency Network”)
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
52
Summary
• Computer Science is a real intellectual
discipline: not like “Automotive
Engineering” or “Toaster Science”
• Seek out and work on problems that are
at the intellectual core of computer
science
• Most of Computer Science was not
invented yesterday (or even since you
were born)
For slides and links to more information:
http://www.cs.virginia.edu/evans/talks/cs390-s04/
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
53
Any Questions?
14 April 2004
http://www.cs.virginia.edu/evans/talks/cs390-s04/
54
Download