DATA 420 - Modeling and Simulation - Spring 2026

Homework #3 — Systems Dynamics Models III

Possible experience: +40XP

Due: Friday, March 13, 5pm

Enhancing the SIR model

Invent a clever name for an infectious disease. It can be light-hearted and whimsical, or grisly and macabre. Come up with some symptoms for it, and a method by which it will be passed from human to human.

Then, build upon the SIR model we did in class in the following ways:

To do

  1. On paper, or using some kind of electronic drawing tool, create a stock-and-flow diagram that enhances the original SIR diagram by including the following additional four stocks:
    1. E -- exposed individuals who are mingling in the general earth population. (As described above, these individuals do exhibit symptoms of the disease, but they are not yet contagious.
    2. QE -- exposed individuals who are isolated from the rest of humanity and are bored.
    3. QI -- infected individuals who are isolated from the rest of humanity and are bored. They are contagious, but s'aight, they're locked in a cell and can't infect anybody else.
    4. D -- dead. :(
    Obviously, your stock-and-flow diagram will also have additional flows. Consider carefully what those should be. It will also contain additional parameters (little circles). Consider carefully what those should be, and what units they should be in.
  2. For the code, begin with the SIR model we wrote in class. Do a git pull or just copy the file to your system from github.
  3. Modify your Python code to incorporate your changes to the stock-and-flow diagram.
  4. Carefully experiment with different values of your parameters to ensure that the simulation's behavior makes sense. (Take your time here. Don't rush.) Investigate anomalies and curiosities, debugging if necessary.
  5. When you're confident it passes sanity check, produce two plots:
  6. Using a word processing program, write a three-paragraph blurb of text that (1) describes your fictitious disease and its humorous and/or grisly symptoms and transmission method, and (2) summarizes in words what you learned about the model's behavior through running the simulation in the previous step. These paragraphs should be grammatically correct, with no spelling errors; they should be compelling, intriguing, inspiring, and contain writing worthy of a college student, not a high school student.
  7. Print out (on a printer) your code, your write-up, and your two plots. Staple them (with a stapler) together with your legible and beautiful stock-and-flow diagram from step 2, above.
  8. Stick your finished packet of paper in the "420" manilla envelope hanging outside my office door in James Farmer 044.

Warnings and notes

DO NOT wait anywhere remotely close to the deadline before completing your stock-and-flow diagram. You cannot do that successfully at the last minute. It will require unrushed, uncluttered, unpanicked thought to get right.

I am more than happy — nay, overjoyed — to discuss the stock-and-flow diagram with you in office hours or to answer questions about it over email. Ditto the Python implementation.

Getting help

Come to office hours, or send me email with subject line "DATA 420 Homework #3 help!!"