Book Description
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.
Patterns can be used to teach problem solving at various levels of abstraction (which are inversely related to the level of detail). 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 of the statements in the fragments, it assumes that you already know the syntax. Though the syntax of a particular programming language can be confusing at first, it is, actually, fairly easy to learn and, given a solution to a problem, it is fairly easy to write the code that implements it. It's much more difficult to come up with the solution, and that's what this book will teach you to do.
After you finish reading this book you will have a library of solutions that you can use, and an understanding of how to add to that library.
This open book is licensed under a Creative Commons License (CC BY). You can download Patterns for Beginning Programmers ebook for free in PDF format (2.3 MB).
Table of Contents
Part I
Patterns Requiring Knowledge of Types, Variables, and Arithmetic Operators
Chapter 1
Updating
Chapter 2
Swapping
Chapter 3
Digit Manipulation
Chapter 4
Arithmetic on the Circle
Chapter 5
Truncation
Part II
Patterns Requiring Knowledge of Logical and Relational Operators, Conditions, and Methods
Chapter 6
Indicators
Chapter 7
Indicator Methods
Chapter 8
Rounding
Chapter 9
Starts and Completions
Chapter 10
Bit Flags
Chapter 11
Digit Counting
Part III
Patterns Requiring Knowledge of Loops, Arrays, and I/O
Chapter 12
Reprompting
Chapter 13
Accumulators
Chapter 14
Accumulator Arrays
Chapter 15
Lookup Arrays
Chapter 16
Interval Membership
Chapter 17
Conformal Arrays
Chapter 18
Segmented Arrays
Part IV
Patterns Requiring Advanced Knowledge of Arrays and Arrays of Arrays
Chapter 19
Subarrays
Chapter 20
Neighborhoods
Part V
Patterns Requiring Knowledge of String Objects
Chapter 21
Centering
Chapter 22
Delimiting Strings
Chapter 23
Dynamic Formatting
Chapter 24
Pluralization
Part VI
Patterns Requiring Knowledge of References
Chapter 25
Chained Mutators
Chapter 26
Outbound Parameters
Chapter 27
Missing Values
Chapter 28
Checklists