Infectious Respiratory Disease

CONTENTS OF CURRICULUM UNIT 25.05.06

  1. Unit Guide
  1. Introduction and Rationale
  2. Demographics and Student Description
  3. Content Objectives
  4. Teaching Strategies
  5. Classroom Activities
  6. Appendix on Implementing District Standards
  7. References
  8. Notes

Sickness Simulator: Modeling Infectious Disease Through NetLogo

Jiang Wu

Published September 2025

Tools for this Unit:

Teaching Strategies

Group Work

I am a huge supporter of having students work in groups. There is a wealth of literature singing the praises of group work, but here are the benefits I’ve personally seen that have shaped my teaching philosophy for computer science. Just about every student that enrolls in my computer science classes does so without any prior programming experience. Over the course of the school year, two groups begin to emerge: a group of students who seem to get it and a group of students who don’t. The group that gets it demonstrates steady progress throughout the year while the students who don’t struggle to progress even with frequent support. I’ve noticed that these struggling students frequently resort to trial and error to solve their problems, and even when trial and error works, they don’t pause to understand why the solution worked. If trial and error doesn’t work, they might simply give up. On the other hand, the students who succeed don’t immediately look for an answer, but first come up with a logical strategy on how to get to the answer. I believe their ability to mentally reason out the flow of the problem from one step to the next is one of the keys to their success. Even if their plan doesn’t work, they see the error log as more than just “this is wrong”, but as clues to help debug their code. More often than not, the error log will identify the line of code that’s causing the bug, as well as the type of bug it is.

Working in groups is an elegant solution that for many of these issues, as long as the task is groupworthy and not menial. When forming groups, I always include at least one low performing student in each group. It’s also very rare for me to have more than four people in a group, because I believe anything more than four dilutes individual accountability. For struggling students who are still willing to try, watching the stronger student in their group work provides real-time scaffolding. Often, questions will get asked and misconceptions get corrected before they snowball. As long as the group works closely together, the task is kept in the low performing students’ zone of proximal development, which is where the material is challenging but still attainable. It also helps with the issue of students giving up early when they run into a challenge they can’t initially overcome. The high performing students also benefit, just in other ways. Explaining their thoughts forces them to slow down and consolidate their own knowledge. This learning by teaching is a well-documented effect that deepens conceptual understanding and improves long term retention36. Acting as a mentor to their peers also hones soft skills such as empathy, code review, and technical communication, all of which are prized in real software teams. With the right group, students are typically willing to bounce ideas around, making the obstacle a great learning opportunity. My role as the teacher becomes more of a facilitator to make sure all groups are working well, rather than someone who provides direct instruction.

Providing Starter Code

When teaching programming, I like to provide students with some starter code. This makes a lot of sense when considered from the student’s perspective. You’re a novice programmer and are faced with the daunting task of programming an SIR model. How do you even start? For this project, students will be able to use the premade epiDEM model from NetLogo’s model library as a reference and as a starting point. Having a fully functional model and all the code that comes with it removes much of the blank screen anxiety that beginner programmers face. Students are able to immediately tinker with the model, observe results, and build confidence. When they inevitably forget a key piece of NetLogo syntax, such as how to assign a value to a variable, they can use the code in the epiDEM model as a reference. The model also serves as a visual benchmark. While students’ own simulations will differ in details, they can use epiDEM to get an idea of what their finished project should resemble. And last, there are a few mathematical concepts required for SIR models, such as differential equations, that are beyond the scope of the class this curriculum unit might be taught in. With those equations already embedded, students can explore how they operate without having to derive them from scratch.

Comments:

Add a Comment

Characters Left: 500