Features

bullet Coverage
bullet Provides in-depth coverage of all materials that an introductory course would need
bullet Introduces much of the remaining material generally covered in follow-on courses
bullet Gives pointers to the rest.
bullet Flexibility
bullet The breadth and the arrangement of chapters provides flexibility for the instructor in what and when topics are introduced.
bullet Chapter coverage and extensive appendices enable advanced learners to go further, and makes the book valuable as a reference source.
bullet Gentle introduction to objects
bullet The book implements what we call the "objects right" approach.
bullet Teaching the object-oriented paradigm in introductory courses for the last ten-plus years has shown us that Java can be successfully introduced to beginning programmers.
bullet We know that delaying user-defined classes to the end of a course inhibits the ability of students to integrate the central pillar of the object-oriented programming paradigm and forces superficial coverage of other important object-oriented programming principles..
bullet Presentation introduces objects early—or as we prefer, right. Students begin using objects from standard packages right from the beginning.
bullet They quickly develop meaningful programs for interesting problems. Using this solid introduction, we then present the basics of class and object-oriented design. After exploring control structures, we present a deeper look at methods, classes, and object-oriented design.
bullet Focus on problem solving
bullet One of the biggest obstacles faced by many beginning students is not knowing basic problem-solving techniques.
bullet The text addresses this issue by introducing basic problem-solving skills in Chapter 1 and then applying the new concepts in each chapter to problems selected for their appeal to a variety of audiences.
bullet Students are first walked through examples that illustrate effective problem solving, and then they are given a chance to tackle similar problems on their own.
bullet Introduction to software-engineering design concepts
bullet Software-engineering design concepts are introduced via problem studies and software projects.
bullet Besides numerous small examples, each chapter considers one or more problems in detail.
bullet As appropriate, there are object-oriented analysis and design, and algorithm development to realize the design.
bullet Coverage of testing and debugging
bullet An important skill for programmers is how to test and debug the programs they design and implement.
bullet Chapter 13 introduces important software engineering concepts and practices with regard to testing and debugging.
bullet The chapter discusses testing techniques such as unit testing, integration testing, and code inspections.
bullet The sections on debugging focus on teaching students how to use the scientific method to find errors. The chapter also discusses common errors of beginning programmers and how to recognize them.
bullet After control structures have been introduced, this chapter material can be taught whenever an instructor deems it appropriate.
bullet Engaging and inclusive examples
bullet Students learn from interesting situations they might encounter in real life.
bullet Diverse case studies and programming projects are drawn from varied topics. Examples include
bullet Physical fitness
bullet Spam
bullet Medical diagnosis
bullet Statistical analysis
bullet Psychological typing
bullet Data visualization
bullet Graphs
bullet Entertainment
bullet Animation.
bullet By offering a variety of examples, the text demonstrates how programmers can participate and contribute to our daily lives.
bullet Exclusive use of standard Java classes
bullet The text uses only standard Java classes in introducing Java programming concepts. In particular, there are no author-written classes for acquiring input. Instead standard classes and techniques are presented in a way that makes sense to beginning programmers.
bullet Lab manual
bullet A printed lab manual accompanies the text for schools that use laboratories in their introductory courses.
bullet The lab material offers a hands-on experience that reinforces Java programming concepts and skills.
bullet Programming and style tips
bullet The text provides advice on how to be a better and more knowledgeable programmer and designer.
bullet There are important tips on such topics as avoiding common programming errors, writing readable code, and following software engineering practices.
bullet Self-test, exercises, and software projects
bullet Every chapter provides a self-test exercise section with answers to enable students to evaluate their skills on important concepts.
bullet The text provide several hundred exercises with solutions are available to instructors through the publisher.
bullet Once the basics of Java are introduced in Chapter 2, that chapter and all successive chapters supply a programming project that exercises chapter concepts.
bullet Reference appendices
bullet Appendices C, D, and E provide nearly two hundred pages of description of the standard Java APIs.
bullet The coverage makes the text a handy reference manual well after the course completes.
bullet Full-color design
bullet An inviting, full-color design highlights related material, indicates section breaks, calls out special features, and makes key information easy to reference.
bullet Code formatting
bullet Specially formatted code listings make sections of code easy to find and reference.
bullet Each listing is numbered according to its place in the chapter, separated from related material by coloring and line numbering.
bullet Partial sections of code are clearly set off from surrounding text and are generously annotated with easy-to-spot author comments.
bullet UML diagrams
bullet The use of UML diagrams helps clarify relationships between classes while at the same time familiarizing students with this widely used system of notation.
bullet Case studies
bullet Each chapter includes multiple case studies designed to teach effective problem-solving skills and to reinforce object-oriented programming and software engineering design concepts.
bullet The specific learning objective is highlighted at the beginning of each case study, and problem-solving steps are highlighted with special icons.
bullet The case studies are colored to distinguish them from other chapter material.
bullet Coverage of the case studies is optional; they apply chapter concepts rather than introducing new concepts.
bullet End-of-chapter reviews
bullet Each chapter ends with a thorough, point-by-point summary of the chapter's major ideas.
bullet The end of chapter materials are color highlighted for easy access.
bullet Self-tests
bullet Each chapter includes a self-test with answers supplied at the end of the chapter.
bullet These self-check sections are designed to help students evaluate whether they have mastered the chapter objectives and to reinforce the key ideas of the chapter.
bullet Programming case studies
bullet Each programming chapter has at least one interesting programming case study presented in a manner that makes it suitable for use as a class assignment.
bullet Programming case studies include determining your exercise training zone; harvesting e-mail addresses; medical diagnosis; automobile loan calculator; and an aquarium simulation.
bullet Exercises
bullet An exercise section at the end of each chapter offers a variety of problems requiring a range of efforts levels.