* Objects First Approach. Students learn to design with objectsfrom the start. In more traditional approaches, students firstlearn "programming basics in the context of procedural programmingin the small." Since this frame of reference is essentially uselesswhen attacking large-scale problems, students must later "re-learnhow to approach problems. Instructors can present material from apoint of view that will "make sense" throughout the curriculum.Presentation and justification of programming principles and goodtechniques is easier.
* Emphasis on the distinction between class specification andimplementation. Students learn to develop coherent classspecifications early on, and to build components that conform tocarefully defined, consistent specifications. The result is moremain-tainable, error-free code.
* Early emphasis on testing and test-driven implementation.Students develop a habit of testing as part of the implementationprocess. Testing is essential to ensure quality programs.
* Current presentation of object-oriented design and Java. Studentsbenefit from seeing general approaches to commonly occurring designpatterns in a specific, well-defined context. This will also makeit easier for students to "get the point" when such topics areintroduced in upper-level design and software engineering courses.Other features include an emphasis on event-driven interfaces,rather than traditional procedural I/O; informal use of standardUML notation
* Optional interactive exercises are designed for use with theopen-source DrJava integrated development environment (IDE) - apopular tool for compiling and testing programs
If you want to get started in programming and software design, justfollow the hundreds of other students who have depended onNino and Hosch's An Introduction to Programming and Object-OrientedDesign Using Java. Assuming no previous programming experience, andonly elementary algebra, the newest edition of this popular textteaches you the basic discipline needed to create substantialprogramming applications that can be understood, maintained, andmodified.
Stressing design and the discipline needed for developingcomplex software systems, the authors take an "objects first"approach to programming and software design. Using Java as thevehicle, they show you how to model problems with sound softwareengineering principles and concepts. Step by step, with numerousexamples and exercises,, they provide you with the practice youneed to acquire real proficiency in the design and construction ofsoftware systems. By the time you are done, you will have developedthe fundamental skills and a grasp of system design that will proveas useful in constructing large systems as in building smallcomponents.
Updates and enhancements that make the Third Edition the bestyet include:
- A continued focus on an objects-first approach,presenting theuse of basic data types and control structures, method definitionand invocation, and complete simple system implementation.
- The use of the "programming by contract" paradigm and anemphasis on testing and test-driven implementation.
- New examples and exercises to improve the presentationformat.
- comprehensive coverage of arrays in a completely rewrittenchapter.
- Detailed examination of generics and wildcard types, newlyadded.
- Optional, interactive exercises using the latest version ofthe DrJava integrated development environment (IDE).
- An introduction to the Unified modeling Language (UML) and howit's employed for denoting objects, object relationships, andsystem dynamics
- Java usage compatible with Java 6.0