CS355: Theory of Computation & CS370: Computation and Complexity & CS310: Programme Languages and Compilers