Presentation is loading. Please wait.

Presentation is loading. Please wait.

Overview.  Explores the theoretical foundations of computing  What can and cannot be done by an algorithm  Most of the material predates computers!

Similar presentations


Presentation on theme: "Overview.  Explores the theoretical foundations of computing  What can and cannot be done by an algorithm  Most of the material predates computers!"— Presentation transcript:

1 Overview

2  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 2 CS 3240 - Introduction

3 Symbolic computation (numbers are just bit strings)

4  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

5  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

6  What is “computation”?  “The processing of ‘data’ according to an algorithm”  Theory was fairly complete before computers existed  Guided the development of computers and their use  And still does…

7  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

8  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

9  “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

10  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

11 Visit chuckallison.com


Download ppt "Overview.  Explores the theoretical foundations of computing  What can and cannot be done by an algorithm  Most of the material predates computers!"

Similar presentations


Ads by Google