Mathematical Models, Spring 2018
Course Content
This page is for a past course. Find your current course here.
 

Check back often for homework assignments, tutorials, and key topics covered each day.
This schedule is approximate and subject to change!

Monday, January 29
In class:
Wednesday, January 31
Before class:
  • Thoroughly read all pages of the course webpage.
  • Read through Chapters 0 and 1 of Modeling and Simulation in Python. Our goal will be to work through the rest of Chapter 1 in class Wednesday. It is OK if you do not understand everything.
  • Watch the short Mythbusters video about the penny myth.
  • Log on to the Queens College Google Apps for Education and sign up for our Google Classroom page:
    • Visit Google Drive. Enter your QC Email Address. This will take you to a QC login page. Log in with your CAMS information.
    • Visit Google Classroom and click on the plus sign at the top of the page. Select Join Class and use class code prcgobx.
  • Go to our Google Classroom page and complete the following three tasks.
    • Take the posted Syllabus Quiz. Feel free to refer back to the course webpage to search for more in form. Retake the quiz as many times as necessary to earn a score of 100%.
    • Complete the First Day Survey.
    • Respond to Daily Question: January 29.
In class:
  • Log on to the Queens College Google Apps for Education and sign up for our Google Classroom page:
    • Visit Google Drive. Enter your QC Email Address. This will take you to a QC login page. Log in with your CAMS information.
    • Visit Google Classroom and click on the plus sign at the top of the page. Select Join Class and use class code prcgobx.
  • Installing Python, GitHub Desktop on the lab computers.
  • Using Jupyter Notebooks for the first time.
  • Sections 1.1 and 1.2 of Modeling and Simulation in Python.
  • Commit and Push!
  • Introduction to Bike Share Model.
  • Sections 1.3 through 1.7 of Modeling and Simulation in Python.
  • Commit and Push!
Monday, February 5
Before class:
  • Make sure you have access to a copy of Python and Jupyter notebooks outside of class, by either installing it on your own machine or using Azure Notebooks on a campus machine. (Detailed instructions here) If you run into trouble, come see me in my office from 11-2:30 on Thursday. (Let me know you are coming.)
  • Optional: Watch the short Mythbusters video about the penny myth.
  • Read through Chapter 1 of Modeling and Simulation in Python. and perform this self-assessment.
  • Meet for one hour outside of class with at least one other classmate. Your goal is to get together to talk about the class so far and compare answers from the self-assessment to make sure you are able to use Python and Jupyter outside of class. You may also wish to work together to complete the Daily Question.
  • Write one paragraph about something that you learned or experienced that you would not have if you had worked alone. Also write down the name of the person you met with and when you met! Bring the self-assessment and your paragraph to class Monday. I will collect them, check them off, and they will count toward your class participation grade.
  • Go to our Google Classroom page and complete the following two tasks.
    • Respond to Daily Question: February 5.
    • Reply to at least one of your classmates' responses. Spend time providing answers to their questions or letting them know that they are not alone in their confusion.
In class:
Wednesday, February 7
Before class:
In class:
No class on Monday, February 12
Wednesday, February 14
Before class:
  • Read Sections 2.6 through 2.11 of Modeling and Simulation in Python.
  • Perform this self-assessment.
  • Meet outside of class with at least one other classmate. Your goal is to compare answers from the self-assessment and to work through the sections titled "Metrics" and "Returning Values" in Chapter 2's notebook/tutorial. You may also wish to work together to complete the Daily Question.
  • Go to our Google Classroom page and respond to Daily Question: February 14.
In class:
No class on Monday, February 19, but there is class on Tuesday, February 20!
Tuesday, February 20
Before class:
  • Complete Chapter 2's notebook/tutorial. Feel free to work with others to complete the exercises. The exercises will work as today's self-assessment.
  • Read Sections 3.1 through 3.6 of Modeling and Simulation in Python.
  • Read through the description of the first project. Determine who you will want to work with on your project and start to think about which of the options you are most interested in.
  • Go to our Google Classroom page and respond to Daily Question: February 20.
In class:
Wednesday, February 21
Before class:
  • Complete the Chapter 3 notebook/tutorial up to and including the section named "Series". Feel free to work with others to complete the tutorial.
  • Read Sections 3.5 through 3.11 of Modeling and Simulation in Python.
  • Complete this self-assessment.
  • By today you must determine who you want to work with on your project and the topic of your project. You will be starting to collect data before class on Monday 2/26!
  • Go to our Google Classroom page and respond to Daily Question: February 21.
