Lecture 1: Introduction David Evans CS200: Computer Science University of Virginia

advertisement
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
Download