1 / 49

David Evans http://www.cs.virginia.edu/evans

Lecture 23: Everything Else You Should Know (but won’t see on Exam 2). David Evans http://www.cs.virginia.edu/evans. CS201j: Engineering Software University of Virginia Computer Science. Menu. Course Evaluations 101 Things Every Computer Scientist should know Course Charge.

thina
Download Presentation

David Evans http://www.cs.virginia.edu/evans

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Menu • Course Evaluations • 101 Things Every Computer Scientist should know • Course Charge CS 201J Fall 2003

  3. Course Pledge You Signed I 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. 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 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? CS 201J Fall 2003

  6. 0. What is Computer Science? 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) 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 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) 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 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 CS 201J Fall 2003

  12. 1. What problem did the first electronic programmable computer solve? 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 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 CS 201J Fall 2003

  15. Why perfectly secure? For any given ciphertext, all plaintexts are equally possible. Ciphertext: 0100111110101 Key: 1100000100110 Plaintext: 1000111010011 = “CS” 1 B 0 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 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 CS 201J Fall 2003

  18. 2. What are the world’s most complex programs? 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? CS 201J Fall 2003

  20. Human Genome Produces 60 Trillion Cells (6 * 1013) 50 Million die every second! CS 201J Fall 2003

  21. DNA G • 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 C A T 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 CS 201J Fall 2003

  23. Central Dogma of Biology(Crick, 1957) • DNA makes RNA • RNA makes proteins • Proteins make us Translation Transcription Protein RNA DNA Image from http://www.umich.edu/~protein/ 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.cfm KO Stetter and Dr Rachel Reinhard 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 CD = 650 MB Wal-Mart’s database is 280 Terabytes 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 CS 201J Fall 2003

  27. 3. How do Computer Scientists manage complexity? CS 201J Fall 2003

  28. Abstraction Adapted from Gerard Holzmann’s FSE Slides 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 (?) CS 201J Fall 2003

  30. 4. What is and is not computable? CS 201J Fall 2003

  31. 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? CS 201J Fall 2003

  32. 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! CS 201J Fall 2003

  33. Learned Discussion on Computability(Video)

  34. 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? CS 201J Fall 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 CS 201J Fall 2003

  36. 5. Who Invented the Internet? skip CS 201J Fall 2003

  37. What is a Network? A group of three or more connected entities communicating indirectly Ancient Greeks had beacon chain networks on Greek island mountaintops CS 201J Fall 2003

  38. Chappe’s Semaphore Network First Line (Paris to Lille), 1794 Mobile Semaphore TelegraphUsed in the Crimean War 1853-1856 CS 201J Fall 2003

  39. internetwork A collection of multiple networks connected together, so messages can be transmitted between nodes on different networks. CS 201J Fall 2003

  40. 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 CS 201J Fall 2003

  41. 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. CS 201J Fall 2003

  42. 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 CS 201J Fall 2003

  43. 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”) CS 201J Fall 2003

  44. Charge 1 • Exam 2 • Out today • Due Friday at 3:55PM • Turn in to folder outside my office CS 201J Fall 2003

  45. 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 CS 201J Fall 2003

  46. Charge 3 Change the World! Caveat: before worrying about changing the world, make sure you turn in your exam Friday! CS 201J Fall 2003

  47. Small, Simple Programs that Changed the World eBay (P. Omidyar) WorldWideWeb (Tim Berners-Lee) VisiCalc (Dan Bricklin and Bob Frankston) Smalltalk (Adele Goldberg, Alan Kay, Dan Ignalls) ? Altair BASIC (Bill Gates and Paul Allen) Napster (Shawn Fanning and Sean Parker) Tetris (Alexey Pazhitnov) (CS201J Student) CS 201J Fall 2003

  48. Lawn Lighting: 7pm Thursday Never doubt that a small group of thoughtful, committed people can change the world. Indeed, it is the only thing that ever has. Margaret Mead

More Related