This text teaches the use of direct source code implementations and the use of the Java libraries it helps students prepare for later work on larger Java software solutions by adhering to software engineering principles and techniques such as the UML and the Java Collections Framework (JCF). Using the spiral approach to cover such topics as linked structures, recursion, and algorithm analysis, this text also provides revealing illustrations, summaries, review questions, and specialized reference sections.