Leonid A. Levin. Fundamentals of Computing.
A printable pdf version.
(22 pages. Also on arxiv.org.)
Beamer pdf slides (about a hundred).
And an HTML version.
These are notes for a Theory of Computation course. The goal is to introduce
students to basic concepts of Theory of Computation and to provoke their
interest in further study. Model-dependent effects are systematically ignored.
Concrete computational problems are considered only as illustrations of
general principles. The notes can be used by an instructor designing a
course or by students who either know the material and want to refresh
the memory or are exceptionally bright and have access to an instructor
for questions. Each subsection takes about a week of the course.
Contents
- Basics
- Deterministic Models;
Polynomial Time & Church's Thesis
- Rigid Models
- Pointer Machines
- Simulation
- Universal Algorithm; Diagonal Results
- Universal Turing Machine
- Uncomputability; Goedel Theorem
-
Intractability; Compression and Speed-up Theorems
-
Games; Alternation; Exhaustive Search; Time vs. Space
- How to Win
- Exponentially Hard Games
- Reductions; Non-Deterministic
and Alternating TM; Time and Space
- Mysteries
- Nondeterminism;
Inverting Functions; Reductions
- An Example of a Narrow Computation:
Inverting a Function
- Complexity of NP Problems
- An NP-Complete Problem: Tiling
- Probability in Computing
- A Monte-Carlo Primality Tester
- Randomized Algorithms and Random Inputs
- Arithmetization: One-Player Games with
Randomized Transition
- Randomness
- Randomness and Complexity
- Pseudo-randomness
- Cryptography
- End Matter
- Go On!
- Writing Contributions
- References