This preview shows pages 1–6. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: Computational Modeling and Complexity Science Version 0.0.10 Computational Modeling and Complexity Science Version 0.0.10 Allen Downey Green Tea Press Needham, Massachusetts Copyright © 2008 Allen Downey. Printing history: Fall 2008: First edition. Green Tea Press 9 Washburn Ave Needham MA 02492 Permission is granted to copy, distribute, and/or modify this document under the terms of the GNU Free Doc umentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no FrontCover Texts, and with no BackCover Texts. The GNU Free Documentation License is available from www.gnu.org or by writing to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 021111307, USA. The original form of this book is L A T E X source code. Compiling this L A T E X source has the effect of generating a deviceindependent representation of a textbook, which can be converted to other formats and printed. The L A T E X source for this book is available from http://greenteapress.com/compmod Preface 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 or ganized in a way that supports particular operations. For example, a dictionary organizes keyvalue 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 coevolution 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 simu lation or analysis. Computational models are designed to take advantage of cheap, fast com putation. 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 approx...
View
Full
Document
This document was uploaded on 08/10/2011.
 Spring '11
 Algorithms

Click to edit the document details