I second the recommendation for The Nature of Computation; very well written with interesting problems.