Introduction to Programming with Java: A Problem Solving Approach teaches the reader how to write programs using Java. It does so with a unique approach that combines fundamentals first with objects early. The book transitions smoothly through a carefully selected set of procedural programming fundamentals to object-oriented fundamentals. During this early transition and beyond, the book emphasizes problem solving. For example, Chapter 2 is devoted to algorithm development, Chapter 8 is devoted to program design, and problem-solving sections appear throughout the book. The third edition introduces several new Java language features, most of the end-of-chapter GUI sections and the final GUI chapters use JavaFX, and almost all end-of-chapter exercises are new.