This course gives you a hands-on experience in creating models for complex systems. Roughly speaking, a complex system is one in which many interacting entities give rise to aggregate behaviors or patterns. Examples include molecules in a biological or molecular system; the flocking behavior among migratory birds; segregation behavior among people; the spread of information or disease in human networks; and patterns of traffic flow in a system of cars on a road network; to name just a few.

You will learn several basic methods relevant to the modeling of complex systems and how to implement those models on a computer. The “end-product” of the course will be a series of projects of increasing complexity, in each of which you build a computer-based simulation of some kind. You’ll get to choose your own final project, which you will write and present to your peers; our hope is that this project is substantial enough to become a part of your coding portfolio, because life is too short to waste time only on canned assignments!



Here is what you’ll need to get started.