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 three 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.
You will be creating and analyzing a bikeshare model that builds on the bikeshare model from Chapters 2–4 of the ModSimPy book as your starting point. Your goal will be to determine a precise problem statement, develop the methodology to investigate this problem statement, run a simulation that implements the methodology, and interpret the results of this simulation.
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.
Here is a list of vague ways in which one might modify the bikeshare model.
- More than two locations
- The number of bikes changes over time
- The probabilities change over time
- Competition comes in
- Money gets involved
As a group, choose one of these areas and decide upon a precise problem statement that you will investigate. (Other topics are also allowed; check with Prof. Chris first.) As you choose your topic, consider the ways in which you will need to modify your simulation.
- Project Proposal due
Monday, February 10Wednesday, February 12:Decide who you want to work with on your project and come up with a precise problem statement and a plan for modifying your simulation. Send an email to Prof. Chris with this information; he will give feedback so that you can revise the proposal if necessary.
- Simulation Complete by Monday, February 24:
Work in your group to simulate the modified bikeshare model.
- Draft Writeup due on Wednesday, February 26:
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 another group and discussing ways to improve it.
- Final Project Due on Monday, March 2:
Each group will turn in their final writeup and python notebook through the Dropbox links on the course content page. Your (individual) group dynamics essay is due that evening.
The final deliverables of this project will be a two-page (group) writeup, your python notebook, and an (individual) group dynamics paragraph.
The writeup must:
- Adhere to the correct format.
- Start with a separate title page containing the title of your work and your names.
- Incorporate two full pages of content. (With a maximum of 2.5 pages)
- 1 inch margins, 1.5x spacing, 11-point Times New Roman font.
- Discuss the Objective.
- Here you give a brief introduction to the real-world scenario and introduce the problem statement and set the stage for the type of answer you are looking for. This should be at most 1/2 page.
- Discuss the Methodology.
- Transition into a discussion of how you created a simulation to answer your problem statement. Include the main assumptions you made, why you made those assumptions, relating them back to the real-world situation and the objective. It should be clear how this model is different from the bikeshare model from class. (BUT: Do not include an explicit reference to "the bikeshare model from class". Instead, your description of how you are simulating your real-world scenario should be enough to convey its differences.)
- Discuss the Results.
- Here you discuss what results your simulation produces. Include a chart that shows the evolution of your bikeshare over time. The axes must be labeled. The chart should not take up more than 1/4 of a page. Integrate a discussion of what the viewer is supposed to be understanding from your figure.
- Analyze the results.
- Interpret your results as an answer to your problem statement. What is the real-world significance of your results? 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. Here is a good place to discuss whether the assumptions you made are realistic and discuss how you or someone else might improve the model/simulation in the future.
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, and contributing to the writing?
This project represents 20% of your semester grade. You will be graded on each of the following standards.
- Attentiveness:
- Did you make steady progress on your project from start to finish, respecting project deadlines?
- Did you attend class and contribute constructively during in-class project work days?
- Were you on time for peer review day, with draft in hand, and did you contribute constructive critiques for your classmates?
- Did you turn in your final project by the deadline?
- Style:
- Does your writing have a consistent focus throughout and not wander off topic?
- Do you use complete sentences and proper English?
- Did you give your project a relevant title?
- Did you follow the writing format requirements?
- Objective:
- Did you set the stage for your entire paper by situating the project in the real world?
- Is it clear what question you are trying to answer? Have you motivated the question well?
- Does the objective section lead well into the methodology section? Is there a good transition?
- Methodology:
- Do you explain the method you used to simulate your situation?
- Do you explain the philosophy behind your simulation?
- Have you based your model on clear, well thought-out assumptions?
- Did you explicitly state these assumptions?
- Results:
- Did you choose your figure carefully?
- Is your figure relevant?
- Is the plot labeled correctly?
- Do you EXPLAIN to the reader how they should be understanding your figure? (NOT an analysis of the figure -- simply an explanation of the takeaway message.)
- Are these results situated well in the flow of the paper, well transitioned from methodology and leading into the analysis?
- Analysis:
- Have you interpreted your results in terms of the real world scenario and the question you asked?
- Is your simulation modeling the real-world situation well? (Remember: Be critical and truthful.)
- Do you discuss the validity of your assumptions?
- Have you addressed how the model might be improved?
- Do you conclude your paper so that it does not end abruptly?
- Python Notebook:
- Did you use python techniques that we learned in class?
- Did you create a python simulation to model your bikeshare model?
- Did you use python to create labeled plots of your model?
- Is your python notebook organized neatly? Have you broken down your notebook into sections?
- Have you used text cells or comments to explain to the reader what you are doing in your code?
You will be assigned a score for each standard on an E-M-R-N scale as follows.
First I ask myself:
If it does, then depending on how complete and clearly communicated your work is, you will receive one of the following scores:
Exemplary | The work meets or exceeds the expectations of the assignment. Communication is clear and complete. Mastery of the concepts is evident. There are no non-trivial errors in understanding. | |
Meets Expectations | Understanding of the concepts is evident through correct work and clear, audience-appropriate explanations. Some revision or expansion is needed, but no significant gaps or errors are present. |
If it does not, then you have not demonstrated understanding of the concept. In this case, I will determine if you show partial understanding, and you will receive one of the following scores:
Revision Needed | Partial understanding of the material is evident, but there are significant gaps that remain. Needs further work, more review, and/or improved explanations. | |
Not Assessable | Not enough information is present in the work to determine if there is understanding of the concepts. Work is fragmentary or contains significant omissions. Or, there are too many issues to justify correcting each one. |
Your final project grade will be based on the number of scores at each level as follows.
If you do not participate equally in the groupwork, your grade will be reduced accordingly.
A (95+) Earn a score of M or higher on all standards and a score of E on at least five standards. B (85) Earn a score of M or higher on all standards and a score of E on at least two standards. C (75) Earn a score of M or higher on five of seven standards and no N scores. D (65) Earn a score of M or higher on three of seven standards and at most one N score. F (50–) Earn two or more N scores or have fewer than three E or M scores.
You will build a simulation that models the interaction between multiple populations / quantities based on a system of first-order differential equations, using ideas that you have learned in Chapters 11–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.
You will expand upon the basic 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. In particular, you will be creating a simulation, determining a relevant metric, and performing a parameter sweep to answer your question(s).
- Project Final Draft by late Thursday, May 7:
By this date, you are expected to be have a final draft of your writeup and your python notebook. You will submit them to me by dropbox and I will pair you up with another group. You will do peer review on their work and they will do peer review on your work.
- Peer review discussion on Monday, May 11:
During class on this day, the two paired groups will exchange the written comments and meet virtually to discuss the project feedback.
- Submission for Initial Grading on Wednesday, May 13:
Submit your project to Professor Hanusa for initial grading. During this class period, work with your groupmates on your presentation. Professor Hanusa will provide feedback by Friday, May 15 so you can revise and resubmit by Monday.
- Project Presentation on Monday, December 18:
On this day, you will present your project to the rest of the class. Your project materials are all due this day.
You will be working on your project in multiple stages including work outside of class. The final deliverables of this project will be a seven-page (group) writeup, your python notebook, and a (6–8)-minute final presentation, and an (individual) group dynamics paragraph.
The writeup must:
- Adhere to the correct format.
- Seven full pages of content
- 1 inch margins, 1.5x spacing, 11-point Times New Roman font.
- Have 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.)
- Include an abstract.
- An abstract is a brief summary of the main content of our paper. 100 words at most!
- Give an 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.
- Discuss the Methodology.
- Transition into a discussion of how you created a simulation to answer your problem statement. 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. Explain where your data came from and how reliable it is. This portion of the paper should be at least one page.
- Discuss the results.
- Here you discuss what results your simulation produces. 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.
- Analyze the model.
- 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? This portion of the paper should be at least two full pages.
- Conclude.
- Explain briefly the take-away message of your project, especially the real-life consequences. What future research should be undertaken?
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 problem. 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 6–8 minutes. Use your limited time efficiently and plan wisely. You will need to have practiced multiple times to get the timing correct.
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?
This project represents 55% of your semester grade. You will be graded on each of the following criteria.
- Attentiveness:
- Did you make steady progress on your project from start to finish, respecting project deadlines?
- Did you take the brainstorming worksheet seriously?
- Did you attend class and contribute constructively during in-class project work days?
- Did you submit a document on time for peer review day? Did you contribute constructive critiques for your classmates?
- Did you turn in your final project by the deadline?
- Topic Quality:
- Does the subject level of your project match your level of expertise in the subject?
- Does the complexity of your project match your level of computer programming background?
- Does the project show your advancement in the understanding of the modeling process?
- Does the project show your advancement in programming in Python and in computer programming in general?
- Writeup Format, Style, and Focus:
- Did you follow the writing format requirements?
- Do you use complete sentences and proper English?
- Have you stayed on topic throughout the writeup?
- Does the paper flow well from one section to the next?
- Title and Abstract:
- Did you give your project a relevant title?
- Have you captured the essence of your paper in the abstract?
- Is your abstract concise and precise?
- Objective:
- Did you set the stage for your entire paper by situating the project in the real world?
- Do you motivate the project by providing enough context for the reader? Can you convince your audience of the importance of your project?
- Is it clear what question you are trying to answer? Have you motivated the question well?
- Does the objective section lead well into the methodology section? Is there a good transition?
- Methodology - Assumptions:
- Have you based your model on clear, well thought-out assumptions?
- Have you explicitly stated these assumptions that going into your model?
- Methodology - Model Description:
- Have you explained what you are simulating and how it is helpful in addressing the problem statement
- Are you able to convey the "update" function to the reader with a justification about why this function is the right way to approach your model?
- Did you discuss the metric that your model uses and why you chose it?
- Did you discuss where your data came from and why you chose it?
- Results:
- Did you choose your figure carefully?
- Is your figure relevant?
- Is the plot labeled correctly?
- Do you EXPLAIN to the reader how they should be understanding your figure? (NOT an analysis of the figure -- simply an explanation of the takeaway message.)
- Are these results situated well in the flow of the paper, well transitioned from methodology and leading into the analysis?
- Analysis - Quality of model:
- Have you interpreted your results in terms of the real world scenario and the question you asked?
- Is your simulation modeling the real-world situation well? (Remember: Be critical and truthful.)
- How do your results compare your expectations?
- Have you addressed the different qualities that your model may have, including accuracy, precision, generality, and fruitfulness?
- Analysis - Model Assumptions:
- Do you discuss the validity of the model's assumptions as discussed in the methodology?
- Have you addressed whether your assumptions come from detailed analysis or whether they are guesses? (Is your model descriptively realistic?)
- Have you addressed what sorts of changes to these assumptions or new assumptions would improve the model?
- Analysis - Model Limitations and Errors:
- Do you discuss the limitations of your model?
- Do you explain the errors that might occur in your modeling process and how that would impact the quality of your conclusions?
- Conclusions:
- What might you or someone else wish to investigate in the future if you had more time?
- Do you conclude your paper so that it does not end abruptly?
- Python - Techniques:
- Did you use and apply python techniques that we learned in class?
- Did you create a python simulation to discretely model a system of differential equations?
- Were you able to use python to create labeled plots of your model?
- Did you sweep a parameter?
- Python - Organization and Comments:
- Is your python notebook organized neatly?
- Have you broken down your notebook into sections?
- Have you used text cells or comments to explain to the reader what you are doing in your code and how the code does what you want it to?
- Presentation - Preparation:
- Is it obvious that you were organized and had practiced for the presentation?
- Do you know your content and are you speaking from a position of confidence?
- Did you use your slides as a visual aide, and not read from them?
- Presentation - Slide Visuals:
- Do you have the right amount of material on your slides? (Well bullet pointed, Not paragraphs.)
- Are your slides aesthetically pleasing?
- Have you included a reasonable amount of images to engage the audience visually?
- Presentation - Content:
- Did you include an introduction?
- Did you discuss each of the sections?
- Have you ensured that your presentation does not end abruptly?
- Presentation - Style:
- Did you involve each of the groupmates?
- Do you keep the audience's attention?
- Did you respect the time constraints?
- Did you arrive on time for everyone else's presentation?
As in Project 1, you will be assigned a score for each standard on an E-M-R-N scale as follows.
First I ask myself:
If it does, then depending on how complete and clearly communicated your work is, you will receive one of the following scores:
Exemplary | The work meets or exceeds the expectations of the assignment. Communication is clear and complete. Mastery of the concepts is evident. There are no non-trivial errors in understanding. | |
Meets Expectations | Understanding of the concepts is evident through correct work and clear, audience-appropriate explanations. Some revision or expansion is needed, but no significant gaps or errors are present. |
If it does not, then you have not demonstrated understanding of the concept. In this case, I will determine if you show partial understanding, and you will receive one of the following scores:
Revision Needed | Partial understanding of the material is evident, but there are significant gaps that remain. Needs further work, more review, and/or improved explanations. | |
Not Assessable | Not enough information is present in the work to determine if there is understanding of the concepts. Work is fragmentary or contains significant omissions. Or, there are too many issues to justify correcting each one. |
Your final project grade will be based on the number of scores at each level as follows.
If you do not participate equally in the groupwork, your grade will be reduced accordingly.
A (95+) Earn a score of M or higher on all standards and a score of E on at least 12 of 18 standards. B (85) Earn a score of M or higher on 16 of 18 standards and a score of E on at least 6 of 18 standards. C (75) Earn a score of M or higher on 14 of 18 standards and no N scores. D (65) Earn a score of M or higher on 9 of 18 standards and at most two N scores. F (50–) Earn three or more N scores or have fewer than nine E or M scores.