Introduction to Java and Software Design represents a significant transition in the development of the Dale series, with much that is new. This book has been developed from the ground up to be a Java text. It is not a Java translation of our previous texts. However, we have retained our familiar easy-to-read style and clear approach to introducing new topics. The chapters retain the same overall organization with each chapter containing a full problem-solving case study, testing and debugging hints, summary, and five types of end-of-chapter exercises. Also, some topicsÑsuch as problem solving are independent of the programming language and thus contain familiar discussions.
The text uses real Java I/O classes rather than ones we supply. We have seen many introductory programming texts 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 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 already familiar with event-driven interfaces and expect to learn how to write programs that have them.
Event handling is now a fundamental control structure and must be treated that way from the start. We therefore introduce event handling even before branching and looping. On the other hand, it is easy for students to be overwhelmed by the sheer number and complexity of Java I/O classes. We have taken great care to select a tiny but sufficient subset of the library to illustrate all of the fundamental concepts. The result is that when students are finished with the course, they can write real Java programs without being dependent on a text-supplied library. They also have developed the ability to extend their knowledge of I/O classes to include the many optional features that are available.