In class:
Monday, February 26
Before class:
In class:
  • Explanatory Model vs. Prediction Model
  • Discussion of the Project Deliverables
  • Work on First Cut Model worksheet
  • Prof. Chris will walk around and talk with you about your project.
Wednesday, February 28
Before class:
  • Complete the Chapter 3 notebook/tutorial up to and including the section named "Birth and Death". Feel free to work with others to complete the tutorial.
  • Read Section 3.11 of Modeling and Simulation in Python and then work through the last section of the Chapter 3 notebook/tutorial titled "Disfunctions". Make sure you work to understand the issues surrounding each of the examples. Go to our Google Classroom page and respond to Daily Question: February 28 about these concepts.
  • Read Sections 4.1–4.2 of Modeling and Simulation in Python.
  • Complete this self-assessment.
In class:
Monday, March 5
Before class:
  • Complete the First Cut Model worksheet from class and have it ready for Monday.
  • Figure out how to import the dataset you are using for your project into a python notebook. Make sure you are able to display the dataset once it is imported.
  • Complete the entire Chapter 3 notebook/tutorial including all the exercises. Feel free to work with others to complete the tutorial.
  • Read Section 4.5 of Modeling and Simulation in Python.
  • Go to our Google Classroom page and respond to Daily Question: March 5.
In class:
  • Daily Question Discussion
  • Deliverables Discussion
  • Today will be an in-class project work day. We will make sure everyone has their data in Python and has a plan for their underlying growth model and update function.
  • Prof. Chris will walk around and talk with you about your project and your First Cut Model Worksheet.
Remember: Office hours are Monday from 4-5 and Thursday from 2-3.
If you are having issues with the coding of the simulations or sweeping variables, stop by during office hours or make an appointment!
Wednesday, March 7
Before class:
  • Continue your analysis of your project. You should be getting the code working to run simulations for your population, and you should be starting to code how to sweep a variable. Also start thinking about how you are going to organize your quad chart.
  • Go to our Google Classroom page and fill out the midterm evaluation to let me know how the class is going so far.
In class:
  • Discussion of Limitations and Errors in Mathematical Models
  • Time to think about limitations and errors in your own model.
Monday, March 12
Before class:
  • Continue your project work. Your python project results (population simulation and variable sweep) should be complete by today, leaving time for your group to work on the analysis and quad chart by Wednesday.
  • Bring in your strategy for modeling the growth of your population(s), and how you have programmed it into the computer.
In class:
  • In-class work to make sure your model simulation is working well.
Wednesday, March 14
Before class:
  • Continue your project work. Start analyzing your project results, including creating the plots in python.
In class:
  • Happy Pi Day!
  • Discussion of model analysis and limitations.
Monday, March 19
Before class:
  • Read this article about limitations of mathematical models.
  • Each group member should share one of your model's limitations for today's Daily Question on Google Classroom.
  • Bring the final version of your Quad Chart to class. We will be doing a peer review.
In class:
  • Peer Review of Project 1
  • Determination of the Presentation Order.
Wednesday, March 21
  • SNOW DAY: NO CLASS. Class rescheduled for Wednesday April 11.
Monday, March 26
Before class:
  • Revise your project and prepare to present your work in class.
In class:
  • Project Presentations
Wednesday, March 28
Before class:
  • Read Sections 5.1–5.5 of Modeling and Simulation in Python.
  • Be able to answer the following questions.
    1. What is a differential equation?
    2. What does an equation like dy/dt=ky mean for the function y(t)?
    3. What is the difference between a State object and a System object?
In class:
Spring Break: No school Monday April 2 and Wednesday April 4.
We will have class Monday April 9 and Wednesday April 11. (Wednesday April 11 is a Friday schedule, but we will be rescheduling the lost class from March 21st to that day.)
Monday, April 9
Before class:
  • Read Sections 5.6–5.9 of Modeling and Simulation in Python.
  • Be able to answer the following questions.
    1. What is the difference between a TimeFrame object and either a TimeSeries object or a DataFrame object?
    2. When you use a computer simulation, what do you have to calculate in order to determine the total number of people who get infected at some point in time?
    3. Why might we like to know the largest value of (one or more of) S, I, or R? (This is discussed on page 76.)
  • In the Chapter 5 Python Notebook, work to understand the first section: "SIR Implementation". (Don't forget, you'll need to install pip.)
  • Be able to answer the following questions.
    1. First, a thought question: if you change the time between contacts, how should that impact how many people will be infected? Similarly, if you change the recovery time, how should that impact how many people will be infected?
    2. Figure out how to get Python calculate how many people are infected after running the simulation. (See anwer to above.)
    3. Next, go in to the Chapter 5 Python Notebook and modify the tc and tr numbers, run the simulation, and determine how many people are infected as those numbers change. See if the final result matches what you thought would happen.
  • Feel free to discuss your answers to these questions online on Google Classroom.
