Introduction to Theory of Computation (2020)
The intent of the Introduction to Theory of Computation Knowledge Unit is to provide students with the basic knowledge of finite automata and their application to computation.
To complete this KU, students should be able to:
- Describe the theory of abstract machines or automata and what can be computed with them.
- Differentiate the characteristics of computable and non-computable functions.
- Describe the concept of complexity and quantify the resources required for computation of basic problems.
- Turing machines
- Deterministic and non-deterministic finite automata
- Formal language theory
- Computability and non-computability
- Turing computability
- Analysis of Algorithms
- Complexity measures
- time and storage
- numbers of processors
- Big O notation
- Best, worst, and average complexity
- Upper and lower bounds on complexity
- Classes of Complexity
- P and NP
Related Knowledge Units
Suggested academic readings
Sample knowledge test
Sample skills test
Sample abilities test
Additional notes or materials