Stanford's Automata Theory Programming Assignments