280 likes | 361 Views
Computer Science Backbone of the Liberal Arts. Where is the Science in Computer Science. Science?. A natural science? Experimentation? Empirical Approach? Labs?. Oxford Dictionary Definition .
E N D
Computer ScienceBackbone of the Liberal Arts Where is the Science in Computer Science
Science? • A natural science? • Experimentation? • Empirical Approach? • Labs?
Oxford Dictionary Definition Sometimes the term science is used to denote a department of practical work which depends on the knowledge and conscious application of principles; an art, on the other hand being understood to require merely knowledge of traditional rules and skill acquired by habit.
What is Computer Science? • Don Knuth: an algorithmic approach to problem solving • “Algorithms encompass the whole range of concepts dealing with well-defined processes, including the structure of data that is being acted upon as well as the structure of the sequence of operations being performed.”
What is a Liberal Arts Education? • Not about facts, but relationships • Not about squelching curiosity, but fostering it • About learning to learn • About analytic thinking • About making choices that lead to an enjoyment and appreciation of life • About ideas and their representation
The Seven Liberal Arts • The Trivium: grammar, rhetoric, logic (traced to 5th century) • The Quadrivium: arithmetic, music, geometry, and astronomy (Interpretation of the universe, begun by Greeks)
A Bit of History • Euclid: set the tone for trying to describe the world. (modeling) • “The Elements:” a best seller for centuries • Erastosthenes: algorithm for finding primes 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 • How many primes? Twin primes? Prime forms? (contributions to other disciplines)
Mersenne numbers: 2p – 1 1952 Computers found that these are prime for p = 521, 607, 1279, 2203, and 2281. K Largest Mersenne prime found is 2206091 – 1. 14 pages to exhibit at 75 characters per line and 60 lines per page.
So What? • Significance of Notation • Expressiveness for ideas • 0 Mayas and Arabs about the same time • = 1577 Robert Recorde • Leibnitz dream: general method in which all truths of reason would be reduced to a kind of calculation: “All I have contributed is notation.”
Logic for Analytical Thinking • George Boole: algebraic basis for logic • Augustus DeMorgan • David Hilbert: Formalize all of mathematics as an axiomatic system in which theorems would be proved purely by symbol manipulation (automated process)
20th Century CS Ideas • Bertrand Russell: Principia Mathematica: small number of axioms, 3 volumes • Alan Turing set out to achieve Hilbert’s goal by designing a theoretic machine for determining whether a given statement is true or false. • Concluded that decidability is out of the question
Greatest single piece of work in the whole history of mathematical logic • Kurt Godel: proof that Hilbert’s proposal was impossible. Any formal system that included arithmetic was either incomplete or inconsistent. • Proof took 128 pages (1929) • Current CS concepts can do this in one page.
Special Challenges • Represent infinite ideas with finitely many symbols: real numbers, integers • Clever ways to carry out fast computations: space travel • Providing models for testing without danger: computer surgery, generations of drug trials
Classification of Problems • Solvable Tractable Intractable • Unsolvable • P = NP?
Curriculum: What it’s not • How to use software packages: They’re out of date quickly. Students teach faculty how to use them. • Programming Languages: Clever ways to use bizarre syntax
Curriculum: What it is • Criteria for designing good software • Criteria for choosing good ways to implement designs • Methods for checking efficiency • Methods and tools for representing abstraction advantageously
More Curriculum • Aritificial Intelligence: biological, psychological, philosophical • Ethical Considerations: What can we do? Should we do it?
Example: iteration • Function Fibonacci(n: integer): integer If(n=1 or n=2) then Fibonacci := 1; else oldfib1 := 1; oldfib2 := 1; For I = 3 to n do begin Fibonacci := oldfi1 + oldfib2; oldfib1 := oldfib2; oldfib 2 := Fibonacci; end;
Example recursion • [Recursive] function fib(n: integer): integer begin if (n = 0 or n = 1) then fib := 1; else fib = fib(n-1) + fib(n-2); end;
Efficiency Analysis • Iteration: linear (loop is repeated n times where n is the number whose fibonacci value is required • Recursion: 2n (lifetime of the universe for large n). T(n) = c+T(n-1) + T(n-2) • For n = 10, 2n = 1024 • For n = 1000 …
Edsger Dijkstra Computers are extremely flexible and powerful tools, and many feel that their application is changing the face of the earth. I would venture the opinion that as long as we regard them primarily as tools, we might grossly underestimate their significance. Their influence as tools might turn out to be but a ripple on the surface of our culture, whereas I expect them to have a much more profound influence in their capacity of intellectual challenge.
The Scaling up Challenge Given a large problem to solve: • Split it into smaller problems • Solve each small problem efficiently • Compose the small solutions to address the large problem
Top Down Design for a Poem • Long enough for critics, short enough for public • Repetition of interesting sound • Said by some animal: not a pig, not a dog, not a cow, how about a bird? A black bird? • Subject poignant and serious: death • Who? Lovely young woman
Contributions to Life • Environment (modeling processes) • Storing and retrieving data (the web – every aspect of civilization) • Health (drug testing, record keeping) • Education (on-line resources) • Communication (instant) • Government (voting)
Church’s Thesis : The Intuitive Notion of Computability • Algorithms • Grammars • Turing Machines • Primitive Recursive Functions • Finitely Aximatizable Theories • Computable Functions
Summary: What is CS? A branch of mathematics that addresses : • What problems are solvable? • How can we express them precisely? • Which problems are tractable? • How can we reason about our solutions? • Do we do our computing the way we do because our methods are sound or because of technical limitations?
The CS Hope • Grant me the courage to solve the problems I can. • Grant me the insight to recognize those I cannot. • Grant me the capability to know the difference.
The Happy CS Major • Philosophers approach each day with uncertainty, hesitancy, and the pessimistic assumption that pondering life’s great mysteries may lead us nowhere. • Computer Scientists approach each day with optimism, enthusiasm, and a sense of anticipation for what problems will be posed and solved.