. . Part 1. The computing perspective 1. Technology, science and change 2. Overview of algorithms Part 2. The algorithm toolkit 3. Basic data, operations and decisions 4. Tools for procedural abstraction 5. Tools for data abstraction 6. Algorithmic methods 7. Tools for estimating cost & complexity 8. Tools for verifying correctness 9. Tools for behavioural abstraction Part 3. The limits of computing 10. Concurrency & parallelism 11. Hierarchies of complexity Part 4 (Appendix). Pseudocode examples