Skip to content

Latest commit

 

History

History
27 lines (14 loc) · 3.77 KB

README.md

File metadata and controls

27 lines (14 loc) · 3.77 KB

CAS 503: Collectives

This repository contains coding examples and exercises for Arizona State University's course CAS 503 — Fundamentals of Complex Systems Science: Collectives.

Instructor: Bryan Daniels

Course Description

From neurons in a brain to fish in a school to people in an economy, collectives are all around us. These are complex systems in which we understand in some detail how the individual components behave and interact, but the behavior we are interested in is at the larger scale of the aggregate. The behavior of systems like these is challenging to predict and understand largely due to the sheer number of interacting components, as well as the unintuitive way that contributions from individuals scale up to have large collective effects.

Complex systems science has developed an array of conceptual tools to help understand collective behavior. In this class, we will explore these foundational concepts, including emergence, scaling laws, dynamical modes, and coarse-graining. We will use these tools to de-mystify powerful aggregate-scale effects, from impressive feats of swarm intelligence to potentially harmful instabilities and hysteresis.

Getting Started

This course will use coding examples and exercises written in the programming language Python. We will typically run Python code using interactive Jupyter notebooks, a convenient format that allows for running and saving Python code along with results that the code produces. This github repository contains a collection of Jupyter notebooks that we will use in class.

Setting up Python and Jupyter

To run Python and Jupyter on your own computer, we recommend installing the Anaconda package, available for Windows, Mac, and Linux here: https://www.anaconda.com/products/distribution

If you already have a different favorite way of running Python code, feel free to use what you are most comfortable with. We will identify any dependencies on packages outside of Python and Jupyter so you will know exactly what you will need (likely standard data science packages included in Anaconda such as numpy, matplotlib, and pandas).

Setting up this git repository

The simplest way to access the code in this repository is to download a zip file containing all its files by clicking the green "Code" button and then "Download ZIP" on the webpage for this repository: https://github.com/bcdaniels/CAS-503-Collectives . Once you have downloaded the zip file, you will need to open it to "unzip" it, which will create a folder called CAS-503-Collectives-main. All code and data for the course are in this folder. Within the folder, you can open each notebook file using Jupyter to complete the python assignments. Note: The notebook files depend on other code that is within the downloaded folder, so you will need to leave the notebook files in the folder for them to work. You can move the entire CAS-503-Collectives-main folder elsewhere on your computer, but moving files within or out of that folder will lead to problems.

A perhaps better way to access the code is to use git, a widely-used tool for version control. This is not required for the course, but it is something you will definitely want practice using if you are aiming for a career involving any kind of collaborative coding. Running git clone https://github.com/bcdaniels/CAS-503-Collectives.git at a command line will create a subdirectory containing a copy of the code as a full git repository, with all the version control powers that entails. There are plenty of places to get introduced to the basics of git. A good start would be to review the basic git commands and the popular github workflow.