Pearson Education Home Higher Education HomeInstructor SupportStudent SupportAbout UsCareers
Bookshop
Texts & Technology
ABOUT THIS PRODUCT
Description
Table of Contents
Features
Appropriate Courses
Preface
 
PACKAGE OPTIONS
Valuepack(s)
 
RESOURCES
Student
Instructor
First Day of Class
 
RELATED TITLES
Java--Intro to Programming/CS1 (Computer Science)
Java--Intermediate Programming (Computer Science)
Java by Dissection: The Essentials of Java Programming, Updated Edition
View Larger Cover Image
View Larger Image

Ira Pohl, University of California - Santa Cruz
Charlie McDowell, University of California - Santa Cruz

Publisher: Addison-Wesley
Copyright: 2002
Format: Paper Bound with PIN; 509 pp

ISBN-10: 0201751585
ISBN-13:9780201751581Help icon

Our Price: £50.99
This title is out of print
Estimated Availability: 15 Oct 2001
This title is not for sale to the US or Canada.
Not available for purchase at this time.


  PrintPrint Product Information

Preface

Java By Dissection is an introduction to programming in Java that assumes no prior programming experience. As such it thoroughly teaches modern programming techniques using Java. It shows how all the basic data types and control statements are used traditionally. It then progresses to the object-oriented features of the language and their importance to program design.

The second half of the book explains in detail much that is sophisticated about Java, such as its threading, graphical user interface (GUI), and file manipulation capabilities. The book is suitable as the primary text in an advanced programming course, or as a supplementary text in a course on data structures, software methodology, comparative languages, or other course in which the instructor wants Java to be the language of choice.

Java, invented at Sun Microsystems in the mid-1990s, is a powerful modern successor language to C and C++. Java, like C++, adds to C the object-oriented programming concepts of class, inheritance, and run-time type binding. The class mechanism provides user-defined types also called abstract data types. While sharing many syntactic features with C and C++, Java adds a number of improvements, including automatic memory reclamation called garbage collection, bounds checking on arrays, and strong typing. In addition, the standard Java libraries, called packages in Java, provide platform independent support for distributed programming, multi-threading, and graphical user interfaces.

Although Java shares many syntactic similarities to C, unlike C++, Java is not a superset of C. This has allowed the creators of Java to make a number of syntactic improvements that make Java a much safer programming language than C. As a result, Java is much better as a first programming language.

Java By Dissection begins with a classical programming style starting with programs as a simple sequence of instructions, then adding in control flow and functional abstraction.

After that comes arrays and data abstraction using classes, which can be covered in either order—arrays first, or data abstraction with classes first. Then comes the material on inheritance and graphical user interfaces. Again, the chapter on inheritance can be covered before or after the first chapter on graphical user interfaces. Finally come the advanced chapters.

The book emphasizes working code. One or more programs particularly illustrative of the chapter's themes is analyzed by dissection, which is similar to a structured walk-through of the code. Dissection explains to the reader newly encountered programming elements and idioms.

Because Java includes a relatively easy-to-use, standard package for creating graphical user interfaces, it is possible to introduce the use of GUIs in a beginning programming book. Creating programs with GUIs is as fundamental today as being able to create nicely formatted text output. To fully understand the GUI packages in Java, it is necessary to have some understanding of OOP and inheritance. The main chapters on GUI building immediately follow the chapters on objects and inheritance. For those students interested in getting an early exposure to some of the graphical aspects of Java, we have provided a series of extended exercises at the end of the early chapters, which introduce GUIs and applets. These exercises provide templates for some simple applets, without providing complete explanations of some of the language features required.

The following summarizes the primary design features that are incorporated into this book.

Teaching by Example. The book is a tutorial that stresses examples of working code. Right from the start the student is introduced to full working programs. Exercises are integrated with the examples to encourage experimentation. Excessive detail is avoided in explaining the larger elements of writing working code. Each chapter has several important example programs. Major elements of these programs are explained by dissection.

Object-Oriented Programming (OOP). The reader is led gradually to an understanding of the object-oriented style. Objects as data values are introduced in Chapter 2. Chapter 6 shows how the programmer can benefit in important ways from Java and object-oriented programming. Object-oriented concepts are defined, and the way in -Which these concepts are supported by Java is introduced. Chapter 7 develops inheritance and dynamic method dispatch, two key elements in the OOP paradigm.

