Mathematical Thinking by John D'Angelo