Conditions of Use
This book presents a thorough walkthrough of common programming concepts. This version of the book includes example figures written in Java, but the content of the text is designed to be language agnostic. The techniques covered are ones that... read more
This book presents a thorough walkthrough of common programming concepts. This version of the book includes example figures written in Java, but the content of the text is designed to be language agnostic. The techniques covered are ones that computer scientists encounter no matter the language they specialize in or the eventual purpose/focus of their work (digital art, database management, etc.).
While the book does cover a lot of ground, it would be good to see each example presented in more than one programming language to show how these universal concepts will look similar in syntax in addition to how similar the steps for solving common issues through programming are in execution. A suggestion would be to either publish different versions of the book with examples translated into different programming languages, or to update this version to include multiple versions of each example, each translated to a different language.
The content in this book is very accurate and represents up-to-date outlooks on timeless computer programming concepts.
The concepts covered in the book are universal enough that they are not at risk of becoming outdated anytime soon. As mentioned earlier, by choosing any specific programming language to represent examples, updates will be always be needed as the conventions and syntax of that language change. As of this review's date, the syntax for the Java-centric examples in version are accurate.
The prose in the text is clear, concise, and approachable to teachers. The examples and analogies given to understand the ways in which programs work would be good to use with beginner students.
While the concepts grow in complexity with each chapter, the clarity of the text and approach to explaining concepts is consistent throughout.
In the book's introduction, the author specifies that since the primary focus of the text is to teach common programming patterns an then to build on each pattern with new information, the "parts of the book need to be considered in order." The author recommends that instructors consider skimming through a more advanced chapter in order to teach their students about a concept in a more direct, condensed manor that may help clarify a concept from an earlier chapter.
The nature of this approach makes it difficult for the book to be easily divisible and modular. Due to the menu structure and layout of chapters and subchapters, a modular approach is possible, but it may not be the ideal approach to using this book in the classroom.
The book is organized well. Each chapter consists of subchapters, allowing a bite-sized approach to learning new concepts and growing at the reader's pace.
All links worked properly.
I found no grammatical errors in the text.
I found no culturally insensitive or irrelevant comments in the text.
Table of Contents
- I. Patterns Requiring Knowledge of Types, Variables, and Arithmetic Operators
- II. Patterns Requiring Knowledge of Logical and Relational Operators, Conditions, and Methods
- III. Patterns Requiring Knowledge of Loops, Arrays, and I/O
- IV. Patterns Requiring Advanced Knowledge of Arrays and Arrays of Arrays
- V. Patterns Requiring Knowledge of String Objects
- VI. Patterns Requiring Knowledge of References
About the Book
Programming patterns are solutions to problems that require the creation of a small fragment of code that will be part of a larger program. Hence, this book is about teaching you how to write such fragments of code. However, it is not about teaching you the syntax of the statements in the fragments, it assumes that you already know the syntax. Instead, it is about finding solutions to problems that arise when first learning to program.
About the Contributors
David Bernstein, James Madison University