20
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]

Whatiscs.ppt version:20101117. What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department

Embed Size (px)

Citation preview

Page 1: Whatiscs.ppt version:20101117. What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department

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

Page 2: Whatiscs.ppt version:20101117. What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department

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?

Page 3: Whatiscs.ppt version:20101117. What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department

Why Ask?

• Intellectual / philosophical motivation:– What is CS “really”?– Is it like something else?

• math?

• electrical engineering?

– Is it “sui generis”

Page 4: Whatiscs.ppt version:20101117. What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department

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

Page 5: Whatiscs.ppt version:20101117. What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department

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?

Page 6: Whatiscs.ppt version:20101117. What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department

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

Page 7: Whatiscs.ppt version:20101117. What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department

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

Page 8: Whatiscs.ppt version:20101117. What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department

Hartmanis 1992

• CS = study of information– how to represent info– how to process info– & the machines that do this

Page 9: Whatiscs.ppt version:20101117. What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department

Shapiro 2001

• CS = natural science of procedures– including algorithms, …

• & recipes (specifications; vague)

• & non-halting (& interactive) procedures

• & heuristics (incorrect O/P)

Page 10: Whatiscs.ppt version:20101117. What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department

Brooks 1996

• CS ≠ science– not concerned with “discovery”

• CS = engineering– concerned with “making”:

• physical computers

• S/W systems

Page 11: Whatiscs.ppt version:20101117. What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department

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

Page 12: Whatiscs.ppt version:20101117. What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department

What Is Computation?

• function = – set of I/O pairs (relation)– same I/P same O/P

• “function machine”:

Page 13: Whatiscs.ppt version:20101117. What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department

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!

Page 14: Whatiscs.ppt version:20101117. What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department

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

Page 15: Whatiscs.ppt version:20101117. What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department

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 (?)

Page 16: Whatiscs.ppt version:20101117. What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department

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

Page 17: Whatiscs.ppt version:20101117. What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department

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)

Page 18: Whatiscs.ppt version:20101117. What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department

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

Page 19: Whatiscs.ppt version:20101117. What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department

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

Page 20: Whatiscs.ppt version:20101117. What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department

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