If you're a student studying computer science or a software developer preparing for technical interviews this practical book will help you learn & review some of the most important ideas in software engineering-data structures & algorithms-in a way that's clearer more concise & more engaging than other materials By emphasizing practical knowledge & skills over theory author Allen Downey shows you how to use data structures to implement efficient algorithms & then analyze & measure their performance You'll explore the important classes in the Java collections framework (JCF) how they're implemented & how they're expected to perform Each chapter presents hands-on exercises supported by test code online Use data structures such as lists & maps & understand how they work Build an application that reads Wikipedia pages parses the contents & navigates the resulting data tree Analyze code to predict how fast it will run & how much memory it will require Write classes that implement the Map interface using a hash table & binary search tree Build a simple web search engine with a crawler an indexer that stores web page contents & a retriever that returns user query results Other books by Allen Downey include Think Java Think Python Think Stats & Think Bayes