Upload
cameron-freeman
View
221
Download
4
Tags:
Embed Size (px)
Citation preview
What Is Computer Science?
William J. Rapaport
Department of Computer Science & Engineering,Department of Philosophy, Department of Linguistics,
and Center for Cognitive Science
[email protected]://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 1967Newell & 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) (where dir = L, R)
– print(sym) (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:3. any basic instruction
4. 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?
• CS tries to answer these questions:1. What is computation?
• More generally, what is a procedure?
2. Which functions are (or are not) …• computable?• efficiently computable?
– theoretical CS
3. How can they be computed?1. what specific algorithms do the job?2. what machines are needed?
1. other branches of CS