Turing Machines, diagonalization, the halting problem ...