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