Lecture 1: Introduction CS200: Computer Science University of Virginia Computer Science David Evans http://www.cs.virginia.edu/~evans Menu • • • • • What Is Computer Science? Why Computer Science is Not Engineering First Main Theme: Recursive Definitions Course Mechanics Pictures 16 January 2002 CS 200 Spring 2002 2 What is Computer Science? 16 January 2002 CS 200 Spring 2002 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. But, if CD does not measure AB, then, when the less of the numbers AB and CD being continually subtracted from the greater, some number is left which measures the one before it. Euclid’s Elements, Book VII, Proposition 2 (300BC) 16 January 2002 CS 200 Spring 2002 4 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, and which should be also susceptible of adaptations to the action of the operating notation and mechanism of the engine... 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, Countess of Lovelace, around 1830 16 January 2002 CS 200 Spring 2002 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) 16 January 2002 CS 200 Spring 2002 6 Geometry vs. Computer Science • Geometry (mathematics) is about declarative knowledge: “what is” If now CD measures AB, since it also measures itself, then CD is a common measure of CD and AB • Computer Science is about imperative knowledge: “how to” Computer Science has nothing to do with beige (or translucent blue) boxes called “computers” and is not a science. 16 January 2002 CS 200 Spring 2002 7 Computer Science “How to” knowledge: • Ways of describing imperative processes (computations) Language • Ways of reasoning about (predicting) what imperative processes will do Logic 16 January 2002 CS 200 Spring 2002 8 Science, Engineering, Other? 16 January 2002 CS 200 Spring 2002 9 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 16 January 2002 CS 200 Spring 2002 10 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 16 January 2002 CS 200 Spring 2002 11 Apollo Guidance Computer, 1969 1 Cubic Foot 16 January 2002 Why did they need to fit the guidance computer in the rocket? CS 200 Spring 2002 12 Measuring Computers • 1 bit = smallest unit of information – True or False – 0 or 1 – If we start with 2 possible choices, and get 1 bit, we can eliminate one of the choices 16 January 2002 CS 200 Spring 2002 13 How much power? • Apollo Guidance Computer: 30 720 bits of changeable memory (stored in magnetic core) • Lab machines have 386 MB (RAM) – – – – 1 Byte = 8 bits 1 Kilobyte = 1024 Bytes 1 Megabyte = 1024 Kilobytes 386 MB = 3 238 002 688 bits > (* 386 1024 1024 8) 3238002688 • You have 105 404 times more power than Apollo > (round (/ (* 386 1024 1024 8) 30720)) 105404 If Apollo Guidance Computer power is 1 in, you have 1.6 miles! 16 January 2002 CS 200 Spring 2002 14 Computing Power 1969-2002 (in Apollo Control Computer Units) 4500000 4000000 Moore’s Law: computing power doubles every 18 months! 3500000 3000000 2500000 2000000 1500000 1000000 500000 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 4 Million times what people had in 1969 isn’t enough for you, wait until 2006 and you will have 32 Million times… • More like those for Musicians and Poets: – Imagination and Creativity – Complexity of what we can understand 16 January 2002 CS 200 Spring 2002 16 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 • Liberal Art 16 January 2002 CS 200 Spring 2002 17 The Liberal Arts Trivium (3 roads) Grammar Rhetoric Quadrivium (4 roads) Logic Arithmetic Music Geometry 16 January 2002 CS 200 Spring 2002 Astronomy 18 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 (PS 6) • Geometry: quantification of space Yes (PS 1, 2, 3) • Music: number in time Yes, its called GEB • Astronomy: laws of the planets and for a reason! stars No, but astronomy uses CS a lot. 16 January 2002 CS 200 Spring 2002 See corrected version in 19 Lecture 13! Bold (Possibly Untrue) Claim This course is the most consistent with the original intent of a Liberal Arts education of any course offered at UVA this semester! 16 January 2002 CS 200 Spring 2002 20 First Main Theme 16 January 2002 CS 200 Spring 2002 21 Question What is the longest word in the English language? 16 January 2002 CS 200 Spring 2002 22 Longest word? floccipoccinihilipilification the act of rendering useless 16 January 2002 CS 200 Spring 2002 23 Making Longer Words antifloccipoccinihilipilification the act of not rendering useless antifloccipoccinihilipilificationator one who does the act of not rendering useless 16 January 2002 CS 200 Spring 2002 24 Language is Recursive No matter what word you think is the longest word, I can always make up a longer one! word ::= anti-word If you have a word, you can always make up a new word by adding anti in front. Since the result is a word, you can make a longer new word by adding anti- in front again. 16 January 2002 CS 200 Spring 2002 25 Recursive Definitions • We can define things in terms of themselves • Recursive definitions are different from circular definitions: they eventually end with something real word ::= anti-word word ::= floccipoccinihilipilification 16 January 2002 CS 200 Spring 2002 26 Recursive Definitions Allow us to express infinitely many things starting with a few. This is powerful! We will see lots of examples in this course. 16 January 2002 CS 200 Spring 2002 27 Course Philosophy and Mechanics 16 January 2002 CS 200 Spring 2002 28 Staff • Coach: David Evans – Joined UVA in Nov 1999 – Call me “Dave” or “Coach” – Research areas: security, programming swarms • Assistant Coaches – – – – Aaron (“Spiff”) Crickenberger Jon Erdman Dante Guanlao Stephen Liang 16 January 2002 CS 200 Spring 2002 29 CS200 • Experiment – Need to prove that CLAS students can do real Computer Science • First time offered – I will probably make lots of mistakes – But…you get to take it in a small class 16 January 2002 CS 200 Spring 2002 30 Like Drinking from a Firehose It may hurt a little bit, and a lot of water will go by you, but you won’t go away thirsty! 16 January 2002 CS 200 Spring 2002 31 Persistence • Don’t expect to understand everything the first (or second or third) time you see it • Don’t worry if you don’t always understand everything completely • But, make sure to understand the most important things well – Notes and Problem Sets should make it clear what this is – You will learn most from doing the Problem Sets 16 January 2002 CS 200 Spring 2002 32 Help Available • Me – Office Hours: Wednesdays 2:30-3:30pm – Always available by email, if I don’t reply in 24 hours, send again and complain – Lunch • TAs – Will post staffed lab hours • Web site: http://www.cs.virginia.edu/cs200 – Everything goes on the web • But mainly: your classmates 16 January 2002 CS 200 Spring 2002 33 Honor Code • Classroom Pledge is Horrible! • The whole point of being at a University is so you can: – Learn from your classmates – Learn better by teaching your classmates • Sign and return the CS200 Pledge on Friday 16 January 2002 CS 200 Spring 2002 34 Charge • Before 5pm Thursday: – Email registration survey – Need these to assign PS1 teams • Before Friday: – Read and sign CS 200 Pledge – Read GEB p. 3-41 • Try to produce “MU”, anyone who does gets an automatic A+ in the course • Don’t floccipoccinihilipilificate Remember to take pictures! 16 January 2002 CS 200 Spring 2002 35