Theory of Computation Final Project