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 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 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:
The material can be used in-class, individual, and self-paced.
Technical Requirements:
From this site can read online or download as PDF
Identify Major Learning Goals:
It is a self-contained book. When the reader follows the book chapter by chapter, the learning goals are expected to be achieved. Specific learning goals are:
1. Understand the discipline of complexity science
2. Explain complicated behaviour in the real world using simple models
3. Learn about diverse physical and social systems, develop and apply programming skills, and think about fundamental questions in the philosophy of complexity science
4. Practice programming in Python, and learn more about data structures and algorithm
Target Student Population:
College Lower Division, College Upper Division, Professional
Prerequisite Knowledge or Skills:
Basic understanding of computer programming language, such as python, helps significantly in acquiring the concepts presented.
Content Quality
Rating:
Strengths:
The concepts of the time complexity are described in good details.
Readers should be able to grasp the ideas on the topics presented.
The level of difficulty of the content is appropriate for the target audiance, but the prior concepts of the data structure will be needed in some topics.
Some sample code for illustrating the concepts are provided in the presented topics.
Content is clear and easy to follow
Content is supported by appropriate research
Concerns:
Content could be more extensive
Potential Effectiveness as a Teaching Tool
Rating:
Strengths:
The learning objectives of each chapter are explicited in the start. If added, it will further enhances the reader to grasp the main idea before going the details.
The book promotes the understanding of the significance of the time complexity without using scaring mathematics. It helps to readers to get interested on the topic instead of being derailed due to difficult proofs.
It provides some exercises within a chapter for concept reinforcement. They are mainly help to reader to recall to the key points in the sections.
The readers are guided to read the content sequencially, as there are not many cross references linked by hyperlinks.
The material builds well on prior concepts.
The material can be easily integrated into curriculum assignments.
The material is enjoyable and engaging.
Concerns:
The material could be more interactive
Ease of Use for Both Students and Faculty
Rating:
Strengths:
There are samples codes, mainly in python, available for readers to download. For easier, the codes are usually linked with hyperlinks, but they do not.
For interactive learning, more interactive contents are expected.
The quality of the exercises is high.
The layout of the textbook is appropriate.
The content is current and plenty of hyperlinks for further reading.
Concerns:
The images could be improved
The online version could leverage interactive learning objects
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.