Course information


Course time & location

  • Tuesdays and Thursdays, 1 - 2:30pm
  • Class will mainly be held in person, in Weiser Hall 269
  • The course will be in person, but some office hours and occasional course meetings may also be held via zoom as needed, at: https://umich.zoom.us/j/95806757765 (password information is on Canvas)

Instructors & office hours

  • Instructor: Prof. Marisa Eisenberg (she/her)
    • Email:
    • Office Hours - Weiser Hall 735
      • Typically after class, for an hour on Tuesdays and a half hour on Thursdays (but we can set up other times as needed if those don’t work)
      • Usually in person but sometimes via zoom (link above)

  • GSI: Conrad Kosowsky
    • Email:
    • Office Hours
      • Monday 3-4pm and Tuesday 10-11am in Weiser Hall 703
      • By appointment next to Weiser Hall 713

Syllabus

  • Syllabus - includes course overview, grading information, prerequisites, etc.


HW/Lab information


Course topics

Topics are subject to change and rearrangement! (We may also not get through all the topics listed)

Lecture slides, links to assignment instructions, and readings will be posted in each topic as we get to them.


1. Introduction to agent-based models (ABMs)

Topics covered: overview of basic concepts, coding intro, why model?, intro to ABMs and their pros/cons, philosophy of complex systems, emergent behavior/phenomena, classic examples in biological, social, and physical systems, etc.







2. Cellular automata

Topics covered: overview of basic cellular automata (CA) concepts, emergent behavior, classes of CA, examples of CA (e.g. Conway’s Game of Life), coding and analysis methods for CA, applications



4. Parameter sweeps, sampling, and sensitivity analysis



  • Lecture 11: Model Analysis


5. Advanced/additional topics

  • Potential Topics:
    • parameter estimation, MCMC
    • parameter identifiability & uncertainty
    • model comparison (e.g. AIC/BIC/etc)
    • decision/game theory
    • parallelization in Python
    • classic example complex systems models (Kuramoto oscillators, Sugarscape, etc.)
    • more advanced environments (e.g. GIS)
    • active subspaces, dimension reduction




  • Lecture 15: Identifiability


  • Lecture 17: ABM Environments
    • Slides
    • Intro to mapping with Folium
    • Predator-prey bubble tea example
    • Mapping tutorials
      • Making 3 Easy Maps in Python - the point map example here may be particularly useful for visualizing agents on a map (where you can define their x,y locations in terms of e.g. latitude and longitude). This uses the module folium, which is one of the common mapping packages.
      • Making maps in Basemap This is another package for mapping, and you can similarly do point maps and plot other features on the map. The syntax for basemap seems pretty straightforward, so this may be a useful package to consider also. There’s an additional tutorial for Basemap here also.

  • Lecture 18: Model selection and the AIC

  • Lecture 19: Clustering methods

Additional useful info

Useful links and extra readings will be posted here.

Coding and typesetting resources

Overall Coding Resources

ABM Resources

Math Resources


Books used in the course


Interesting papers and extra readings