# Infectious Disease Simulation

## Introduction

Contagions are spread among humans in various ways, including direct contact, communication through aerosols (e.g., coughing and sneezing), and communication through other indirect methods, such as mutual handling of objects. This simulation is a grossly simplified approximation of contagion spread through close proximity, which is a mix of the first two methods.

The speed and extent to which a disease spreads depends on many factors, including the susceptibility of humans in general, the level of immune response of individuals, and environmental conditions which promote or inhibit some or all of these factors. Note that there is a difference between the ability of a pathogen to spread -- the ability to become epidemic or pandemic -- and the seriousness of its infection.

The ability of humans to recover from an infectious disease also depends on several factors, including the general virulence of the pathogen, the individual’s immune system response to react to the pathogen and spontaneously recover, and the ability of the individual’s immune system to respond with the assistance of medical treatment.

## Specification

• This simulation design will treat the ability of a pathogen to spread as a single probability, rather than attempt to handle the multitude of complex factors. Similarly, this design will also treat the virulence of the pathogen as a single probability.
• In this basic design, people -- both sick and well -- will move randomly in the worksheet, in contrast to real-life situations, in which well people (hopefully) attempt to avoid contact with sick people, and in which sick people seek medical attention. In addition, in this simplified simulation, infected people will either recover spontaneously or die.
• Sick people remain sick and continue to move about until they either recover or die. The simulation requires a timer for each sick person to determine the end of that person's illness.
• The simulation will track the number of sick people, well people, and deaths. The simulation should terminate automatically when there are no more sick people, either because all sick people have recovered or all people have died.

## Computational Thinking Patterns Used in this Design

In the simplied version of the design, only one computational thinking pattern is used:

• Collision: Sick people collide with well people, causing infection.

Implementation of various extensions (see below) would result in use of additional patterns, such as:

• Transport: A model addressing the spread of disease due to people traveling between countries would use this pattern to transport a sick person across a normally effective geographic boundary.
• Collaborative Diffusion: A model which permits sick people to seek medical attention would use this computational thinking pattern to allow the existence of a medical center to be known from a distance. A model which permits well people to avoid sick people would also use this pattern.
• Hill climbing: A model which permits sick people to seek medical attention, as well as one which permits well people to avoid sick people, would use this computational thinking pattern.

## Possible extensions

This example is not intended to accurately simulate the spread of a real infectious pathogen. Rather, it is an example of how to construct a simulation of this type. There are many possible extensions to this simulation to make it closer to reality. However, there are many more variables involved in a real disease, as well as in real human responses to infection. Thus, an accurate simulation would be significantly more complex than the model in this example. That said, some possible extensions to this example simulation are listed below.

• There could be a medical center to permit a sick person to seek medical attention if spontaneous recovery does not occur. Depending on the person’s distance from the medical center at the time of infection, there may or may not be sufficient time (simulation cycles) for the person to reach medical treatment.
• There could be an incubation period, after which an infected person becomes contagious.
• The simulation could be made more game-like by introducing a doctor agent, controlled by the cursor keys, can move to sick persons and deliver treatment. Such a person will recover, based on the attribute which controls response to treatment.
• The simulation could allow for vaccination and could handle the initiation of a vaccination program based on the current level of population infection. Vaccination activity could wax and wane as a function of the current number of sick people, as well as the level of immunity present due to recoveries from infection.
• The simulation could attempt to handle the concept of transportation of disease across normally effective boundaries (such as oceans), by modeling people using air or sea travel between countries.
• The simulation could track the number of total infections and recoveries, as well as the current numbers of sick/well people. This could be done by maintaining counters as people become infected and recover (or die), or by using a “check-in” message to all persons, which then respond by updating the respective counter simulation properties.
• The simulation could treat the concept of immunity, in which a person, once infected and recovered, is immune to subsequent infections.
• Visible counters could be added to the worksheet or dynamic plotting of one or more of the counter simulation properties, to permit a more visible display of these properties.

## Acknowledgements

• Simulation and tutorials were built by Fred Gluck and Ashok Basawapana.