  We survey both old and new developments in the theory of algorithms in real
algebraic geometry -- starting from effective quantifier elimination in the
first order theory of reals due to Tarski and Seidenberg, to more recent
algorithms for computing topological invariants of semi-algebraic sets. We
emphasize throughout the complexity aspects of these algorithms and also
discuss the computational hardness of the underlying problems. We also describe
some recent results linking the computational hardness of decision problems in
the first order theory of the reals, with that of computing certain topological
invariants of semi-algebraic sets. Even though we mostly concentrate on exact
algorithms, we also discuss some numerical approaches involving semi-definite
programming that have gained popularity in recent times.
