Computer Science
For this course only the syllabus is available.
Syllabus
- Basic sorting, selection, and graph algorithms; dynamic programming.
- Abstract models of computation: Turing machines, examples, and the Church thesis.
- One-tape and two-tape Turing machines for recognizing palindromes.
- The definition and existence of a universal Turing machine.
- Simulation of multi-tape Turing machines by one-tape Turing machines.
- Recursive and recursively enumerable languages; basic closure properties.
- Non-recursive and non-recursively enumerable languages; the halting problem.
- Time complexity classes and the class P.
- Arthur–Merlin games, the class NP, co-NP, and examples of languages in NP.
- The PRIM language, polynomial-time reductions, and NP-completeness.
- Boolean formulae and the SAT language.
- Cook's theorem: SAT is NP-complete; further examples of NP-complete languages.