Think Complexity and over 2 million other books are available for Amazon Kindle . Learn more

Sign in to turn on 1-Click ordering.
Trade in Yours
For a 4.75 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Sorry, this item is not available in
Image not available for
Image not available

Start reading Think Complexity on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Think Complexity: Complexity Science and Computational Modeling [Paperback]

Allen B. Downey
4.2 out of 5 stars  See all reviews (4 customer reviews)
RRP: 25.99
Price: 22.61 & FREE Delivery in the UK. Details
You Save: 3.38 (13%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 7 left in stock (more on the way).
Dispatched from and sold by Amazon. Gift-wrap available.
Want it tomorrow, 30 July? Choose Express delivery at checkout. Details


Amazon Price New from Used from
Kindle Edition 9.58  
Paperback 22.61  
Trade In this Item for up to 4.75
Trade in Think Complexity: Complexity Science and Computational Modeling for an Amazon Gift Card of up to 4.75, which you can then spend on millions of items across the site. Trade-in values may vary (terms apply). Learn more

Book Description

12 Mar 2012 1449314635 978-1449314637 1

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

Frequently Bought Together

Think Complexity: Complexity Science and Computational Modeling + Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython + Think Stats
Price For All Three: 59.36

Buy the selected items together

Customers Who Bought This Item Also Bought

Product details

  • Paperback: 160 pages
  • Publisher: O'Reilly Media; 1 edition (12 Mar 2012)
  • Language: English
  • ISBN-10: 1449314635
  • ISBN-13: 978-1449314637
  • Product Dimensions: 23.4 x 17.7 x 0.9 cm
  • Average Customer Review: 4.2 out of 5 stars  See all reviews (4 customer reviews)
  • Amazon Bestsellers Rank: 155,518 in Books (See Top 100 in Books)
  • See Complete Table of Contents

More About the Author

Discover books, learn about writers, and more.

Product Description

Book Description

Exploring Complexity Science with Python

About the Author

Allen Downey is an Associate Professor of Computer Science at the Olin College of Engineering. He has taught computer science at Wellesley College, Colby College and U.C. Berkeley. He has a Ph.D. in Computer Science from U.C. Berkeley and Master’s and Bachelor’s degrees from MIT.

What Other Items Do Customers Buy After Viewing This Item?

Customer Reviews

4.2 out of 5 stars
4.2 out of 5 stars
Most Helpful Customer Reviews
8 of 8 people found the following review helpful
4.0 out of 5 stars Challenging but rewarding 3 April 2012
By mko
This one is not an easy one. Allen guides you through the various, complex, algorithms and data structures. This book is not for a beginners - you have to know Python already to solve exercises presented by author. The complexity of the book itself is also rather for slightly advanced developers. If you just start your journey with Python development it may be hard to follow.

What I liked, however, is the way Allen presents the material. He tries to show you different aspects of the development process and refers not only to computer science but to philosophy and mathematics as well. Even if you won't be able to solve all the presented puzzles it is still worth getting through the book.

Few remarks regarding what I really liked in the book. First of all, Allen provides you with lots of references. So, if you are interested in particular topic, you have plenty of sources to start with. Secondly, Allen provides you with references to Wikipedia very often. This is not regarded usually as a good source among "university like people", however I like this kind of approach a lot.
Comment | 
Was this review helpful to you?
3 of 3 people found the following review helpful
5.0 out of 5 stars Rekindled my enthusiam 14 Aug 2012
By Cyril
Format:Kindle Edition|Verified Purchase
I am currently halfway on in my CS degree, and had a few doubts that the degree (and branch of science) is any good.

I got this book a rainy evening, and went through it in a fortnight. And it made me enjoy every last bit of it. It comfortably mixes technicalities and background history of science and how the topics came to be.
More importantly, it put me back on track, showing how the science of complexity is a great topic.

I doubt it's the right book to get if you don't have any prior knowledge of the topic encompassed, but I am quite sure that Downey's earlier 'Think Python' would be a valuable introduction.

I'm currently going through the book a second time, more slowly though...
Comment | 
Was this review helpful to you?
2 of 2 people found the following review helpful
3.0 out of 5 stars kindle-edition:needs fixing 6 Feb 2014
Format:Kindle Edition
The book makes heavy use of graphics and mathematical symbols : unfortunately the kindle (I am using a Paperwhite) version doesn't render most of these symbols or graphics properly. Until the kindle edition gets fixed - I would suggest the paper version only ; the Kindle version is very difficult to comprehend at this point. I have actually submitted 'content errors' directly from my Kindle , but I never heard anything back.
Comment | 
Was this review helpful to you?
2 of 2 people found the following review helpful
5.0 out of 5 stars Critical Mass : Applied 28 April 2013
Format:Paperback|Verified Purchase
In an airport waiting for another long-haul flight, I bought "Critical Mass" by Philip Ball to get some intellectual stimulation. It gave a me a completely new view of the world: A world of complexity, evolution & emergence appeared out of the blue in the 8 hour flight. I landed with a sharp contrast in mind from the reductionist engineering background I left another continent with.
I caught myself standing in the border control queue, waving the hot air from my face with my passport, wondering: How do I apply these concepts & ideas?

Two and a half years later I know how, thanks to Allan Downey's Think Complexity. A book that takes your through a supremely structured self-learning program of getting the concepts of complex systems under your skin.

Be warned, when you start with his other books (learning python, think stats, etc.) there is no indication of the density of knowledge in this book. It is a complete course in engineering in pocket-format. It is brilliantly assembled, but don't be deceived by it's number of pages: Completing the exercises in the book will be time-consuming and it will change the way you solve problems.

I would proudly recommend it any-time to an enthusiastic Python'eer, but also warn that it is not for the faint-hearted casual reader.

Brillant assembly Allan. Thank you..!
Comment | 
Was this review helpful to you?
Most Helpful Customer Reviews on (beta) 4.4 out of 5 stars  17 reviews
22 of 24 people found the following review helpful
5.0 out of 5 stars Engaging Challenges for Experienced Python Programmers 29 Mar 2012
By Si Dunn - Published on
Are you a reasonably competent Python programmer yearning for new challenges? "Think Complexity" definitely delivers some.

Allen B. Downey's well-written new book can help you dive into complexity science and improve your Python skills along the way. It's not just another hello-world, learn-to-program-in-Python text.

"This book," Downey states, "is about data structures and algorithms, intermediate programming in Python, computational modeling, and the philosophy of science." Hello, NEW world.

His new work, he adds, sprang out of a blending of "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 usually is not taught at all."

Complexity science is the scientific study of complex systems - which can be anything from computer networks to the human brain, global markets, ecosystems, metropolitan areas, space shuttles, ant trails, and so forth. Complexity science is practiced "at the intersection of mathematics, computer science, and natural science," Downey says.

How does "the philosophy of science" fit into Downey's book? "Think Complexity" offers "experiments and results [that] raise questions relevant to the philosophy of science, including the nature of scientific laws, theory choice, realism and instrumentalism, holism and reductionism, and epistemology."

Downey's new work "picks up where Think Python left off" and is intended to appeal to the "broad intellectual curiosity" of software engineers and their "drive to expand their knowledge and skills." There are case studies, exercises, code samples and even mini-lessons within the exercises.

So, before you jump into this book, be sure you are reasonably competent at Python programming and are open to some wide-ranging challenges.

Students at Olin College, where the author is a computer science professor, wrote the case studies for this book. The case studies then were edited by Downey and his wife and reviewed by other Olin faculty members. Appendix A of this book contains a call for readers to submit additional case studies: "Reports that meet the criteria [explained in the appendix] will be published in an online supplement to this book, and the best of them will be included in future print editions."

This might be an offer -- and a Python challenge -- you can't refuse.
9 of 10 people found the following review helpful
5.0 out of 5 stars Invitation To Participate In Science & Engaging Course In Data Structures 14 Mar 2012
By Ira Laefsky - Published on
This short but extremely exciting book is simultaneously an invitation to actively participate in what Stephen Wolfram has called "A New Kind of Science", and an introduction to "Data Structures" (what traditionally has been the second course in Computer Science with an exciting new motivation. Complexity Science has been a part of the public attention since the 1992 publications of Stephen Levy's "Artificial Life" and M. Mitchell Waldrop's "Complexity"; it attempts to motivate and explain aspects of Life's Biological Processes, Economics, and Chaos Phenomena (such as weather, and fractal displays. While Wolfram's massive and influential book of 2002 vastly popularized this important new field, there hasn't been a simple way (up until now) for DIY experimenters to see on their own computers the results where a small number of simple rules leads to the most complex results and phenomena.

This book gives relatively straightforward programs in the Python Language which explain and illustrate phenomena such as Conway's "Game of Life", Wolfram's Cellular Automata experiments, and fractal graphics which can be run on a experimenter's own PC. Moreover, this book invites the reader to design their own experiments which may be published in a subsequent edition of the book and which give the real possibility of participating in new science to a moderately skilled home experimenter.

The book also importantly provides new motivation to one of the most basic skills of computer science by providing a way through which relatively simple data structures can yield important and surprising results in a variety of new science.

--Ira Laefsky, MSE/MBA
Home Experimenter formerly on the Senior Consulting Staff of Arthur D. Little, Inc. and Digital Equipment Corporation
7 of 8 people found the following review helpful
4.0 out of 5 stars Where Rubber meets the Road 30 Jun 2012
By Eric Chou - Published on
I really like this book, but I feel I could get a lot more out of this book if I had a more solid understanding that was introduced in the author's "Think Python" book. This is obviously by no fault of the book itself, just a fair warning to people whom may be in the same boat. I plan to go thru "Think Python" and re-read this book again. Readers need some intermediate Python chops and some understanding in scientific methodology prior to this book in order to maximize the benefits. And yes, as other review mentioned, plan to spend a fair amount of time to read up on all the references. I read the book digitally via Kindle app, so it was easy to link to the Wiki pages, but I can see some frustration if one was using a printed version. Also plan on doing a fair amount of coding in the exercises.

It was interesting how the author organized the idea shift in scientific thinking of the complexity science. If one is familiar with the works like Malcolm Gladwell in "Blink", "Outliers" or similarly in "Freakonomics" one can clearly related to the method of using simulation-based computational model to solve problems that are non-linear with large composite, many-to-many elements. Many of the TED talks I have seen also employed this line of method in arriving at their respective conclusions.

The middle section of the book introduced various models and approaches into solving complex problems. I absolutely love the fact that the theories were broken down into small pieces of problems that can be illustrated by small Python programs. Of the examples, the sections on Dijkstra algorithm and scale-free networks were the most interesting to me. As network engineer whom have dealt with OSPF and IS-IS on regular basis, I never thought it was possible to simulate the algorithm via Python. That was a treat. I also have some ideas inspired by the scale-free networks section that I feel I can apply to work.

Bottom line, if Professor Downey ever opens an online class for "Think Complexity" either synchronized or on UDemy I would sign up in a heartbeat. Cheers.
6 of 7 people found the following review helpful
5.0 out of 5 stars Excellent if you fulfill the entry requirements. 19 April 2012
By renaissance geek - Published on
For such a slender volume Think Complexity is a fascinating and challenging book. While being clear and well written the concepts it investigates do take some serious thinking about. Fairly high level elements of mathematics, (python) programming, computer science and philosophy are all utilised. The mathematics and programming in particular will be challenging if your not a university student, graduate or very committed enthusiast. That being said, your hard work will be more than adequately rewarded.

The book is laid out as a series of short chapters in most cases dealing with a different topic such as graphs, cellular automata and agent based modelling. Each of these chapters contains information, protocols, pointers to background reading and exercises. While this layout does work very well for university students (as it should - that's what it was written for) it does raise some problems for autodidacts. Several of the exercises require the reading of a canonical paper such as Watt's and Strogatz's Nature paper on small world networks; however if you don't have institutional access to the required journal each paper will set you back around $30. Obviously you can get round this with the help of your local library but that is time consuming and basically a bit of a pain. The final four chapter deviate from this layout, being in depth case studies for the solution of different problems.

The paper problem is really the only one I had with Think Complexity; well apart from my own limitations and a few coding problem induced headaches. If you're prepared to put in the work and have a reasonable level background knowledge in mathematics, computer science and python programming then this is an excellent and fascinating world of complexity science; made even better by the fact that there is still plenty of scope for amateur researchers to make new and exciting discoveries in the field.
16 of 22 people found the following review helpful
3.0 out of 5 stars Don't buy unless you are seriously committed to do your homework. 8 Feb 2013
By alessandro averchi - Published on
Format:Paperback|Verified Purchase
As most people these days, I spend my whole day in front of a computer, and I do most of my reading on a screen.
So when I concede myself the luxury of buying a "real" book, I expect it to be something that I can enjoy sitting on a sofa or in bed, as a stand alone item.
This book is certainly an interesting read for the topics it examines, however it completely fails on my requirements. There is not a single page in which the author is not asking the reader to go check a wikipedia page, download a scientific paper or go examine a piece of code available on the book's companion website.
This leaves the reader two choices: either do what the author is asking, sacrificing what should have been a reading session for yet another go of clicks and scrolls or (what i did) just ignore the suggestions. This will obviously make it more difficult to follow the line of thought, especially because the author many times is posing questions which have no answer in the book itself. So if you don't do the homework you never get the answer!
Overall the continuous referencing to external resources has left the feeling in me that this piece of work could have been a stimulating and interesting one if only the author had put in it the extra effort to make it a self standing reading. He could still have provided links to external resources, but only as optional.
In the end I don't recommend it unless you are really committed to following the author's path, which may be more doable for a college course type of reader than for a casual one like myself.
Were these reviews helpful?   Let us know
Search Customer Reviews
Only search this product's reviews

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
First post:
Prompts for sign-in

Search Customer Discussions
Search all Amazon discussions

Look for similar items by category