Regular languages and finite automata
Context free languages and Push-down automata
Recursively enumerable sets and Turing machines
Undecidability