Mathematical Models, Fall 2018
Projects
Skip to: Project 1Project 2

Rationale:

Mathematical Modeling is a unique math class since its goal is to give you the tools necessary to use mathematics outside of school. The language of mathematical modeling is the language that real-world companies and business managers understand. If you are trying to convince your boss that she or he should follow a course of action that you suggest, you will need to justify yourself; basing your reasoning on a mathematically-sound model can provide the basis of your justification.

In this class, you will be creating two mathematical models based on the material that we learn throughout the semester. I would like to extend a large thank you to Allen Downey at Olin College who has been extremely generous in providing materials from when he taught this class.

Project 1: Population Dynamics
Overview

You will be creating and analyzing a population dynamics model, using Chapters 5–8 of the ModSimPy book as your starting point. The book analyzes various models based on explicit assumptions that have a basis in the real world. Your project will also relate to population dynamics and be based in real world assumptions, but you will have some choices about the population(s) you model and the type of model you build. Here are three possible themes to consider:

Option A: Further World Population Investigations

The first option is to ask and answer an interesting question about the human population on Earth. Most likely, you will take the model developed in the book and either apply it to a different population, or extend it to include additional features, or both. For example, you might identify the regions that will have the biggest effect on future population growth and model them in more detail. Or you might identify factors that have the biggest effect on growth and add them to the model.

Search online to find data relevant to the questions you want to answer. Here are two helpful links:

Option B: Stochastic Population Models

As we saw in the bike share example of Chapters 1 and 2, random processes can lead to a range of predicted outcomes. The main idea of the second project option is to apply this logic to population growth. Instead of a deterministic growth rate, consider a model in which the growth rate for each time period is drawn at random from a probability distribution (which might in turn be estimated from empirical data). This assumption might be motivated by factors that affect the growth rate in ways that vary from year to year, such as the amount of fishing activity in a marine habitat.

One of the interesting questions you can address using a stochastic population model is the likelihood of a population dying out (in the sense of extinction for an entire species, or simply collapse to the point that a population in a given area can no longer sustain itself). You do not need to restrict yourself to human populations. You will find that there is a wealth of information (including time-series data) available for many different species in many areas of the world. For example, if you were interested in fish populations, here are some useful resources:

Option C: Predator–Prey Dynamics

As a third option for the project, you might choose to investigate the interactions between multiple species. Can you determine the populations of two competing species by using a deterministic or probabilistic model? Just as in the other two options, you will be required to use real world data and realistic assumptions to model their interaction.

Groups

You will work in a group of at least two and at most three people. It is important that you choose a group of people with whom you can work well. You will have to meet outside class with your groupmates throughout the next few weeks. Together you will come up with a project topic (vetted by Prof. Chris), determine the mathematical model you wish to study, collect relevant data, program a simulation in Python, and present your results to the class.

Timeline
  • Initial Planning due Monday, October 1:

    Decide who you want to work with on your project and decide which of the project options you are most interested in pursuing.

  • Dataset and Brainstorming by Wednesday, October 3:

    For this day, you and your groupmates will have started collecting data and brainstorming the topic you wish to work on for your project.

  • Project Statement and Imported Data by Wednesday, October 10:

    Work on the First Cut Model worksheet in class on October 3 and turn it in on October 10. By this date, you must have imported the data you want to analyze into a Python notebook.

  • Simulation Complete by Wednesday, October 17:

    By this date, you must have translated your population dynamics model into Python and run the simulation. You also must have worked to sweep a variable to optimize its value.

  • Draft Quad Chart due on Monday, October 22:

    By this date, you are expected to be have completed the final draft of your project. On this day, we will spend time doing peer review, sharing your project with the other group at your table and discussing ways to improve it.

  • Final Quad Chart Due and Project Presentation on Wednesday, October 24:

    On this day, your group will present your project to the entire class and turn in your quad chart for grading. Please also turn in your brainstorming worksheet, your first cut model worksheet, and send your python notebook by email. (One of each per group.) Your (individual) group dynamics essay is due the evening of Wednesday, October 24.

Specifications

Here is a slideshow presentation about the quad chart poster and presentation.

The final deliverables of this project will be a (group) quad chart, a (group) five-minute presentation, and an (individual) group dynamics paragraph.

