What Is Computer Science William J Rapaport Department

  • Slides: 20
Download presentation
What Is Computer Science? William J. Rapaport Department of Computer Science & Engineering, Department

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?

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

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

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

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 =

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

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 –

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, … •

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 =

Brooks 1996 • CS ≠ science – not concerned with “discovery” • CS = engineering – concerned with “making”: • physical computers • S/W systems

Denning 2010 • “Computing is a 4 th great domain of science alongside the

Denning 2010 • “Computing is a 4 th 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

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

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

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 •

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

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

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 –

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

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

So, what is CS? • 1. CS tries to answer these questions: What is computation? 1. 2. More generally, what is a procedure? Which functions are (or are not) … 1. 2. computable? efficiently computable? – 3. theoretical CS How can they be computed? • • what specific algorithms do the job? what machines are needed? 1. other branches of CS