Formal languages, models of computation, decidability, reduction techniques, time and space complexity classes.