The quad chart must:

  • Have a descriptive and meaningful title.
  • Adhere to the correct format.
    • Use four 8.5" × 11" sheets of paper.
    • Each sheet should be in landscape format with at least 0.5" margin around.
    • The fonts should be no smaller than 24pt.
    • Each sheet must be headed either "Objective", "Methodology", "Results", or "Conclusions".
  • Include an Objective Section.
    • Here you introduce the problem statement, highlighting the population being modeled, who cares about the problem, and setting the stage for the type of answer you are looking for.
  • Include an Methodology Section.
    • Here you include the main assumptions you made, why you made those assumptions, the way you decided to model the growth function, where you got your data, and the types of simulation you used, relating it back to the objective.
  • Include an Results Section.
    • Here you include a chart that shows your most important results, with labeled axes, and a description of what the viewer is supposed to be getting out of your figure. You also need to explain how you validated or verified your results (variable sweeping perhaps?)
  • Include an Conclusions Section.
    • Here you interpret your results as an answer to your question. What does the model you created say? What are the limitations of your model? Are the assumptions realistic? Be honest and critical of your work. It is OK if you say your model didn't work. Show that you know it doesn't work and explain why.
  • Be formatted in a clear and organized manner.

    Spend time organizing your text and images. Your quad chart should not be only text. Work to make your final layout visually appealing.

The presentation must:

  • Include an introduction.

    Introduce yourselves, your topic, and explain who is the audience of your presentation.

  • Discuss each of the sections in the quad chart.

    Spend time making sure that the class learns about your objective, methodology, results, and conclusions.

  • Use your quad chart as a visual aide.
  • Use it as such. Do not read from your chart.

  • Involve each of the groupmates.
  • Make sure each person speaks for at least two minutes (for a group with two members) or at least one minute (for a group with three members).

  • Be organized and rehearsed.

    You need to make sure that you have practiced what you are going to say a couple of times.

  • Respect the time limit.

    Five minutes is a very short amount of time! This means you really need to have practiced multiple times so that you use your time efficiently.

For the group dynamics paragraph:

Write a paragraph that includes your impression of the contributions of the group members. Do you feel like each group member participated equally? Did each member contribute to the project throughout the process, including forming the project topic, developing the project methodology, planning and running the python simulations and results, analyzing the model, compiling the quad sheet, and preparing for the presentation?

Grading

