10002 Things Every Self-Respecting Computer Scientist Should Know University of Richmond 10 September 2003 David Evans [email protected] http://www.cs.virginia.edu/evans/talks/richmond/ 10 November 2003
Download ReportTranscript 10002 Things Every Self-Respecting Computer Scientist Should Know University of Richmond 10 September 2003 David Evans [email protected] http://www.cs.virginia.edu/evans/talks/richmond/ 10 November 2003
1000 Things Every
2
Self-Respecting Computer Scientist Should Know
University of Richmond 10 September 2003 David Evans [email protected]
http://www.cs.virginia.edu/evans/talks/richmond/ 10 November 2003 1
1000 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 What is and is not computable?
0110 Who was the first object-oriented programmer?
0111 Who invented the Internet?
10 November 2003 2
0. What is Computer Science?
10 November 2003 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) 10 November 2003 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.
10 November 2003 Ada Byron (age 19), letter to Annabella Acheson (explaining Euclid), 1834 5
10 November 2003
What is the difference between Euclid and Ada?
“It depends on what your definition of ‘is’ is.” Bill Gates (at Microsoft’s anti trust trial) 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 processes (computations) Language – Ways of reasoning about (predicting) what imperative processes will do Logic 10 November 2003 7
1. What problem did the first electronic programmable computer solve?
10 November 2003 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 10 November 2003 9
Colossus’ Problem
• Decode Nazi high command messages from Lorenz Machine • XOR encoding: C i = M i K i – Perfect cipher,
if K is random and secret
10 November 2003 10
Why perfectly secure?
For any given ciphertext, all plaintexts are equally possible.
Ciphertext: Key:
0100111110101
Plaintext: 10 November 2003 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 10 November 2003 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 10 November 2003 13
2. Why was the first personal computer built?
10 November 2003 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?
10 November 2003 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 10 November 2003 16
3. Science, Engineering or Other?
10 November 2003 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 10 November 2003 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 19 10 November 2003
Computing Power 1969-2002 (in Apollo Control Computer Units)
4500000 4000000 3500000 Moore’s Law: computing power doubles every 18 months!
3000000 2500000 2000000 1500000 1000000 If Apollo Guidance Computer power is 1 inch, you have 5 miles!
(1GB/4KB = 262144) 500000 0 10 November 2003 20
Constraints Computer Scientists Face • Not like those for engineers: – Cost, weight, physics, etc.
– If 8 Million times what NASA had in 1969 isn’t enough for you, wait until 2007 and you will have 32 Million times… • More like those for Musicians and Poets: – Imagination and Creativity – Complexity of what we can understand – Cost of human effort 10 November 2003 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 engineering type constraints Must be a Liberal Art!
10 November 2003 22
The Liberal Arts
Trivium (3 roads) Quadrivium (4 roads) Grammar Rhetoric Logic Arithmetic Geometry Music Astronomy 10 November 2003 23
Liberal Arts
• Grammar: study of meaning in written expression Yes, we need to understand meaning to describe computations • Rhetoric: comprehension of verbal and written discourse • Logic: argumentative discourse for Interfaces between components, discourse between programs and users Logic for controlling discovering truth and reasoning about computations • Arithmetic: understanding numbers Yes • Geometry: quantification of space Yes (graphics) • Music: number in time • Astronomy: laws of the planets and stars Yes (read
G ödel, Escher, Bach
) Sort of, read Neil DeGrasse Tyson’s essay 10 November 2003 24
4. What are the world’s most complex programs?
10 November 2003 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?
10 November 2003 26
10 November 2003
Human Genome
Produces 60 Trillion Cells (6 * 10 13 ) 50 Million die every second!
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 Wal Mart’s database is
280 Terabytes
10 November 2003 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 10 November 2003 29
5. What is and is not computable?
10 November 2003 30
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?
10 November 2003 31
Halts is not Computable
boolean contradictHalts (Program if (halts “contradictHalts ( while (true) ; else return true; P );”) P ) If contradictHalts the while loop halts, the if it doesn’t halt!
test is true if enters If contradictHalts doesn’t halt, the if and it evaluates to
true
. It halts!
test if false, 10 November 2003 32
Learned Discussion on Computability (Video)
10 November 2003 33
Ali G Multiplication Problem
• Input: a list of
n
numbers • Output: the product of all the numbers Is it computable?
Yes – a straightforward algorithm solves it.
Can
real
computers solve it?
10 November 2003 34
10 November 2003 35
Ali G was Right!
• Theory assumes ideal computers: – Unlimited memory – Unlimited power – 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 10 November 2003 36
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 10 November 2003 37
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 10 November 2003 38
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.
10 November 2003 39
Who was the first object-oriented programmer?
10 November 2003 40
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 10 November 2003 41
7. Who Invented the Internet?
10 November 2003 42
What is a Network?
A group of three or more connected entities communicating indirectly Ancient Greeks had beacon chain networks on Greek island mountaintops 10 November 2003 43
Chappe’s Semaphore Network
First Line (Paris to Lille), 1794 10 November 2003
Mobile Semaphore Telegraph
Used in the Crimean War 1853-1856 44
internetwork
A collection of multiple networks connected together, so messages can be transmitted between nodes on different networks.
10 November 2003 45
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 10 November 2003 46
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.
10 November 2003 47
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.
J. C. R. Licklider and Robert W. Taylor,
The Computer as a Communication Device
, April
1968
48 10 November 2003
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”) 10 November 2003 49
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 10 November 2003 For slides and links to more information: http://www.cs.virginia.edu/evans/talks/richmond/ 50
10 November 2003
Any Questions?
51