New York: Jones & Bartlett Publishers, 2003. — 810 p.
Programming and Problem Solving with Java represents a significant transition in the development of the Dale series, with much that is new. Here we briefly summarize the features of this new text.
The most obvious new feature is the beautiful full-color design, which allows us to use colored code displays that follow conventions similar to the editors found in integrated development environments. The code coloring conventions also make syntax stand out from the text more effectively. For the first time, we are able to show realistic full-color screen images of program output. Color is used extensively to enhance the clarity and improve overall readability of illustrations, feature boxes, and other elements of the text. We’re very excited to add this new dimension to our pedagogical toolkit.
This book has been developed from the ground up to be a Java text. It is not a “Java translation” of our previous texts. We have, however, retained our familiar easy-to-read style and clear approach to introducing new topics. Each chapter has the same overall organization as in our previous books, with a full problem-solving case study, testing and debugging hints, summary, and five types of exercises. Also, some topics, such as problem solving, are independent of the programming language and thus contain familiar discussions.
An exciting new feature in each chapter is the division of the learning goals into knowledge goals and skill goals. Each chapter thus addresses specific concepts that students should understand as distinct from skills that they should develop. For example, in the chapter that covers inheritance, students are expected to understand the concept of a class hierarchy, and to be able to implement a derived class.
In every regard, this new book is object-oriented in its presentation of the fundamental concepts of computing. From the very first chapter we use object-oriented terminology to describe the software development process. Classes are covered extensively in Chapter 2, where we first encounter Java syntax. Over the course of the next several chapters, students learn to build separately compiled classes representing realistic objects and to add to their sophistication gradually. In Chapter 6, we present the CRC card technique for object-oriented design, and in Chapter 7 we formalize the earlier coverage of classes and introduce inheritance.
Unlike our other Java text, Introduction to Java and Software Design, here we save the introduction of graphical user interface components for Chapter 8.These are used only sparingly in the remaining chapters, so that instructors who do not wish to focus on GUI and event programming do not have to do so. We use a modest subset of the Swing library components that is appropriate to a course at this level. Event driven I/O is the dominant model not only in Java, but in the modern world of programming in general. Students come to our classes with prior familiarity of event-driven interfaces and expect to learn how to write programs containing them. In this book, we have thus strived to strike a balance between covering the more complex style of I/O with which students are familiar, and the more traditional console I/O that is simpler to use for early applications.
The text uses real Java I/O classes rather than ones we supply. It would have made our job much easier to supply a streamlined set of I/O classes to simplify Java I/O. We have seen many books that introduce either C or Pascal-like command-line I/O classes or simplified windowing classes that automatically handle events. However, our view is that using such libraries produces students who still do not know how to write real Java programs at the end of the course, leaving them to learn the Java I/O library on their own, without help or guidance.
Instead, we have carefully chosen a subset of the console I/O and Swing packages that is within their grasp, and that covers all of the essential concepts necessary for them to explore additional features of the library on their own.
All of the programs have been tested with Metrowerks CodeWarrior or the Apple OSX version of the Sun SDK.The program code is included on the Student Resource Disk for Java, which accompanies your new book.