This project represents 40% of your semester grade. You will be graded on how well your project addresses the specifications laid out above, following the rubric below. You are expected to arrive on time and make comments on your classmates' presentations and projects. If you are late or absent, this will negatively affect your own grade.

  • Timeliness: (5%)
    • Did you make steady progress on your project from start to finish, respecting project deadlines?
    • Did you turn in your final project by the deadline?
  • Objective: (15%)
    • Have you given a precise population dynamics question that you are trying to answer?
    • Have you been explicit about whether your project is explanatory or predictive?
    • Did you take the brainstorming and first cut model seriously?
    • Is it obvious who your target audience is?
  • Methodology: (15%)
    • Have you based your model on clear, well thought-out assumptions? (Both about the variables you included and didn't include, and the structure of the population growth.)
    • Did you explicitly state these assumptions?
    • Do you give and discuss the population change function behind your model?
    • Did you discuss where your data came from and why you chose it?
  • Python and Results: (20%)
    • Did you use python techniques that we learned in class?
    • Were you able to import real-world data into python?
    • Did you create a python simulation to model population growth?
    • Did you use python to create labeled plots of your model?
    • Did you use python to sweep a variable to verify or validate your model?
    • Did you choose a good plot to include in the Results section of the quad chart?
  • Model Analysis: (20%)
    • Did you explain well what your chart means?
    • Have you interpreted your results as an answer to your question?
    • Do you thoroughly analyze your model?
    • Have you determined if your model is a good model and simulates/predicts well?
    • Do you discuss the limitations of your model?
  • Quad Chart Style: (5%)
    • It your quad chart well organized? Does it capture the attention of the audience? Is it visually appealing?
  • Quad Chart formatting: (5%)
    • Does the format of the Quad Chart meet the specifications?
  • Presentation Style: (15%)
    • Did you include an introduction?
    • Did you discuss each of the sections?
    • Did you use the quad chart as a visual aide, and not read from it?
    • Did you involve each of the groupmates?
    • Is it obvious that you were organized and had practiced for the presentation?
    • Do you keep the audience's attention?
    • Did you respect the time constraints?
    • Did you arrive on time for everyone else's presentation?

You will be assigned a grade for each standard and these will be averaged based on the allocated percentages. If you did not participate equally in the groupwork, your grade will be reduced accordingly.

A+   (100+)   Outstanding: Goes above and beyond expectations
A (95) Excellent: Meets all requirements at a high level.
B (85) Good: Meets all requirements at an competent level.
D (65) Poor: Makes an effort to meet requirements but does not succeed.
F (0-50) Unacceptable: No work, a weak start, or does not meet minimum acceptable standards.

 

Project 2: First-order systems
Overview

You will build a simulation model based on a first-order system, using ideas that you have learned in Chapters 11–12 or 15–17 of the ModSimPy book. You'll also keep working on crafting interesting and appropriate questions—those that can be answered with the tools you're learning and that are reasonable in scope—and interpreting the results of your model to answer those questions.

Your project will also be a first-order model, probably in the domain of either epidemiology or thermodynamics (but possibly in other domains). You will begin by considering one of the models presented in the book and then you will expand on it to answer a question. Here are three possible themes to consider:

Option A: Epidemiology

The first option is to begin with the SIR model in the book and find an interesting way to extend it. You will identify one or more (closely related) questions you can answer with your new model.

Option B: Thermodynamics

The second option is to begin with the coffee cooling model in the book and find an interesting way to extend it. You will identify one or more (closely related) questions you can answer with your new model. You might also find ways to collect data from a real-world situation, but if you want to do this, you should talk with an instructor about what you plan to do and how it relates to your model.

Option C: Other First-Order Systems

The third option is to investigate some other first-order system, such as the pharmacokinetic model described in Chapter 17. Please note that if you choose this option, you will need to do some additional research.

Timeline
  • Team Formation worksheet due Friday, November 16:

    This project will be done in teams of 2–3 students. I believe that working together leads to better learning, if all members of the team are fully engaged. I will form teams based on feedback you give us. Be sure you fill out a partner preference sheet and email it to Prof. Chris no later than Friday, 11/16.

  • Project Proposal due Monday, November 26:

    By noon on Monday, November 26, send Prof. Chris an email with the topic you want to simulate.

  • Project Check-Up on Monday, December 3:

    Your simulation should be complete or almost complete, and you should have done a parameter sweep for a parameter of your choosing. Bring in the current state of your project to make sure you are on track.

  • Project Final Draft on Wednesday, December 12:

    By this date, you are expected to be have completed most of your project and be prepared for your presentation. Bring in THREE copies of your final writeup draft. The class period this day will be a peer-review session with some in-class polishing time. Prof. Chris will walk around and consult with you on any last-minute questions you might have.

  • Project Presentation on Monday, December 17:

    On this day, you will present your project to the rest of the class, explaining the question you investigated, discussing your modeling approach and the simulation you created, highlighting your results, analyzing your model and sharing your thoughts on the modeling process. You are expected to attend all presentations; your presentation grade will be reduced if you are late or do not attend.

  • Final writeup, python notebook, and group dynamics paragraph due Monday, December 17:

    The latest day when your group can submit your final project is Monday, December 17.

Specifications

You will be working on your project in multiple stages including work outside of class. The final product of this project will be a five-page writeup, a final Python notebook, and a ten-minute final presentation. Please also submit a group dynamics paragraph.

The five-page writeup must:

  • Include each of the following sections.
    • Abstract. A brief summary of the main content of your paper. 100 words at most!
    • Introduction. This should provide the reader with the necessary background information about why your project is an interesting and worthwhile project, and where the project fits into real life. Explicitly state the question you are investigating.
    • Methodology. Explain in depth the mathematical model you are using to solve the problem. Explicitly state any assumptions that you are making in your research. Discuss how you worked to make your model as representative of real life as possible. Describe how you modified the simulation from class to address your question. If you collected data, explain how you collected data and why you collected data in that way. If you obtained data from elsewhere, explain where your data came from and how reliable it is.
    • Results. Explain the results of the simulation. Include a few plots that highlight the message readers should take away, and discuss what these plots mean. Your project should include a parameter sweep; include a plot of this information. Discuss what the simulations say and what conclusions you can draw in terms of the real-life problem.
    • Analysis. Every model makes simplifying assumptions. You need to elaborate on yours and explain what is good and what is bad about your model. Is your model accurate? How do the results match with your expectations? What future research should be undertaken?
    • Conclusion. Explain briefly the take-away message of your project, especially the real-life consequences.
  • Has a title page

    The title page must include the name of the project, the abstract, and the names of group members. (This page does not count toward the length of the paper.)

  • Be formatted in a clear and organized manner, using full sentences and proper English.
  • Use 1 inch margins and 1.5x spacing with Times New Roman font.

The python notebook must:

  • Be commented and explained so that others can understand your work.

    Your Python notebook will be filled with complex code; you must make sure that the code you create is readable by people familiar with programming in Python. Use text cells to give others reading your code an explanation of the overarching philosophy behind the organization of your code. Throughout the code, to explain what you are doing, insert comments

    #
    # like this. 
    #

  • Use simulation techniques learned in class.

    This project is for you to create a first-order system, similar to the SIR and coffee cooling problems. You should be using techniques similar to (but not exactly the same as) those from class, using System objects, State objects, an update function, a run_simulation function, and collecting metric information.

  • Use sweeping techniques learned in class.

    As you run your simulations, use SweepSeries or SweepFrame objects to collect metrics relevant to your project, and use the collected information to come to real-world conclusions related to your main question.

  • Use plotting techniques learned in class.

    The charts you create for your writeup and presentation should be generated using Python. They should have titles and labeled axes.

  • Only include relevant Python code.

    Do not include all your scratch work in your final Python submission.

  • Have a title and the names of group members.

The presentation must:

  • Include an introduction.

    Introduce yourselves, your topic, and why you were motivated to work on this topic.

  • Discuss each of the sections.

    Spend time making sure that the class learns the important details about your project statement, methodology, results, analysis, and conclusions.

  • Debrief about your project.

    Give us some personal stories about your project and the journey to complete it. Some questions you might think about addressing: What was surprising along the way? What was the most difficult challenge? What are you happiest about? What would you like to do if you had more time to work on it?

  • Involve each of the groupmates.

    Make sure the speaking time is equitable.

  • Be organized and rehearsed.

    You need to make sure that you have practiced what you are going to say a couple of times.

  • Use time wisely and respect the time limit.

    Your presentation is supposed to take 8–10 minutes. Use your limited time efficiently and plan wisely. You will need to have practiced multiple times to get the timing correct.

For the group dynamics paragraph:

Write one paragraph that includes your impression of the contributions of the group members. Do you feel like each group member participated equally? Did each member contribute to the project throughout the process, including forming the project topic, developing the project methodology, planning and running the python simulations and results, analyzing the model, contributing to the writing, and preparing for the presentation?

Grading

This project represents 40% of your semester grade. You will be graded on how well your project addresses the specifications laid out above, following the rubric below. You are expected to arrive on time and make comments on your classmates' presentations and projects. If you are late or absent, this will negatively affect your own grade.

  • Timeliness: (5%)
    • Did you make steady progress on your project from start to finish, respecting project deadlines?
    • Did you turn in your final project by the deadline?
  • Objective: (10%)
    • Have you given a precise first-order system question that you are trying to answer?
    • Have you been explicit about whether your project is explanatory or predictive?
    • Have you situated your project in a real-world setting?
    • Did you give background information about why your topic is important?
  • Methodology: (15%)
    • Have you based your model on clear, well thought-out assumptions? (Both about the variables you included and didn't include, and the structure of the first-order system.)
    • Did you explicitly state these assumptions?
    • Do you give and discuss the first order model you used?
    • Were you explicit about how the model has changed from the base model taught in class?
    • Did you discuss where your data came from and why you chose it?
    • Did you discuss the metric that your model uses and why you chose it?
    • Have you given a precise secondary question that you are trying to answer?
  • Python: (20%)
    • Did you use python techniques that we learned in class?
    • Were you able to import real-world data into python?
    • Did you create a python simulation that models the dynamics of a first-order system over time?
    • Did you create a function that calculates your metric from a System object?
    • Did you use python to sweep a variable to verify or validate your model?
    • Did you use python to create labeled plots of your model that convey the main results well?
  • Results: (10%)
    • Did you choose good plots to include in the Results section?
    • Are the plots labeled correctly and justified?
    • Have you interpreted your results in terms of the real world situation?
  • Model Analysis: (20%)
    • This section is the most important section of your paper and where you should spend the most time and effort.
    • Have you determined if your model is a good model and simulates/predicts well?
    • Do you discuss the validity of your assumptions?
    • Do you explain the errors that occur in the modeling process?
    • Do you compare your expectations to the results?
    • Do you discuss the limitations of your model?
  • Writing style and formatting: (5%)
    • Do you use complete sentences and proper English?
    • Did you follow the writing format requirements?
  • Presentation Content and Style: (15%)
    • Did you include an introduction?
    • Did you discuss each of the sections?
    • Did you involve each of the groupmates?
    • Is it obvious that you were organized and had practiced for the presentation?
    • Do you keep the audience's attention?
    • Did you respect the time constraints?
    • Did you arrive on time for everyone else's presentation?

You will be assigned a grade for each standard and these will be averaged based on the allocated percentages. If you did not participate equally in the groupwork, your grade will be reduced accordingly.

A+   (100+)   Outstanding: Goes above and beyond expectations
A (95) Excellent: Meets all requirements at a high level.
B (85) Good: Meets all requirements at an competent level.
D (65) Poor: Makes an effort to meet requirements but does not succeed.
F (0-50) Unacceptable: No work, a weak start, or does not meet minimum acceptable standards.