**Description**

Complexity Science is an interdisciplinary field—at the intersection of mathematics/ computer science/ and natural science—that focuses on discrete models of physical and social systems. In particular/ it focuses on complex systems/ which are systems with many interacting components. Complex systems include networks and graphs/ cellular automatons/ agent-based models and swarms/ fractals and self-organizing systems/ chaotic systems and cybernetic systems. This book is primarily about complexity science/ but studying complexity science gives you a chance to explore topics and ideas you might not encounter otherwise/ practice programming in Python/ and learn about data structures and algorithms. This book picks up where Think Python leaves off. I assume that you have read that book or have equivalent knowledge of Python. As always/ I try to emphasize fundamental ideas that apply to programming in many languages/ but along the way you will learn useful features that are specific to Python. The models and results in this book raise a number of questions relevant to the philosophy of science/ including the nature of scientific laws/ theory choice/ realism and instrumentalism/ holism and reductionism/ and Bayesian epistemology.