Course information

Course time & location

  • Tuesdays and Thursdays, 1 - 2:30pm
  • 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: (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 or an hour on Thursdays depending on the week (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
      • Regular office hours: 703 Weiser Hall
        • Tuesday 10:30am-11:30am
        • Tuesday 3:30pm-4pm
        • Thursday 3:30pm-4pm
      • By appointment in 715A Weiser Hall


  • 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

  • Jeff Dunworth Guest Lecture - Computational neuroscience: how network structure impacts function

  • Lecture 11: Analyzing Model Outputs

5. Parameter estimation from data

Topics covered: parameter estimation, MCMC, parameter identifiability & uncertainty, model comparison (e.g. AIC/BIC/etc)

  • Lecture 16: Model selection and the AIC

6. Advanced/additional topics

  • Potential Topics:
    • decision/game theory
    • chaos and fractals
    • classic example complex systems models (Kuramoto oscillators, Sugarscape, etc.)
    • more advanced environments (e.g. putting ABMs on GIS)
    • active subspaces, dimension reduction
    • model selection
    • clustering, PCA
    • machine learning and complex systems
    • webpage scraping, basics of API’s, pulling data from various places (social media, google, government sources)

  • Additional Materials: ABM Environments and Mapping/GIS
    • 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.

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