4pm - 5:30pm, Tues. and Thurs.
Weiser 747
- Instructor: Lynette Shaw
- Office Hours: Weds. 10am-12pm
- Office: Weiser 719
- Email: [email protected]
This course will offer an introduction to using computational approaches to explore and model complex systems. Its primary purpose will be teaching you how to develop and analyze your own agent-based models (ABM). In the course of pursuing this goal, we will touch on several other subject areas such as networks, basic probability distributions and statistics, a number of topics from computer programming, and a review of important ABM papers. In order to give you the technical skills required to build your own ABM, this course will focus on developing your competency in two programming languages/platforms: Netlogo and Python.
This course will NOT be focusing on formal mathematical models of complex systems such as equation-based models of dynamical systems or other approaches often focused on in standard engineering courses. If you expect that the systems in which you are interested might be better captured by such models, definitely take some time to consider if this is the course for you.
The goal of this class is that by the end of the semester, you will have developed and analyzed an ABM of your own that will be useful to you in your future research.
Prior coursework in Complex Systems is not required for this course, but hopefully you are coming in with some significant interest in the field. Some prior experience with at least beginner-level programming and basic statistical and math concepts is strongly encouraged. Having said that, the usual expectation for this class is that students will be coming in with a wide range of experience in these areas, so we will consequently be starting with the basics and then quickly working up to more advanced material. As such, even if you are coming in with only a bit of background, you should still be able to succeed in this class if you are willing to put in the effort. The payoff for doing so will be leaving this course with both your own ABM and an extremely useful new set of skills!
The main emphasis of this class will be on getting you a lot of hands on experience working with, building, and analyzing computational models of complex systems. We'll be spending a lot of time in the computer lab going over code together and then having you work on examples either on your own or in small groups. The other big portion of our class time will be spent discussing and unpacking the theory behind modeling and going over examples of prominent, established models in the field. I will include short lectures on the material, but the bulk of this part of the class time will be spent on your comments and questions about the material.
Your course grade will be structured per the following:
Assignment | Percent of Course Grade |
---|---|
Class Participation and Discussion | 10% |
Netlogo Exercise Set | 10% |
Python Exercise Set | 10% |
Project Brainstorm and Lit Review | 10% |
5 Min. In-Class Brainstorm | 5% |
Project Proposal | 20% |
Final Project | 35% |
Readings will consist of selected articles and chapters from the following textbooks:
- Think Complexity by Allen Downey (http://greenteapress.com/wp/think-complexity/)
- Think Python by Allen Downey (http://greenteapress.com/wp/think-python/)
- Introduction to the Modeling and Analysis of Complex Systems by Hiroki Sayama (http://textbooks.opensuny.org/introduction-to-the-modeling-and-analysis-of-complex-systems/)
- An Introduction to Agent-Based Modeling by Uri Wilensky and William Rand (digital version available via UMich Library)