Download Computer Science - Fundamentals of Computer Science - Lecture Slides and more Slides Computer Fundamentals in PDF only on Docsity! What Is Computer Science? Docsity.com 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? Docsity.com 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? Docsity.com 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 Docsity.com 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 Docsity.com Brooks 1996 • CS ≠ science – not concerned with “discovery” • CS = engineering – concerned with “making”: • physical computers • S/W systems Docsity.com 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 Docsity.com What Is Computation? • function = – set of I/O pairs (relation) – same I/P ⇒ same O/P • “function machine”: Docsity.com 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 (?) Docsity.com 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 Docsity.com 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) Docsity.com