CSC 311 - Theory of Automata