For a first course in proof for Mathematics or Computer Science majors. Besides giving students the techniques for solving polynomial equations and congruences, An Introduction to Mathematical Thinking provides preparation for more advanced courses in Linear and Modern Algebra, as well as Calculus. This text introduces the mathematics and computer science student to proofs and mathematical thinking while teaching basic algebraic skills involving number systems, including the integers and complex numbers. Ample questions at the end of each chapter provide opportunities for learning and practice; the Exercises are routine applications of the material in the chapter, while the Problems require more ingenuity, ranging from easy to nearly impossible. This extensive pedagogy offers extreme flexibility to instructors for class and homework assignments.