What Is Computation? - University at Buffalo, Computer Science and

advertisement
What Is Computer Science?
William J. Rapaport
Department of Computer Science & Engineering,
Department of Philosophy, Department of Linguistics,
and Center for Cognitive Science
rapaport@buffalo.edu
http://www.cse.buffalo.edu/~rapaport
Why Ask?
• Academic / political purposes:
– Should UB’s CSE be in CAS? SEAS? SOI? SCS?
– Pedagogy: What should we teach in Intro CS?
• programming?
• theory?
•?
– Do CS’ists merely program?
– Publicity for prospective students?
Why Ask?
• Intellectual / philosophical motivation:
– What is CS “really”?
– Is it like something else?
• math?
• electrical engineering?
– Is it “sui generis”
Is CS “sui generis”?
• “Computer science has such intimate relations
with so many other subjects
that it is hard to see it as a thing in itself.”
– Marvin Minsky
• “Computer science differs from the known sciences
so deeply that it has to be viewed as a new species
among the sciences.”
– Juris Hartmanis
Fundamental Principle of
“What Is” Questions
• There are no sharp boundaries in nature
– only continua & spectra
• We “carve nature at joints” (Plato)
of our own devising (Kant)
• There may be no good answer beyond:
– “CS is what CS’ists do!”
– But: What do they do?
Newell, Perlis, & Simon 1967
Newell & Simon 1976
Simon 1969/1996
• CS = the science of computers
– not a “natural science”, but:
• a “science of the artificial”
– “computers” includes:
• hardware, algorithms, etc.
• So:
– CS = the artificial science & engineering of computers
… & surrounding phenomena
Knuth 1974
• CS = the “study” of algorithms
– Algorithms ≈ what you can teach a computer
– Which functions (I-O) can be efficiently computed?
– Need a computer to find out!
• So:
– CS = study of algorithms
… & surrounding phenomena
Hartmanis 1992
• CS = study of information
– how to represent info
– how to process info
– & the machines that do this
Shapiro 2001
• CS = natural science of procedures
– including algorithms, …
• & recipes (specifications; vague)
• & non-halting (& interactive) procedures
• & heuristics (incorrect O/P)
Brooks 1996
• CS ≠ science
– not concerned with “discovery”
• CS = engineering
– concerned with “making”:
• physical computers
• S/W systems
Denning 2010
• “Computing is a 4th great domain of science alongside
the physical, life, and social sciences.”
• CS =
– discovery (science)
– & implementation (engineering)
– of information processes
What Is Computation?
• function =
– set of I/O pairs (relation)
– same I/P  same O/P
• “function machine”:
What Is Computation?: Functions
• But: “function machine” ≠ function!
– functions don’t “do” anything
– function machine needs “gears”
• i.e.) algorithm!
• but not all functions are algorithmic (computable)!
– function machine = …
• computer!
Computable Functions
• A function is computable ≈
– there is an algorithm that computes it
– i.e.) that specifies how …
• I/P can be transformed into O/P
Algorithm
• Algorithm for problem P ≈
– finite procedure for solving P
• finite # instructions
• completable in finite time (?)
• completable in finite # steps (?)
– instructions unambiguous for executor
• know how to do each instruction
• know what to do next
– must halt (?)
– O/P must be correct (?)
4 Great Insights of CS
1. Bacon/Leibniz/Boole/Turing/Shannon/Morse:
• All information
about any computable problem
can be represented
using only 2 nouns:
0, 1
4 Great Insights of CS
2. Turing’s Insight:
– Every algorithm can be expressed in a language
for a Turing machine:
• arbitrarily long tape divided into squares
• read / write head
• only 2 verbs (= basic instructions):
– move(dir)
– print(sym)
(where dir = L, R)
(where sym = 0, 1, nil)
4 Great Insights of CS
3. Boehm & Jacopini’s insight:
– structured programming
– only need 3 grammar rules:
• sequence (first do this; then do that)
• selection (if P, then do this else do that)
• repetition (while P do this)
– recursively, “this” & “that” can be:
• any basic instruction
• any complex instruction created by grammar rules
– optional:
• exit
• named procedures
• recursion
4 Great Insights of CS
4. Church-Turing Thesis:
– An algorithm isdef
anything equivalent to a Turing-machine program
– TM = Post production system = lambda calculus
= Markov algorithm = recursive functions
= register machines, etc.
– There are non-computable functions
•
e.g.) Halting Problem
So, what is CS?
•
1.
CS tries to answer these questions:
What is computation?
•
More generally, what is a procedure?
Which functions are (or are not) …
2.
•
•
computable?
efficiently computable?
–
3.
theoretical CS
How can they be computed?
•
•
what specific algorithms do the job?
what machines are needed?
–
other branches of CS
Download