In class:
Wednesday, April 11
Before class:
  • Read Sections 5.10–5.12 of Modeling and Simulation in Python.
  • Be able to answer the following questions.
    1. Why should immunization be treated as a short cut from S to R?
    2. What is the difference between a SweepSeries object and a TimeSeries object? What does that answer mean?
    3. Getting vaccinated is not just good for you; it is also good for the people you might otherwise infect. What is this phenomenon called?
    4. What does the book say that "hand washing" does to the model? And why should that be the case?
    5. What does Figure 5.6 mean? What do the x- and y-axes represent?
  • Work through the Chapter 5 Python Notebook through the section "Metrics". Spend time to understand how each of the blocks of code works. Draw yourself some pictures. Write down what each of the variables represents.
  • In the "Using Series Objects" section, modify the tc and tr numbers like you did for April 9th, run the simulation, and determine how many people are infected as those numbers change. See if the dynamics of how S, I, and R change matches what you thought would happen.
  • Complete the Exercises in the Metrics Section.
  • Visit Google Classroom to ask questions about the Chapter 5 Python Notebook.
In class:
Monday, April 16
Before class:
  • Complete the "before class" points from Wednesday April 11.
  • Spend a good amount of time understanding the code through "Metrics". Solve the exercises that are at the end of the Metrics section.
In class:
Wednesday, April 18
Before class:
  • Look back at our list of assumptions for this SIR model and see which ones are truly necessary. Comment on Google Classroom with a generalization of this simple model. How might you change the model's assumptions to make it more interesting, more relevant, more realistic, more creative, and add a sentence or two about how it would impact the model.
  • Read Sections 6.1–6.4 of Modeling and Simulation in Python.
  • Be able to answer the following questions.
    1. What is the unpack function, how do you use it, and why would you use it?
    2. When + is used with strings, what happens and what is it called?
    3. What does it mean that the fraction beta/gamma is dimensionless?
    4. What is the difference between a SweepSeries object and a SweepFrame object?
In class:
Monday, April 23
Before class:
  • Read over the description of Project 2. (Will be updated soon!) Think about which option you would like to explore the most.
  • Complete the partner preference sheet and bring it to class today.
  • Read Sections 7.1–7.5 of Modeling and Simulation in Python.
  • Spend some time learning more about thermal mass, specific heat capacity, and heat transfer. Read wikipedia, and then work to find reputable websites on those topics.
In class:
Wednesday, April 25
Before class:
  • Work on the worksheet from class, prepare to submit it in class, counting toward your participation grade.
  • Read Sections 7.6–7.9 of Modeling and Simulation in Python.
  • Be able to answer the following questions.
    1. What does fsolve do?
    2. What does an assert statement do?
    3. At the end of Section 7.7, there is a discussion about an assumption related to the mix command. Why does it say that we might want to revisit this assumption?
In class:
  • Turn in the worksheet from class for participation credit.
  • Discussion of Sections 7.6–7.9 of Modeling and Simulation in Python.
  • Meet with your partner and plan for a time to meet outside class before Monday.
Monday, April 30
Before class:
  • Meet with your Project 2 groupmate to complete the brainstorming worksheet. Determine the precise question you want to answer for your project. One member of each group should email this question to Prof. Chris before 8am on Monday 4/30.
In class:
  • Discussion of the worksheet turned in last Wednesday.
  • Discussion of Section 7.9 of Modeling and Simulation in Python.
  • Prof. Chris will come around to give feedback about your proposed project question.
  • In-class work to determine how your group will implement a simulation.
Wednesday, May 2
Before class:
  • Start working on your project's simulation.
In class:
  • Assumptions vs. Expectations.
  • In-class work on your simulation.
  • Discussion of parameter sweeping
Monday, May 7
Before class:
  • Complete your work on your project's simulation.
  • Do a parameter sweep for a parameter of your choosing.
In class:
  • In-class work on your project.
  • Submit requests for your project presentation day
Wednesday, May 9
Before class:
  • Interpret your results as real-world solutions.
In class:
  • In-class work on your project.
Please fill out the college-wide course evaluations, distinct from the course evaluations that will be given out in class. Thank you for your feedback!
Monday, May 14
Before class:
  • Complete and analyze your project.
  • Prepare a draft presentation.
  • Each group should bring in two or three copies of their writeup.
In class:
  • Peer Review Day.
Wednesday, May 16
In class:
  • Project Presentations.
Monday, May 21
In class:
  • Project Presentations.