Epidemic Modeling

Explore the principles of epidemic modeling and the frameworks for answering important public health policy questions.



Weekly Effort

3-5 hours




Course Description

  • Explore classical epidemiology models and their variants, such as SIR and SIER, along with random graph-based contact network models, understanding the dynamics of epidemic spread from an operations perspective.
  • Investigate various interventions, capacity decisions, and observable metrics that are essential in shaping public health policy, linking theoretical models to practical applications.
  • Develop Python-based simulations for the epidemiology models, including an agent-based approach, enhancing hands-on skills and computational understanding.
  • Analyze synthetic control-based counter-factual scenarios for different interventions, equipping learners with the analytical tools necessary to answer critical public health policy questions related to epidemic spread.

What You Will Learn

By the end of this course, learners will be able to:


  • Comprehend a wide range of epidemic modeling techniques, including the SIR model, asymptomatic patient modeling, randomized testing, and the impact of quarantining and masking, building a solid foundation in epidemic theory.

  • Understand the dynamics of differential equations for epidemics, and incorporate stochasticity into the susceptible-infected-recovered model, enhancing their ability to create mathematical representations of epidemic spread.

  • Implement contact tracing and agent-based models using Python, gaining practical skills in utilizing programming to simulate and analyze real-world epidemic scenarios.

  • Utilize synthetic controls and interventions in epidemic analysis, mastering an empirical methodology for causal inference from observational data, and applying these techniques to real-world epidemic control and policy-making.


Course Outline


Module 1: Introduction

Module 2: Susceptible-infected recovered (SIR) model

Module 3: Extensions of the SIR Model

Module 4: Stochasticity in the SIR Model

Module 5: Contact tracing in the SIR model

Module 6: SEIRD model in Python

Module 7: Contact networks and dynamics of infection

Module 8: Agent-based model on a network

Module 9: Agent-based modeling (AMB) in Python


Headshot of Prof Garud Iyengar
Garud Iyengar
Tang Family Professor of Industrial Engineering and Operations Research; Senior Vice Dean of Research and Academic Programs

Dr. Garud Iyengar’s research is focused on understanding uncertain systems and exploiting available information using data-driven control and optimization algorithms.  He and his students have explored applications in many diverse fields, such as machine learning, systemic risk, asset management, operations management, sports analytics, and biology. 

Iyengar’s research group is currently working on thermodynamics of sensing and memory in cells, an automatic defensive assignment and event detection in NBA games, a deep neural-network-based framework for interpretable robust decision making, attribution schemes for allocating payment in a multi-channel advertising, systemic risk associated with extreme weather, and an NLP-based model for predicting stock performance using news reports.

Iyengar received a B Tech in electrical engineering from the Indian Institute of Technology in 1993 and a PhD in electrical engineering from Stanford University in 1998. He is a member of Columbia’s Data Science Institute. 

Vineet Goyal
Associate Professor of Industrial Engineering and Operations Research

Professor Vineet Goyal received his Bachelor's degree in Computer Science from Indian Institute of Technology, Delhi in 2003 and his Ph.D. in Algorithms, Combinatorics and Optimization (ACO) from Carnegie Mellon University in 2008. Before coming to Columbia, he spent two years as a Postdoctoral Associate at the Operations Research Center at MIT.

Please note that there are no instructors or course assistants actively monitoring this course.

Subscribe for Updates