This book is intended for college students in computer science and related fields. I try to alleviate the boredom by organizing the topics around an application -- web search -- that uses data structures extensively.
and is an interesting and important topic in its own right. This book also presents basic aspects of software engineering practice, including version control and unit testing. Each chapter ends with an exercise that allows readers to apply what they have learned.