What Can Be Computed?: A Practical Guide to the Theory of Computation by John Ma This textbook is the one I kept after the course ended for reference.