Primarily a text about understanding and thinking about computer science as well as working in it, the book focuses on three core topics: design, (the architecture of algorithms) theory (mathematical modelling and analysis) and the scientific method (experimental confirmation of theoretical results).