Thinking Mathematically [with Cdrom] by Robert Blitzer