I haven't taken these courses yet but Automata Theory is in my todo list. These are offered through Stanford Lagunita (Stanford's implementation of openedX)
* Compilers: https://lagunita.stanford.edu/courses/Engineering/Compilers/...
* Automata Theory: https://lagunita.stanford.edu/courses/course-v1:ComputerScie...