Think Complexity: Complexity Science and Computational Modeling, Second Edition

This book is about data structures and algorithms, intermediate programming in Python, complexity science and the philosophy of science.

**Tag(s):**
Algorithms and Data Structures

**Publication date**: 12 Mar 2012

**ISBN-10**:
1449314635

**ISBN-13**:
9781449314637

**Paperback**:
160 pages

**Views**: 13,503

**Type**: N/A

**Publisher**:
O’Reilly Media, Inc.

**License**:
Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported

**Post time**: 09 Jun 2009 04:38:15

Think Complexity: Complexity Science and Computational Modeling, Second Edition

This book is about data structures and algorithms, intermediate programming in Python, complexity science and the philosophy of science.

You are free to:

Share — copy and redistribute the material in any medium or format

Adapt — remix, transform, and build upon the material

The licensor cannot revoke these freedoms as long as you follow the license terms.

Click**here** to read the full license.

Share — copy and redistribute the material in any medium or format

Adapt — remix, transform, and build upon the material

The licensor cannot revoke these freedoms as long as you follow the license terms.

Click

Excerpts from the Preface:

Allen B. Downey wrote:This book is about data structures and algorithms, intermediate programming in Python, complexity science 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 an 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 (nested dictionaries) that is a good implementation of a graph, and several graph algorithms that use this data structure.

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. 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 I will present 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.

There are two kinds of computational models:

Continuous:

Many computational models compute discrete approximations of equations that are continuous in space and time. For example, to compute the trajectory of a planet, you could describe planetary motion using differential equations and then compute a numerical approximation of the position of the planet at discrete points in time.

The fields of numerical methods and scientific computing tend to focus on these kinds of models.

Discrete:

Discrete models 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.

And that’s what this book is about.

Tweet

About The Author(s)

Allen B. Downey (born May 11, 1967) is an American computer scientist, Professor of Computer Science at the Franklin W. Olin College of Engineering and writer of free textbooks. Downey received in 1989 his BS and in 1990 his MA, both in Civil Engineering from the Massachusetts Institute of Technology, and his PhD in Computer Science from the University of California at Berkeley in 1997.

Book Categories

Computer Science
15
Introduction to Computer Science
32
Introduction to Computer Programming
52
Algorithms and Data Structures
25
Artificial Intelligence
24
Computer Vision
30
Machine Learning
6
Neural Networks
22
Game Development and Multimedia
25
Data Communication and Networks
5
Coding Theory
16
Computer Security
9
Information Security
35
Cryptography
3
Information Theory
17
Computer Organization and Architecture
22
Operating Systems
2
Image Processing
11
Parallel Computing
4
Concurrent Programming
22
Relational Database
3
Document-oriented Database
14
Data Mining
16
Big Data
17
Data Science
23
Digital Libraries
22
Compiler Design and Construction
26
Functional Programming
11
Logic Programming
26
Object Oriented Programming
21
Formal Methods
70
Software Engineering
3
Agile Software Development
7
Information Systems
5
Geographic Information System (GIS)

Mathematics
67
Mathematics
14
Algebra
1
Abstract Algebra
27
Linear Algebra
3
Number Theory
8
Numerical Methods
2
Precalculus
10
Calculus
3
Differential Equations
5
Category Theory
10
Proofs
19
Discrete Mathematics
24
Theory of Computation
14
Graph Theory
2
Real Analysis
1
Complex Analysis
14
Probability
45
Statistics
7
Game Theory
5
Queueing Theory
13
Operations Research
16
Computer Aided Mathematics

Supporting Fields
21
Web Design and Development
1
Mobile App Design and Development
28
System Administration
2
Cloud Computing
10
Electric Circuits
6
Embedded System
27
Signal Processing
4
Network Science
3
Project Management

Operating System
Programming/Scripting
6
Ada
13
Assembly
34
C / C++
8
Common Lisp
2
Forth
35
Java
13
JavaScript
1
Lua
15
Microsoft .NET
1
Rexx
12
Perl
6
PHP
68
Python
12
R
1
Rebol
13
Ruby
2
Scheme
3
Tcl/Tk

Miscellaneous