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