Cay S. Horstmann
Computing Concepts With Java Essentials is a well-written book by Dr. Cay Horstmann, a leading author of texts and references in areas such as Java, C++, and general Object-Oriented design. This book provides an introduction to Object-Oriented design through the use of the Java programming language.
Aimed at beginning to intermediate programmers, this book starts right from basic subjects, such as “What is a Computer”, to more advanced topics such as sorting and searching methods and recursion. While on the journey, Horstmann touches on subjects including the software life cycle and data structures.
The focus of this book is on good Object-Oriented coding practices and guidelines. Horstmann, in the preface, divides the book into 3 separate sections. The first eight chapters of this book were meant to be an introduction to the fundamentals of Object-Oriented programming, covering basic topics such as classes, objects, variables, strings and control structures. The second section, chapters nine through sixteen, covers more advanced topics, including inheritance, arrays, exceptions, streams, and GUI programming. The last section, chapters seventeen through nineteen, contains an introduction to data structures and algorithms, covering recursion, sorting and searching, linked lists, binary trees, and hash tables.
Horstmann’s style is simple, and easy to understand. He presents his material in a logical fashion. When presenting a subject, he will begin with a general introduction to the topic, showing common errors, productivity hints, and best practices in separated sections along the way. Occasionally Horstmann will move into an ‘Advanced Topic’ section where he will consider a more complex area of a chapter’s subject. Horstmann also makes good use of Java code examples to portray his thoughts in a tangible way, which students and readers can take and try themselves. Quite often, to demonstrate a subject, Horstmann will lead the reader through the design of an entire program, in order to drive a point across.
At the end of every chapter is found a quick summary of the chapter, references for further reading, a list of classes, objects and methods introduced in the chapter, and a set of exercises, for the reader to test his knowledge, and apply the subjects learned in the chapter. These exercises range from trivial questions based on the reading, to in depth programming projects which could require 5-6 hours of work to complete.
This book is very well written, and leads to a good working knowledge of Object-Oriented design, and the Java programming language. Although weak in content for more advanced programmers who already have a good knowledge of Object-Oriented programming, this book provides a good basis for a beginning programmer to start his journey into the world of modern programming.
|Table of Contents|
Appendix A1: Java Language Coding Guidelines.
Appendix A2: Java Library
Appendix A3: The Basic Latin and Latin-1 Subsets of Unicode.
Appendix A4: Glossary
|Overview of Chapters|
Chapter 1: Introduction
Chapter 2: An Introduction to Objects and Classes
Chapter 3: Fundamental Data Types
Chapter 4: Applets and Graphics
Chapter 5: Decisions
Chapter 6: Iteration
Chapter 7: Designing Classes
Chapter 8: Testing and Debugging
Chapter 9: Interfaces and Polymorphism
Chapter 10: Event Handling
Chapter 11: Inheritance
Chapter 12: Graphical User Interfaces
Chapter 13: Array Lists and Arrays
Chapter 14: Exception Handling
Chapter 15: Streams
Chapter 16: System Design
Chapter 17: Recursion
Chapter 18: Sorting and Searching
Chapter 19: An Introduction to Data Structures
Computing Concepts with Java Essentials