Terminal Input. For an existing, widely used language, Java continues to lack support for simple terminal input. This either forces the student to build and use GUIs immediately, or to use cumbersome constructs from the standard I/O package. Going directly to GUIs requires the student to use many language features that they do not understand yet. Likewise, using the relatively powerful and flexible standard I/O package for simple input of text and numeric data requires the use of, as yet, unexplained language features. We have addressed this shortcoming by providing a package, tio, that supports simple input of numeric and text data, and simple formatted output. A complete listing of the package is included in Appendix C and the source is available electronically from the Addison-Wesley Web site. The main class in this package simplifies many common input processing needs and has been used in a number of real applications.

Data Structures in Java. The text covers many of the standard data structures from computer science. Stacks, safe arrays, dynamically allocated multidimensional arrays, lists, and strings are all discussed. Exercises extend the student's understanding of how to implement and use these structures. Implementation is consistent with an abstract data type and object-oriented approach to software.

Graphical User Interfaces. An important part of Java is its support for platform independent creation of graphical user interfaces and the web based programs called applets. In Chapters 8 and 9 we present a basic introduction to using the standard Java package Swing, for building GUIs. These chapters provide enough information to create useful and interesting applets and GUIs. A few additional GUI components are presented briefly in Appendix D. For students anxious to begin writing applets, simple applets are introduced in a series of exercises beginning in Chapter 2. These exercises are completely optional. The coverage of applets and GUIs in Chapters 8 and 9 does not depend upon the student having done or read the earlier applet exercises.

Threads. Multi-threaded programming is not usually discussed in a beginning text. However, some understanding of threads is essential for a true understanding of the workings of event driven GUI based programs. In addition, the authors feel that thread-based programming will become increasingly important at all levels of the programming curriculum. Threading is explained in Chapter 13, and used to introduce the reader to client/server computing. This book gives a treatment suitable to the beginning programmer that has mastered the topics in the preceding chapters.

Course-Tested. This book is the basis of courses given by the authors, who have used its contents to train students in various forums since 1997. The material is course-tested, and reflects the author's considerable teaching and consulting experience.

Code Examples. All the major pieces of code were tested. A consistent and proper coding style is adopted from the beginning and is one chosen by professionals in the Java community. The code is available at the Addison Wesley Longman Web site ftp://ftp.awl.com/cseng/authors/pohl-mcdowell.

Exercises. The exercises test and often advance the student's knowledge of the language. Many are intended to be done interactively while reading the text, encouraging self-paced instruction.

Web site. The examples both within the book and at Addison-Wesley's Web site are intended to exhibit good programming style. The Addison-Wesley Web site for this book contains the programs in the book as well as adjunct programs that illustrate points made in the book.

Course use:

  • The book can be used as a basic first programming course, similar in scope to courses that used C, Pascal, or C++. Chapters 1 through;8 cover such a curriculum.
  • The book can be used as a second or advanced course covering object-oriented programming.
  • Chapters 2 through 5 can be skimmed by anyone already familiar with a procedural programming language such as C or Pascal.
  • A programmer already familiar with OOP concepts could also skim chapters 6 and 7.
  • Chapters 8 through 13 provide a mix of interesting advanced topics, not generally covered in a beginning programming course. In a beginning course, the instructor can use tio and take a conventional text input/output approach, or by assigning the optional applet based exercises, beginning in Chapter 2, students can be introduced immediately to using applets.

Acknowledgments

Our special thanks go to Debra Dolsberry and Linda Werner for their encouragement and careful reading and suggestions for improvement. Debra was especially helpful with typesetting issues. Our student Sarah Berner was an important contributor to the effectiveness of the text and especially helpful in converting many examples and exercises over to SWING. Additional reviewers who provided helpful suggestions include:

Massoud Ghyam: University of Southern California
Titus Purdin: University of Arizona
Brahma Dathan: St. Cloud State University
Stan Lipson: Kean University
Arthur Chou: Clark University
Hugh McGuire: University of California at Santa Barbara
Ray Lischner: Oregon State University
Evelyn Stiller: Plymouth State College
Jennifer Sedelmeyer: Broome Community College

In addition we would like to thank our AWL editorial team Susan Hartman and Maite Suarez-Rivas for their careful attention to the production of this book.

Charlie McDowell and Ira Pohl
University of California, Santa Cruz

 
Pearson Education Home