Overview. Explores the theoretical foundations of computing What can and cannot be done by an...
-
Upload
garry-hawkins -
Category
Documents
-
view
213 -
download
0
Transcript of Overview. Explores the theoretical foundations of computing What can and cannot be done by an...
![Page 1: Overview. Explores the theoretical foundations of computing What can and cannot be done by an algorithm Most of the material predates computers!](https://reader035.fdocuments.us/reader035/viewer/2022070403/56649f295503460f94c41c9d/html5/thumbnails/1.jpg)
Overview
![Page 2: Overview. Explores the theoretical foundations of computing What can and cannot be done by an algorithm Most of the material predates computers!](https://reader035.fdocuments.us/reader035/viewer/2022070403/56649f295503460f94c41c9d/html5/thumbnails/2.jpg)
Explores the theoretical foundations of computing What can and cannot be done by an algorithm
Most of the material predates computers!
Has direct application in digital design, programming languages, and compilers
2CS 3240 - Introduction
![Page 3: Overview. Explores the theoretical foundations of computing What can and cannot be done by an algorithm Most of the material predates computers!](https://reader035.fdocuments.us/reader035/viewer/2022070403/56649f295503460f94c41c9d/html5/thumbnails/3.jpg)
Symbolic computation (numbers are just bit strings)
![Page 4: Overview. Explores the theoretical foundations of computing What can and cannot be done by an algorithm Most of the material predates computers!](https://reader035.fdocuments.us/reader035/viewer/2022070403/56649f295503460f94c41c9d/html5/thumbnails/4.jpg)
Turing Machine (1936-37) von Neumann architecture
▪ fetch/store in memory▪ led to creation of digital computers▪ machine language
Imperative programming paradigm▪ assembly, procedural, object-oriented (FORTRAN,
Pascal, C, C++, Java, C#, Python, Perl, PHP, Ruby, etc.)
Covered in this course
![Page 5: Overview. Explores the theoretical foundations of computing What can and cannot be done by an algorithm Most of the material predates computers!](https://reader035.fdocuments.us/reader035/viewer/2022070403/56649f295503460f94c41c9d/html5/thumbnails/5.jpg)
Lambda Calculus (1936) based on mathematical functions
▪ higher-level than imperative programming▪ no assignment statement!
Functional programming paradigm▪ Lisp, Scheme, ML, Haskell, Scala, Groovy, F#.NET▪ Features creeping into C++, C#, Java, Python,
Ruby, etc.
Covered in CS 4450
![Page 6: Overview. Explores the theoretical foundations of computing What can and cannot be done by an algorithm Most of the material predates computers!](https://reader035.fdocuments.us/reader035/viewer/2022070403/56649f295503460f94c41c9d/html5/thumbnails/6.jpg)
What is “computation”? “The processing of ‘data’ according to an
algorithm”Theory was fairly complete before
computers existedGuided the development of
computers and their use And still does…
![Page 7: Overview. Explores the theoretical foundations of computing What can and cannot be done by an algorithm Most of the material predates computers!](https://reader035.fdocuments.us/reader035/viewer/2022070403/56649f295503460f94c41c9d/html5/thumbnails/7.jpg)
Write a program that reads other programs and determines if they work correctly (e.g., halt without error) for all possible inputs
Write a general-purpose sorting algorithm (i.e., that only uses comparisons of its elements to determine order) that has a time complexity less than O(n log n)
Determine if a polynomial of arbitrary degree with integer coefficients has an integer root
Given two arbitrary language grammars, determine if they describe the same language
![Page 8: Overview. Explores the theoretical foundations of computing What can and cannot be done by an algorithm Most of the material predates computers!](https://reader035.fdocuments.us/reader035/viewer/2022070403/56649f295503460f94c41c9d/html5/thumbnails/8.jpg)
360 BC Eudoxus (Method of Exhaustion) 350 Aristotle (Deductive Logic) 300 Euclid (The Axiomatic Method) 250 AD Diophantine (Number Theory) 628 Brahmasphuta (Carry/borrow decimals) 830 al-Khowarizmi (The Algorithm) 1614 Napier (Logarithms) 1666 Leibniz (Symbology of calculus) 1671 Newton (Approximations/infinitesimals) 1815-1870 Fourier, Cauchy, Riemann (Formalization of Analysis) 1833-1842 Babbage (Difference Engine) 1852 Boole (Symbolic Logic- “Laws of Thought”) 1874 Cantor (Cardinality) 1884 Frege (Foundations of Arithmetic) 1889 Peano (Axioms of Arithmetic) 1900 Hilbert (Foundations of Geometry; 10 Problems) 1908 Zermelo-Fränkel Set Theory 1910 Russell & Whitehead (Prinicipia Mathematica – Type
Theory) 1931 Godel’s Incompleteness Theorem (Decidability) 1936 Church, Post, Kleene, Turing
![Page 9: Overview. Explores the theoretical foundations of computing What can and cannot be done by an algorithm Most of the material predates computers!](https://reader035.fdocuments.us/reader035/viewer/2022070403/56649f295503460f94c41c9d/html5/thumbnails/9.jpg)
“Formal” Languages Syntax only, not semantics
Finite Automata Simple machines (state machines),
regular languages Push-down Automata
Automata with memory Context-free languages
Turing Theory Universal abstract model for computation
![Page 10: Overview. Explores the theoretical foundations of computing What can and cannot be done by an algorithm Most of the material predates computers!](https://reader035.fdocuments.us/reader035/viewer/2022070403/56649f295503460f94c41c9d/html5/thumbnails/10.jpg)
Understand the concepts of Regular Languages and their relationship to finite state machines (automata)
Understand the concepts of Context-Free Languages and their relationship to pushdown automata
Understand the concepts of Computable Languages and their relationship to Turing machines
Apply all of the above in computer programs Understand the limits of automatic computation Ultimate outcome: to grok the “big picture” of
computation models
![Page 11: Overview. Explores the theoretical foundations of computing What can and cannot be done by an algorithm Most of the material predates computers!](https://reader035.fdocuments.us/reader035/viewer/2022070403/56649f295503460f94c41c9d/html5/thumbnails/11.jpg)
Visit chuckallison.com