CS451: Automata Theory, Languages & Computation