Problem Solving with Java teaches the sound problem solving skills that beginning programmers must understand alongside the basics of object-oriented programming using Java. The book emphasizes the use of objects and classes from the beginning by providing the basics of OOP from the start, but delaying the complications of the AWT, Swing, and more theoretical concepts of OOP until later.
The authors' approach is to design a worker class or support class for each problem. The worker class has data fields for storing the problem inputs and it has methods that implement the algorithm needed to solve the problem. There is a separate application class that instantiates a worker object, passes data to this object, and then displays the results returned by the worker object. In this way, the student is introduced to the importance of object interaction and separation of concerns from the very beginning. The worker class knows how to solve the basic problem (units conversion, computation of area, etc.). The application class knows how to get the data from the user and display it. This approach better prepares students for the use of applets and GUIs. The worker class can be used without modification by an applet that performs the functions of the application class.
Click for author interviews and demos of four SimpleGUI examples.
Object-Oriented Programming
This book presents a careful balance between traditional problem-solving techniques and object-oriented design. Embracing the object-oriented paradigm, the authors introduce objects early (Chapter 2) and use them throughout, introducing features as needed in a gentle manner. Chapters 4 - 7 focus on the traditional data and control structures, using objects as needed. Chapter 8 provides a more in-depth study of object-oriented design, providing detailed coverage of visibility, polymorphism, and inheritance.
Applications and AppletsFocusing on applications early, the book supports user interaction by providing a package called simpleIO. Applets are first introduced in Chapter 4 where the authors use them in an optional section on graphics to introduce the AWT and its features for drawing simple graphical patterns. They are studied extensively in Chapters 9 and 10 where the intricacies of the AWT, programming for the web, and GUI programming are covered.
Graphical User Interfaces (GUIs)Starting in Chapter 2, the authors integrate a GUI library that allows students to better understand concepts through visualization and have some fun. GUI concepts are always presented in the context of good problem solving and program development. Optional sections on graphics appear starting in Chapter 4, again to spur student interest and keep them motivated.
Proven Software Development ProcessThe book conveys the relationship between good problem-solving skills and effective software development by consistently applying a proven software development method that has been adapted to the object-oriented paradigm.
Helpful Learning FeaturesThe authors employ several features to enhance the usefulness of this book as a teaching tool. These include syntax displays, program style displays, end-of-section exercises, examples, case studies, error discussions, and chapter reviews. Also, interviews with famous computer scientists provide glimpses into various careers in computer science.
0201357437B04062001