This unique textbook text balances theorems of mathematics against the feasibility of computation, with a firm grounding in the algorithmic foundations