This document discusses time complexity classes for deterministic and non-deterministic Turing machines. It begins by defining the class DTIME(f(n)) as the problems decidable by a deterministic Turing machine in time f(n). Examples of problems in lower classes like DTIME(n) and DTIME(n^2) are given. Polynomial time algorithms are classified as tractable and fall within the class P. The document then discusses intractable problems that require exponential time, like the Hamiltonian path and clique problems. It introduces the SAT problem and shows it requires exponential time. Non-determinism is then covered, defining the class NTIME(f(n)) and showing the SAT problem can be solved in non