This book is about complexity science, data structures and algorithms, intermediate programming in Python, and the philosophy of science: Data structures and algorithms: A data structure is a collection that contains data elements organized in a way that supports particular operations. For example, a dictionary organizes key-value pairs in a way that provides fast mapping from keys to values, but mapping from values to keys is generally 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, the first few chapters are about graphs, a data structure that is a good implementation of a graph---nested dictionaries---and several graph algorithms that use this data structure. Python programming: This book picks up where Think Pythonleaves off. I assume that you have read that book or have equivalent knowledge of Python. As always, I will try to emphasize fundmental 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 that is useful for simulation or analysis. Computational models are designed to take advantage of cheap, fast computation. Philosophy of science: 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. This book focuses on discrete models, which include graphs, cellular automata, and agent-based models. They are often characterized by structure, rules and transitions rather than by equations. They tend to be more abstract than continuous models; in some cases there is no direct correspondence between the model and a physical system. Complexity science is an interdisciplinary field---at the intersection of mathematics, computer science and physics---that focuses on these kinds of models. That's what this book is about.
Type of Material:
Open (Access) Textbook
Recommended Uses:
This material can be used in different ways (in-class, homework, individual, team, lecture, self-paced).
Technical Requirements:
Available online (i.e. web pages) format.
Also available as PDF: http://greenteapress.com/complexity/thinkcomplexity.pdf
Identify Major Learning Goals:
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.
Target Student Population:
College Lower Division, College Upper Division
Prerequisite Knowledge or Skills:
Basic programming knowledge is needed. Particularly, the understanding of Python code is needed.
Content Quality
Rating:
Strengths:
- Very well organized in chapters. Excellent quality examples. Very interesting examples.
- Takes a complicated topic and breaks it into easy-to-digest chapters.
- The topics cover many interesting areas, including Small world graphs, Cellular automation, agent-based Schelling's models, etc.
- It also suggests some packages available for Python, such as NetworkX.
Concerns:
A few links work but are marked as (??)
Potential Effectiveness as a Teaching Tool
Rating:
Strengths:
- This will mostly be of use to junior and senior-level college students.
- The organization and interesting examples promote conceptual understanding and increase the potential for student learning. It is also possible to take sections of the book and use that for a specific learning goal.
- Instead of using bullet-proof mathematical proof, it explains the ideas with concrete examples. Many of the ideas also described with a programming example supplemented by Python codes, which is useful for understanding.
- Some exercises are given at the end of each chapter, and the readers have to develop their own solutions.
- Also, many examples also illustrated with some figures for illustration.
Concerns:
It is not easy for students to check whether they understood the materials.
Ease of Use for Both Students and Faculty
Rating:
Strengths:
- It is very well organized i.e., chapters and sections.
- The HTML and pdf formats give users a choice in how to get to the material. The material is easy to navigate.
- The complementary website (http://thinkcomplex.com/repo) not only provides the codes referred to in the book, but also some papers and references mentioned.
- As a pdf file, it is very portable for self-reading, while the support for page navigation and cross-referencing is quite basic.
Concerns:
The material can be a bit high-level at times - but the topic is more complex and so it is understandable.
Creative Commons:
Search by ISBN?
It looks like you have entered an ISBN number. Would you like to search using what you have
entered as an ISBN number?
Searching for Members?
You entered an email address. Would you like to search for members? Click Yes to continue. If no, materials will be displayed first. You can refine your search with the options on the left of the results page.
Searching for Members?
You entered an email address. Would you like to search for members? Click Yes to continue. If no, materials will be displayed first. You can refine your search with the options on the left of the results page.