CS 4124: Theory of Computation