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.