COVID-19 educational module

WW3 by S Eddy

Note: The basic reproductive number is a key measure of how rapidly an epidemic spreads. Some researchers use a value of roughly 2.6 for this parameter. However, the correct value is probably about 5.7 (see Sanche et al, 2020).

This value can be computed from three assumptions:

  • the average incubation period is about 5 days;
  • the average recovery time for patients who do not require hospitalization is about 10 days;
  • the average amount of time required for hospitalizations to double in the earliest stage of the epidemic is about 3.5 days.


Are you looking for materials for online teaching in mathematics, biology, or public health? These COVID-19 educational modules by Professor Glenn Ledder can fill this niche while helping students learn about what is going to be a defining event in their lives and in human history. A program-based version (Matlab and R) is accessible to students who have had a first course in calculus. A spreadsheet-based version was designed to be accessible to students in courses at the level of calculus and below, including high school science and mathematics courses and college courses for non-majors.

The spreadsheet version embeds a simple model designed specifically for the COVID-19 pandemic into an environment where students can easily design experiments and observe outcomes. There are 5 primary files, along with brief instructor notes:

  1. A brief Powerpoint introduction;
  2. A Student Notes document that outlines the model and some details about the module;
  3. An Excel workbook;
  4. An Instructions document that explains how to use the workbook;
  5. An Experiments document that describes 7 different experiments and contains a large number of questions. Some questions check the accuracy of public statements that have been made about the pandemic, while others explore the impact of public health policies.
The program version is similar, except that the coding is done in Matlab and R using programs designed so that modifications for different experiments require very little additional coding.

  • Watch the 3-minute overview of the spreadsheet version. The overview is for version 1.0. The current version 1.2 is only slightly different from the original.

The Excel Workbook

The principal component of the Excel workbook is a “sandbox” top sheet that serves as an MUI (model-user-interface). On it, you define an experiment consisting of up to three scenarios, and you get the results in the form of three numerical quantities and two graphs. Ten of the parameters are fixed for the whole experiment, leaving five parameters that can be varied to differentiate the scenarios:

  1. The contact factor, which measures social distancing. This parameter ranges from a value of 1 for interpersonal contacts at the normal rate and a value of 0 for total isolation.
  2. The fraction of symptomatic people who are isolated without hospitalization, roughly equivalent to the fraction who are tested for the virus.
  3. The fraction of asymptomatic people who are isolated without hospitalization, which is only meaningful if these cases are found through contact tracing.
  4. The number of days required for the numbers of infections and hospitalizations to double. This parameter is the best measure of the growth rate of the infection, and it can be used to estimate the basic reproductive number.
  5. The fraction of the population that is initially immune, which is useful for exploring the effect of a future vaccination or sufficient spread of the virus to allow for some herd immunity.

Three outcomes are reported in the sandbox sheet for each scenario:

  1. The percentage of the population that remains susceptible at the end of the year-long simulation. This is a broad measure of the risk that still remains at the end of the simulations.
  2. The percentage of the population that dies from COVID-19. This is a good measure of the human cost of the epidemic.
  3. The maximum number of people who need to be hospitalized at any one time. This is one possible measure of the stress the epidemic places on the health care system.

There are also four graphs, one for the percentage of susceptibles, one for the total US deaths, one for the number of new cases per 100K people, and one for the number of hospitalizations per 100K people.

  • Watch the 5-minute demonstration video. The demonstration is for version 1.0. The current version 1.2 is only slightly different from the original.

The Matlab/R Program Suites

The Matlab and R versions consist of a computational function covid19_sim, along with three driver scripts that allow the user to specify values for the five parameters listed in the summary of the Excel version. Other parameter values are hard coded in covid19_sim, but of course they can be changed there. The driver scripts offer different ways of exploring the model.

  1. COVID19_simtest uses one set of parameter values to output a full table of data, key outcomes, and graphs;
  2. COVID19_simplot allows one parameter to take a small number of values so that the graphs show the effect of that parameter;
  3. COVID19_paramstudy systematically varies one parameter to produce graphs of key model results as a function of that parameter.

Module Materials

Excel Version 1.2, posted on November 17, 2020.

Matlab/R Version 1.2, posted on November 17, 2020.

The modules will be updated as needed, with changes recorded in a version history (see below).

The answer keys are available only to teachers. Send your request to

The Model

Simple differential equation models in epidemiology are typically designated by a set of letters indicating the different classes into which the population is divided. The most basic model is SIR, for Susceptible, Infective, and Removed. A slightly better model for many diseases is SEIR, where the extra class, called Exposed, is for people who have contracted the disease but cannot yet transmit it to others. More complicated models can be created by adding more classes or additional features. The COVID-19 model used in the module is of a type we could call "SEAIHRD". Compared to SEIR, the infective class is divided into three subgroups: A for asymptomatic infectives, I for symptomatic infectives, and H for patients requiring hospitalization. These groups differ in their contact rates, the extent to which they can transmit the virus, and the course of their disease. The traditional Removed class is subdivided into a Recovered class and a Deceased class. This does not change the model structure, but it does remind us that the number of people who die is a very important outcome.


Feedback is welcome on both the model and the educational modules that use it, as well as contributions of additional experiments for the module. Send comments to

Version History

  1. 1.0, April 8, 2020
  2. 1.0.1, April 10, 2020: fixed typos and added data tables to the Experiment document.
  3. 1.0.2, April 29, 2020: fixed error in data for Experiment 6.
  4. 1.1, May 10, 2020: changed some parameters, added testing of asymptomatics, added a contact tracing experiment.
  5. 1.1.1, May 13, 2020: corrected a slight error in the workbook and updated the instruction file.
  6. 1.2, November 17, 2020: full overhaul with some changes in input and output quantities; new Matlab/R version added.

Other Materials