Complex Systems Summer School 2014-Tutorials

From Santa Fe Institute Events Wiki

Complex Systems Summer School 2014

CSSS participants come from a wide range of disciplines. Participants are encouraged to share their knowledge by organizing their own tutorials.

You can schedule your own tutorial here, they will be held in the ESL study hall.

Tutorial: Rotors, Spirals and Scroll Waves

Speaker: Hiroshi Ashikaga
Date & Time: June 16 from 2:00-2:30pm
Content: A short introduction to cardiac electrophysiology and basic mechanisms of arrhythmia.
Motivation: To get more people interested in the heart as a complex system.
Prerequisite: Whoever has a heart.
References: This is a short list of reference papers for those interested in the topic. I am happy to review them and discuss with any of you if you are interested.

1. Winfree File:1989 WinfreeA JTB.pdf
2. Gray et al. File:1998 GrayRA Nat.pdf
3. Garfinkel et al. File:2000 GarfinkelA PNAS.pdf
4. Qu et al. File:2000 QuZ ABME.pdf
5. Fenton et al. File:2002 FentonFH Chaos.pdf
6. Weiss et al. File:2005 WeissJ Circ.pdf
7. Schotten File:2011 Schotten PR.pdf
8. Pandit and Jalife File:2013 Pandit CircRes.pdf

Tutorial: Browser-Based Data Visualization

Speaker: James Gentile
Date & Time: June 17 form 7:00-8:15pm

Data visualization is essential for analysis and communication but complex data often need complex visualizations. Interactive browser-based visualizations are unique because they can be viewed using (almost) any web browser. This tutorial will introduce d3.js, the JavaScript library behind many of the web’s great data views.

No JavaScript experience is required. I’ll be introducing the language, concepts and we’ll build an interactive visualization for delayed-point embedding.

If you’re planning to attend, I recommend downloading Firefox and a syntax-highlighting editor: TextWrangler for Macs or Notepad++ for Windows. These will help you follow along.

Tutorial: Parallel Programming - A Brief Introduction

Speaker: Fahad Khalid
Date & Time: June 18 7:00-8:15pm
Content: A language agnostic introduction to basic concepts in parallel programming.
Motivation: Several of us here at the CSSS do compute intensive simulations. Since single cores are not getting faster anymore, the only way to speed up simulations is by utilizing multiple cores. So it's good to know how to design and code a simulation that can take advantage of multiple cores.
Pre-requisites: Just a passing familiarity with programming.
Slides: File:Fahad CSSS-2014 ParProg.pdf
Please use the comments sections below to let me know what you'd like to hear, what are your expectations from this tutorial, etc. I'll try my best to tailor the talk accordingly. Many thanks to those who've already suggested content for the talk. I'd appreciate if you could repeat the comments here as well (the CSSS Wiki seems to be a lot more organized than my brain :-)).


  • Please cover race condition.
  • Generalized strategies for how a problem should be parallelized.
    • Identifying problems that cannot (or should not) be parallelized.
  • GPU vs CPU parallelization (e.g., CUDA vs traditional compute cluster)
  • parfor in Matlab

Tutorial: Introduction to Agent-based Modeling with Python

Speaker: Vipin P. Veetil
Date and Time: June 19 4:15-5:15pm
Description: In this tutorial we will build a ABM of Rock-Papers-Scissors game. We will learn how to initialize agents, get them to play with each others, record payoffs and develop different strategies. We will also learn how to get agents to play games on network using NetworkX.
What to do before tutorial: Download and install python and an editor. This is one option:
Another option: A lot of the brain power at Enthought left and founded Continuum Analytics to create Anaconda (, a better solution than Canopy, (in Glen's humble opinion). They also created another cool tool in Wakari (

Motivation Why agents? (
For time-constraint people, here is a two-page pamphlet in the SFI tradition arguing for the importance of ABM in economics File:Foley09 Econ needs ABM.pdf.

Game Tournament: At the end of the tutorial I will introduce you to the "Non-prisoners dilemma" game. I'll be running a tournament between different strategies. You are invited to submit a strategy for the tournament. More details soon.

Code for tutorial:

Tutorial: Introduction to Python and its scientific programming ecosystem

Speaker: Stefan Pfenninger
Date & Time: June 23 4:15-5:15pm

Description: High-level introduction to what Python is, what the major components of the scientific Python ecosystem are, and what the easiest (in my opinion) way is to start using it productively. Some simple examples will be shown. Participants should walk away equipped with the knowledge necessary to further explore on their own. Depending on the outcome of this session, we might follow it up with a hands-on session later in the week.

Audience: Ideally have at least basic skills in another programming language, and be interested in getting a quick, structured intro to Python, with links to where to find further information.

Slides: File:Python intro.pdf, and download the CSV file for the NetworkX example

Tutorial: Computing with Intrinsic Dynamics of Systems

Speaker: Alireza Goudarzi
Date & Time: June 23 7:00-8:15pm

Tutorial: Claire Lagesse - Introduction to Geographic Information Systems (GIS)

Speaker: Claire Lagesse
Date and Time: June 24 7:00-8:00pm

If you are willing to attend... Please download :

  • some data with this link

Tutorial: Using an Apple (or any Unix-based) terminal

Speaker: Anna Olson
Date and Time: June 25 from 6:00-6:30pm

I'll be giving you a brief introduction to using the Apple Terminal. Just bring your Apple laptop and be ready to learn! Really, I'll be teaching a little bit of bash, but don't worry if you don't know what that means.

NON-APPLE USERS: You're welcome too, provided that you have a command-line interface that uses bash. Windows users, you can use GitBash for this (left column, under "The Bash Shell"). Thanks to Diego for pointing this out.

Here's a PDF of my slides: File:Terminal tutorial.pdf

Tutorial: Mathematica

Speaker: Massimo Stella
Date and Time: June 26 from 1:30-2:30pm

Tutorial: Modeling (biological) cells with the Cellular Potts Model

Speaker: Renske Vroomans
Date and Time: July 1 from 7:00-8:00pm

I will give a brief and practical primer about modeling cells with CPM. You'll get a broad idea of how the formalism works, and what the possibilities are. If I manage to update my code on time, you can also get some hands-on experience in playing with the model.

Tutorial: Data manipulation and basic statistics in R

Speaker: Cecilia Andreazzi
Date and Time: June 31 from 4:15-5:15pm

Discussion: Capital as Power - a new approach to political economy(?!)

Date and Time: Sunday, June 29, 7:00-8:15pm
Some background