The algorithmic problems of real algebraic geometry such as real root counting, deciding the existence of solutions of systems of polynomial equations and inequalities, finding global maxima or deciding whether two points belong in the same connected component of a semi-algebraic set appear frequently in many areas of science and engineering. In this textbook the main ideas and techniques presented form a coherent and rich body of knowledge. Mathematicians will find relevant information about the algorithmic aspects. Researchers in computer science and engineering will find the required mathematical background. Being self-contained the book is accessible to graduate students and even, for invaluable parts of it, to undergraduate students. This second edition contains several recent results, on discriminants of symmetric matrices, real root isolation, global optimization, quantitative results on semi-algebraic sets and the first single exponential algorithm computing their first Betti number.