While many computer books designed for college-level courses are largely confined to programming code and languages, Algorithms and Data Structures: The Science of Computing takes a step back to introduce and explore algorithms, the content of the code. 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 modeling and analysis), and the scientific method (experimental confirmation of theoretical results). A solid understanding of these methods of inquiry helps students see that computer science is about problem solving, and is not simply the memorization and recitation of languages. Also, unlike most computer science texts, which typically cover this material separately, this book teaches them in an integrated manner so students can see explicitly how they interact. The book focuses heavily on recursion as the main control structure in algorithm design, and abstraction through object-oriented programming. A dedicated Web site with online lab exercises and tutorials is available to provide students with hands-on experience.