Agent-based and Individual-based Modeling: *A Practical Introduction*

This page provides an overview of the book's contents. You can view the complete Table of Contents here and download the introductory Chapter 1 (PDF) from the book's site at Princeton University Press.

The book has four parts.

**Part I** provides a quick introduction to modeling and
agent-based modeling, and a "crash course" in programming ABMs using
NetLogo. The goal of this part is to teach students enough of the
basics of modeling and programming so they can move on to the second part, which broadens and deepens
knowledge of both. We also introduce a standard
format—the ODD protocol—for describing (and, therefore, thinking about and designing)
ABMs. ODD is used throughout the book and in hundreds of scientific publications.
As soon as students learn the
basics of programming in NetLogo, we also introduce methods for testing
software: testing our programs is an essential scientific skill that
needs to be a habit from the start.

**Part II** includes nine chapters that each (a) introduce a
basic concept of agent-based modeling and ways that the concept is
often implemented, and (b) reinforce and expand NetLogo programming
skills related to the concept. For example, the chapter on Observation
starts with a short discussion of why the way we observe an ABM is
important and the different kinds of results we need to observe, then
discusses how to use NetLogo's extensive graphical and file output
tools to make the observations we need. Part II makes extensive use of
example models and exercises to illustrate and develop modeling and
programming skills.

**Part III** covers "pattern-oriented modeling", a
modeling strategy that we find especially important for
agent-based modeling. Students learn to use characteristic patterns of
the real systems they model to design ABMs with the right level of complexity,
to develop theory
for how the system's dynamics emerge from agent characteristics and
behaviors, and to calibrate models. Pattern-oriented modeling helps us deal with some of the
most difficult issues in agent-based modeling, such as knowing when a
model is "as simple as possible, but no simpler".

**Part IV** looks at what to do with a model after it is
written and programmed: analyze it to understand the model and to solve
the problem it was designed for. We introduce methods for typical kinds
of analyses (sensitivity, uncertainty, and robustness) and for drawing
inferences about the system we modeled. The final chapter provides recommendations
for moving on from the course to one's own model-based research, and for
coping with some of NetLogo's limitations.