Introduction
This project is about simulating the effects of a pandemic in a population. We will use a simple model where each individual is connected to six neighbors and the disease is only transmitted via these connections. The project is divided into two parts. In this first part, you will build the infrastructure for the your simulator along with a simple deterministic model that will allow testing your code. The second part will extend the first part in various ways.
Unlike the labs and homework assignment, your work will be partitioned across multiple source files using Typed Racket’s module system to organize the code. You should read the chapter on modules in the Typed Racket Guide before you begin work on the project.
Project 1 will be collected from your GitLab repository on Friday, May 14, 2021 at 6pm (extended from the original due date).
Before you begin, you should do aour local repository to get the code that we are providing.
Project organization
We have created a directory named proj1
in your GitLab repository.
In that directory are placeholder source files for the modules that
you will implement. You should start your work by doing a git pull
to download the seed code into your local repository.
-
grid.rkt
implements the central data structure used in the project. -
simulate.rkt
implements code to run the simulation. -
simple-model.rkt
implements a simple deterministic model of infection that you will use to exercise the other parts of the project. -
proj1.rkt
combines the various pieces.
We recommend that you work on these modules in the order given above.
Note
|
Remember that every file should be added, committed, and pushed! |
A note on testing modules
We strongly recommend that you implement and thoroughly test each
module before beginning work on the next.
You will want to have check-expect
tests for the functions of each
module in the modules (as you have done for single-file examples).
You should have only one instance of the (test)
command in your
code at any time.
Typically, it should be in the file that you are currently working on.