Learn with confidence with this hands-on undergraduate textbook for CS2 courses. Active-learning and real-world projects underpin each chapter, briefly reviewing programming fundamentals then progressing to core data structures and algorithms topics including recursion, lists, stacks, trees, graphs, sorting, and complexity analysis. Creative projects and applications put theoretical concepts into practice, helping students master the fundamentals. Dedicated project chapters supply further programming practice using real-world, interdisciplinary problems which students can showcase in their own online portfolios. Example Interview Questions sections prepare students for job applications. The pedagogy supports self-directed and skills-based learning with over 250 'Try It Yourself' boxes, many with solutions provided, and over 500 progressively challenging end-of-chapter questions. Written in a clear and engaging style, this textbook is a complete resource for teaching the fundamental skills that today's students need. Instructor resources are available online, including a test bank, solutions manual, and sample code.
Industry Reviews
'A stand-out feature of this book is its project-based approach, which bridges theoretical content with real-world applications. This method not only enhances students' understanding of data structures and algorithms, but also prepares them for technical roles through a variety of creative projects.' Bailin Deng, Cardiff University
'An intuitive and engaging introduction to foundational content; a terrific source for anyone looking to dive deeper into computer science!' Remzi Arpaci-Dusseau, University of Wisconsin, Madison
'Data Structures and Algorithms in Java is a must-read for aspiring programmers. The book bridges theory and practice seamlessly using real-world projects illustrating key concepts. The book covers a wide array of data structures from the simple stack to the more complex graph. The author's beginner-friendly approach makes it an excellent companion for self-learners and computer science students alike.' Lilian Blot, University of York
'Dr Myers carefully balances teaching students the Java they need after an introductory programming course with building more complex projects that students can use in their job portfolios. It covers the fundamental data structures and algorithms students need to know while immediately applying those ideas to longer-form projects in areas of student interest.' Brian Patterson, Oglethorpe University
'Here is an excellent book that skilfully brings students to serious programming by providing meaningful explanations, beautiful figures, and short but to-the-point code fragments. The exercises at the end of every chapter are very helpful. Fascinating projects every few chapters make even an experienced programmer want to try, such as particle effects, generative art, fractals, logic puzzles, and specialized search engines. I strongly urge Computer Science instructors to consider this book.' ?etin Kaya Ko?, University of California, Santa Barbara
'I have developed many techniques, tools, and examples to facilitate learning in my data structures classes. Dan Myers' textbook incorporates many similar strategies - it is conversational, establishes a foundation for new concepts and techniques then builds upon the foundation. It also incorporates numerous examples and problems, including historical references, making the material more interesting. This is a refreshing take on a potentially dry subject.' Dave Rosenberg, Wentworth Institute of Technology
'I wholeheartedly endorse Data Structures and Algorithms in Java. Its unique project-based approach effectively merges theory with practical application, making it an invaluable resource for undergraduate students. The book's emphasis on hands-on learning through Java programming projects elevates the understanding and deepens the knowledge of the applicability of data structures.' Tajmilur Rahman Md, Gannon University
'Professor Myers' project-based approach not only motivates students but also offers a practical framework for applying complex concepts effectively. The projects in this text provide context for decision-making and enhance understanding through practical applications. Each project builds a solid foundation fostering thoughtful engagement with challenging material.' Michael Penta, Northern Essex Community College
'The examples of projects offer a fun yet insightful way to boost students' creativity and enhance their problem-solving skills following the 'Try It Yourself' approach, ensuring the understanding of each concept.' Jeong Yang, Texas A&M University, San Antonio
'The project-based approach in the book highlights the real-world applications of topics presented, and facilitates greater understanding and clarity. The interview questions included underscore the importance of the concepts beyond the classroom. Several sections introduce new topics in simple terms along with relevant fun facts which draw the reader in and make the learning process an engaging one. Highly recommended!' Omofolakunmi Olagbemi, Hope College
'This book goes beyond the typical scope of a data structures and algorithms textbook. The carefully described projects are excellent examples of how to structure large programs.' Christian Trefftz, Grand Valley State University
'This book teaches data structures with an active learning approach. Students will first learn the constructs, then get hands-on experience by applying what they learned in real projects. In addition, the try-it-yourself sections are really helpful as simple brain teasers to ensure that students got the point. Students will be more engaged by learning this way.' Mohammed Farghally, Virginia Tech
'With beautifully accessible prose, Professor Myers opens the door wide to a field known for its formidable jargon and subtle technical detail. This text offers scaffolded, incremental learning as well as innovative and engaging projects, all well designed and supported by a wealth of diverse exercises. His rich, interdisciplinary contexts also demonstrate the centrality of algorithms in many human endeavors.' Trevor Kearns, Greenfield Community College