This book is inspired by boredom and fascination: boredom with the usual presentation of data structures and algorithms, and fascination with complex
systems. The problem with data structures is that they are often taught without a motivating context; the problem with complexity science is that it is
usually not taught at all.
In 2005, I developed a new class at Olin College where students read about topics in complexity, implement experiments in Python, and learn about
algorithms and data structures. I wrote the first draft of this book when I taught the class again in 2008.
Expand your Python skills by working with data structures and algorithms in a refreshing context—through an eye-opening exploration of complexity science. Whether you’re an intermediate-level Python programmer or a student of computational modeling, you’ll delve into examples of complex systems through a series of exercises, case studies, and easy-to-understand explanations.
You’ll work with graphs, algorithm analysis, scale-free networks, and cellular automata, using advanced features that make Python such a powerful language. Ideal as a text for courses on Python programming and algorithms, Think Complexity will also help self-learners gain valuable experience with topics and ideas they might not encounter otherwise.
Work with NumPy arrays and SciPy methods, basic signal processing and Fast Fourier Transform, and hash tables
Study abstract models of complex physical systems, including power laws, fractals and pink noise, and Turing machines
Get starter code and solutions to help you re-implement and extend original experiments in complexity
Explore the philosophy of science, including the nature of scientific laws, theory choice, realism and instrumentalism, and other topics
Examine case studies of complex systems submitted by students and readers