This textbook employs a fundamentals-first approach, introducing basic programming concepts and techniques before delving into object-oriented programming. It emphasizes problem-driven teaching, focusing on problem-solving rather than syntax. The book integrates programming, data structures, and algorithms into a cohesive text, providing a practical approach to teaching data structures and their implementation. The comprehensive version contains all 43 chapters, covering topics such as threads, networking, internationalization, advanced GUI, database, web programming, and streams.