Complex Systems Summer School 2014-Tutorials
From Santa Fe Institute Events Wiki
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
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: https://www.enthought.com/products/canopy/
Another option: A lot of the brain power at Enthought left and founded Continuum Analytics to create Anaconda (https://store.continuum.io/cshop/anaconda/), a better solution than Canopy, (in Glen's humble opinion). They also created another cool tool in Wakari (https://wakari.io/).
Motivation Why agents? (http://www.brookings.edu/es/dynamics/papers/agents/agents.pdf)
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.
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 :
- QGIS here
- 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
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