Aimed at readers with minimal experience in computer programming, this brief book provides a theoretical and methodological rationale for using ABM in the social sciences. It goes on to describe some carefully chosen examples from different disciplines, illustrating different approaches to ABM. It concludes with practical advice about how to design and create ABM, a discussion of validation procedures, and some guidelines about publishing articles based on ABM.