Chapter 1. Complexity Science
What Is This Book About?
This book is about data structures and algorithms, intermediate programming in Python, computational modeling, and the philosophy of science.
- Data structures and algorithms
A data structure is a collection of data elements organized in a way that supports particular operations. For example, a Python dictionary organizes key-value pairs in a way that provides fast mapping from keys to values, but mapping from values to keys is slower.
An algorithm is a mechanical process for performing a computation. Designing efficient programs often involves the co-evolution of data structures and the algorithms that use them. For example, in the first few chapters I present graphs, data structures that implement graphs, and graph algorithms based on those data structures.
- Python programming
This book picks up where Think Python leaves off. I assume that you have read that book or have equivalent knowledge of Python. I try to emphasize fundamental ideas that apply to programming in many languages, but along the way you will learn some useful features that are specific to Python.
- Computational modeling
A model is a simplified description of a system used for simulation or analysis. Computational models are designed to take advantage of cheap, fast computation.
- Philosophy of science
The experiments and results in this book raise questions relevant to the philosophy of science, including the nature of scientific laws, theory choice, realism and instrumentalism, ...