Computability theory grew from attempts to understand the algorithmic content of mathematics. Two strands of this enterprise have been computable analysis, seeking to understand computable processes in classical analysis and analytic structures, and computable algebra which has studied computable processes on groups, rings, fields and the like. Historically the latter studied computably coded countable structures and the former uncountable structures, but which had countable descriptions such as Cauchy sequences. While these areas developed more or less independently, underlying ideas in both areas seem similar. In this book we will give a combined treatment of both kinds of structures showing how ideas can be transferred. In particular, we will also give a detailed and modern treatment of the basic ideas of computable separable structures, studying the key role of effective compactness. We develop from scratch the main lines of investigation into computable mathematics, with topics such as presentability, categoricity, and the like in algebraic structures like orderings, groups, rings and fields, and computable separable metric spaces. We also investigate specialized topics including computable Banach spaces, Pontryagin duality, algorithmic randomness applied to random trigonometric series, and ergodic theory.
For all of these the underlying concepts such as priority arguments, $\Pi_1^0$ classes, ordinal notations, etc will be developed in the context of applications, making this a complete guide for a graduate student in logic or related areas, interested in the algorithmic content of mathematics.