Core Version
Comprehensive Version
Introduction to Java Programming
Sixth Edition
Y. Daniel Liang

Fundamentals First

This book adopts the fundamentals-first and objects-late strategy, proceeding at a steady pace through all the necessary and important basic concepts, then moving to object-oriented programming, and then to the use of the object-oriented approach to build interesting GUI applications and applets with exception handling, and advanced features.

Why Fundamentals First?

Learning basic logic and fundamental programming techniques like loops and step-wise refinement is essential for new programmers to succeed. Students who cannot write code in procedural programming are not able to learn object-oriented programming. A good introduction on primitive data types, control statements, methods, and arrays prepares students to learn object-oriented programming.

Object-Early Failed?

At every SIGCSE (Computer Science Education) conference prior to 2005, the object-early approach was trumpeted and the voice for the fundamentals-first approach was muted. This has been changed when some former proponents of object-early began to air their frustrations and declared that object-early failed. This book is fundamentals-first and object-right. OOP is introduced just right in time after fundamental programming techniques are covered. Many instructors of this book from research universities to community colleges have embraced the approach and have succeeded.

Teaching Problem Solving

Programming isn’t just syntax, classes, or objects. It is really problem solving. Loops, methods, and arrays are fundamental techniques for problem solving. From fundamental programming techniques to object-oriented programming, there are many layers of abstraction. Classes are simply a layer of abstraction. Applying the concept of abstraction in the design and implementation of software projects is the key to developing software. The overriding objective of the book, therefore, is to teach students to use many layers of abstraction in solving problems and to see problems in small and in large. The examples and exercises throughout the book emphasize problem solving and foster the concept of developing reusable components and using them to create practical projects.

Pedagogical Features

The philosophy of the Liang Java Series is teaching by example and learning by doing. Basic features are explained by example so that you can learn by doing. The book uses the following elements to get the most from the material: