Top Banner
David Evans http://www.cs.virginia.edu/ evans CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should Know (but won’t see on Exam 2)
49

David Evans CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

Mar 31, 2015

Download

Documents

Colt Scovil
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

David Evanshttp://www.cs.virginia.edu/evans

CS201j: Engineering SoftwareUniversity of VirginiaComputer Science

Lecture 23: EverythingElse You Should Know (but won’t see on Exam 2)

Page 2: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 2

Menu

• Course Evaluations

• 101 Things Every Computer Scientist should know

• Course Charge

Page 3: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 3

Course Pledge You SignedI will provide useful feedback. I realize this is an experimental course and it is important that I let the course staff know what they need to improve the course. I will not wait until the end of the course to make the course staff aware of any problems. I will provide feedback either anonymously (using the course feedback form) or by contacting the course staff directly. I will fill out all course evaluation surveys honestly and thoroughly.

Page 4: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 4

Two Surveys Required• Official SEAS Survey

– You receive email about it– Administrators read it to determine whether or not

to fire me

• CS201J Specific Survey: handed out today– Specific questions to help improve future editions

of CS201

• I do read all of the surveys completely

• Department head and curriculum committee will read SEAS survey

Page 5: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 5

101 Questions

000 What is Computer Science?001 What problem did the first electronic programmable

computer solve?010 What are the world’s most complex programs?011 How do Computer Scientists manage complexity?100 What is and is not computable?101 Who invented the Internet?

Page 6: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 6

0. What is Computer Science?

Page 7: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 7

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)

Page 8: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 8

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

Page 9: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 9

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)

Page 10: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 10

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)– Ways of reasoning about (predicting)

what imperative processes will do

Language

Logic

Page 11: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 11

Was CS201J a Computer Science Course?

• No! – Only about 30% of CS201J is computer

science.– Most of it is software engineering.

If you want to take a Computer Science course,Consider taking CS200 in the Spring

Page 12: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 12

1. What problem did the first electronic programmable

computer solve?

Page 13: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 13

ColossusFirst 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

Page 14: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 14

Colossus’ Problem

• Decode Nazi high command messages from Lorenz Machine

• XOR encoding:

Ci = Mi Ki

– Perfect cipher, if K is random and secret

Page 15: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 15

For any given ciphertext, all plaintexts are equally possible.

Ciphertext: 0100111110101

Key: 1100000100110

Plaintext: 1000111010011 = “CS”

Why perfectly secure?

1

0 B

Page 16: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 16

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

Page 17: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 17

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

Page 18: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 18

2. What are the world’s most complex programs?

Page 19: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 19

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?

Page 20: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 20

Human Genome

Produces60 Trillion Cells (6 * 1013)

50 Million die every second!

Page 21: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 21

DNA

• Sequence of nucleotides: adenine (A), guanine (G), cytosine (C), and thymine (T)

• Two strands, A must attach to T and G must attach to C

A

G

T

CC

Page 22: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 22

Codons• Three nucleotides

encode an amino acid• Sequence of amino

acids makes a protein• But, there are only 20

amino acids, so there may be several different ways to encode the same one

From http://web.mit.edu/esgbio/www/dogma/dogma.html

Page 23: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 23

Central Dogma of Biology(Crick, 1957)

• DNA makes RNA

• RNA makes proteins

• Proteins make us

DNA

Transcription

RNA

Translation

ProteinImage from http://www.umich.edu/~protein/

Page 24: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 24

Shortest (Known) Life Program • Nanoarchaeum equitans

– 490,885 bases (522 genes)= 490,885 * ¼ * 21/64 = 40,268 bytes

– Parasite: no metabolic capacity,

must steal from host– Complete components for information processing:

transcription, replication, enzymes for DNA repair

• Size of compiling C++ “Hello World”: Windows (bcc32): 112,640 bytes

Linux (g++): 11,358 bytes

http://www.mediscover.net/Extremophiles.cfmKO Stetter and Dr Rachel Reinhard

Page 25: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 25

The Make-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

• Only 5% is transcribed (exons) ~ 12 MB– 95% junk (intons): genomes from viruses

reverse transcribed into human genome, but inactive

Wal-Mart’s databaseis 280 Terabytes

CD = 650 MB

Page 26: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 26

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

Page 27: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 27

3. How do Computer Scientists manage

complexity?

Page 28: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 28

Abstraction

Adapted from Gerard Holzmann’s FSE Slides

Page 29: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 29

Abstraction in CS201J• Abstraction by Specification

– Abstract away how details by saying what a procedure does

• Data Abstraction– Abstract away representation details by specifying

what you can do with something

• Subtyping– Abstract away actual type details by allowing many

types to be used in the same way (?)

• Concurrency– Abstract away when details (?)

Page 30: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 30

4. What is and is not computable?

Page 31: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 31

Halting Problem

Input: a procedure POutput: true if P halts (finishes execution), false otherwise.

Is it possible it implement a procedure that correctly implements halts and always terminates?

Page 32: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 32

Halts is not Computableboolean 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!

Page 33: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

Learned Discussion on Computability

(Video)

Page 34: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 34

Ali G Multiplication Problem

• Input: a list of n numbers

• Output: the product of all the numbers

Is it computable?Yes – a straightforward algorithmsolves it.

Can real computers solve it?

Page 35: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.
Page 36: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 36

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

Page 37: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 37

5. Who Invented the Internet?

skip

Page 38: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 38

What is a Network?

A group of three or more connected entities communicating indirectly

Ancient Greeks had beacon chainnetworks on Greek island mountaintops

Page 39: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 39

Chappe’s Semaphore Network

Mobile Semaphore Telegraph Used in the Crimean War 1853-1856

First Line (Paris to Lille), 1794

Page 40: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 40

internetwork

A collection of multiple networks connected together, so messages can be transmitted between nodes on different networks.

Page 41: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 41

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

Page 42: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 42

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.

Page 43: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 43

Licklider and Taylor’s VisionAvailable 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

Page 44: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 44

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”)

Page 45: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 45

Charge 1

• Exam 2– Out today– Due Friday at 3:55PM– Turn in to folder outside my office

Page 46: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 46

Charge 2

• Course Evaluations– SEAS Survey: follow the email instructions– Course Specific survey

• Handed out today• Turn in to folder outside my office when you turn in

your exam

Page 47: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 47

Charge 3

Change the World!

Caveat: before worrying about changing the world, make sure you turn in your exam Friday!

Page 48: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

20 November 2003 CS 201J Fall 2003 48

Small, Simple Programs that Changed the World

VisiCalc (Dan Bricklin and Bob Frankston)

WorldWideWeb (Tim Berners-Lee)

Tetris (Alexey Pazhitnov)

Napster (Shawn Fanning

and Sean Parker)

eBay (P. Omidyar)

?(CS201J Student)

Altair BASIC (Bill Gates and Paul Allen)

Smalltalk(Adele Goldberg, Alan

Kay, Dan Ignalls)

Page 49: David Evans  CS201j: Engineering Software University of Virginia Computer Science Lecture 23: Everything Else You Should.

Lawn Lighting: Lawn Lighting: 7pm Thursday7pm Thursday

Never doubt that a small group of Never doubt that a small group of thoughtful, committed people canthoughtful, committed people can

change the world. change the world. Indeed, it is the only thing that ever has.Indeed, it is the only thing that ever has.

Margaret MeadMargaret Mead