Course notes for Computability and Complexity