We refer to the programming constructs, software libraries, and operating system
features that we use to implement and describe algorithms as our programming model.
In this section and Section 1.2, we fully describe this programming model. The treatment
is self-contained and primarily intended for documentation and for your reference
in understanding any code in the book. The model we describe is the same model
introduced in our book An Introduction to Programming in Java: An Interdisciplinary
Approach, which provides a slower-paced introduction to the material.
For reference, the figure on the facing page depicts a complete Java program that
illustrates many of the basic features of our programming model. We use this code for
examples when discussing language features, but defer considering it in detail to page
46 (it implements a classic algorithm known as binary search and tests it for an application
known as whitelist filtering). We assume that you have experience programming
in some modern language, so that you are likely to recognize many of these features in
this code. Page references are included in the annotations to help you find answers to
any questions that you might have. Since our code is somewhat stylized and we strive
to make consistent use of various Java idioms and constructs, it is worthwhile even for
experienced Java programmers to read the information in this section.