Mathematical Models, Fall 2019
Course Content

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

Wednesday, August 28
In class:
  • Welcome!
  • Introduction & Syllabus Discussion '
  • Sections 1.0 and 2.1 of Modeling and Simulation in Python.
  • What is Mathematical Modeling?
  • Steps of the Modeling Process
  • Course Philosophy
  • Meet the model(er)s
  • Visit the course webpage. You are here!
  • Get started with Jupyter Notebooks.
  • Access Google Classroom and Google Groups:
    • Here is how to log on: Visit Google Drive (on Google Apps for Education). Enter your QC Email Address. This will take you to a QC login page. Log in with your CAMS information.
    • Then go to Google Classroom. You can access it through the menu at the top right of the page or go directly to http://classroom.google.com/.
    • Click on the + in the upper right corner to add a new class using course code dlu8ely.
    • Next, visit and join our Discussion Board on Google Groups. There is a link on the Google Classroom page or you can go directly to https://groups.google.com/a/qc.cuny.edu/forum/#!forum/245fa19-list.
    • When you are there, respond to Daily Question: August 28 on the Discussion Board. Look at your classmates' responses and make a comment on them when you can relate.
    • Google Classroom is where announcements, surveys, links, and updates are posted.
    • Google Groups is our discussion board and were you will contribute to the Daily Questions.
  • Randomness and flipping coins in Python
  • flip(): Adding in Randomness
  • Link to in-class modified notebook: Coin Flip Notebook
Wednesday, September 4
Before class:
  • Make sure you have access to a copy of Python and the course content outside of class, by either installing it on your own machine or using Azure Notebooks on a campus machine. (Detailed instructions here)
  • Acquire a ≈80 page notebook to serve as your "Homework Notebook".
    • Put your name and contact information in the notebook so you'll be able to get it back.
    • Set aside the first five pages of the notebook. Label this section "Objects" for building a list of objects that we'll be using in this class.
    • Set aside the next five pages of the notebook. Label this section "Syntax" for building a list of functions that we'll be using in this class.
    • Your notes and other homework answers start afterward.
  • Thoroughly read all of the course webpage.
  • Go to Google Classroom. (Reminder: You must be logged in through your QC account and NOT be on your personal Gmail account!) Complete the following two tasks:
    • Complete the First Day Survey, so I can learn about everyone's background and experience.
    • Take the 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%. This will count toward your participation grade.
  • Fill out this Doodle to let me know when you are available for office hours this semester. (Pretend like it is a normal week with no holidays --- select the times when you would be able to come to office hours regularly.) I will try to choose times that work for most people.
  • Read Chapter 0, Section 1.0 (pages 1–3), and Sections 2.1–2.5 (pages 7–14) of Modeling and Simulation in Python. We will be starting with Chapter 2 in class Wednesday. It is OK if you do not understand everything. You are priming your brain for our in-class discussion. You may wish to write yourself some notes about questions that come up or concepts that you'd like to discuss in class.
  • Homework Questions: Complete the following homework questions in your homework notebook (working after the objects and syntax sections) and be prepared to discuss them in class. Work in your homework notebook.
  • Objects (Add to your Objects section.)
    • 1-1. Write a sentence that explains what a State object is.
    Comprehension/Vocabulary (Requires some research in the text)
    • 1-2. In the introduction to Chapter 1, the author explains a quality of a model that might be desirable. Copy down the paragraph that starts "But often ".
    • 1-3. How do we read the variables inside a State object?
    Coding (Give your brain and hands some practice.)
    • 1-4. What is the process called that makes the functions defined in modsim.py available to Python? What is the line of code that accomplishes this?
    • 1-5. What is the name of the package that allows us to work with units in python? (See page xii.) What is the line of code that imports this package into our notebooks? (See the course software page.)
    • 1-6. Every time you create a new file that runs python code you need to put the file into a particular directory in your file structure. What directory is it? (See the course software page.)
In class:
Thursday, September 5
Before class:
  • Go to our Discussion Board and contribute to the Daily Question for September 5.
  • Read all of Chapter 2 of Modeling and Simulation in Python.
  • Homework Questions: Complete the following homework questions in your homework notebook.
  • Objects (Add to your Objects section.)
    • 2-1. Write a sentence that explains what a TimeSeries object is. How does it compare to a State object, if at all?
    Syntax (Add to your Syntax section.)
    • 2-2. Write down the syntax for the flip command. (That it, determine the input(s) that flip expects, determine the output(s) that flip returns, and explain in a sentence or two how the output(s) are related to the input(s).)
    • 2-3. Write down the syntax for the range command.
    Comprehension/Vocabulary (Fill in the blanks)
    • 2-4. In a function definition, the first line ends with a(n) _______ and the _______ of the function has to be indented.
    • 2-5. Write a short paragraph that explains in your own words what the step(p1,p2) function is doing and why.
    Coding
    • 2-6. In your personal version of the Chapter 2 notebook, define the function bike_to_olin, and make sure that it works like you expect it to by running it multiple times. (In your homework notebook copy the final, working version of your code.)
In class:
Monday, September 9
Before class:
  • 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 to the homework questions below. You should also make sure you are able to use Python and Jupyter notebooks outside of class.
  • Prepare a piece of paper to bring to class on 9/9 and turn in. At the top of the page, write your name and write down the name(s) of the classmate(s) you met with and when you met. Below that, write one paragraph reflecting about something that you learned or experienced that you would not have if you had worked alone. Bring your paragraph to class; I will collect them, check them off, and they will count toward your homework grade.
  • Read Sections 2.7–2.8 and 3.1–3.5 of Modeling and Simulation in Python.
  • Go to our Discussion Board and contribute to the Daily Question for September 9.
  • Homework Questions: Complete the following homework questions in your homework notebook. It is highly suggested that you work with one or more classmates on this assignment!!!
  • Syntax (Add to your Syntax section.)
    • 3-1. Write down the syntax for a for loop.
    Comprehension/Vocabulary (Fill in the blanks)
    • 3-2. Starting with a simple model and making gradual improvements is called _______.
    • 3-3. When you call a function, the values you provide are called _______; inside the function, those values get assigned to the function's _______.
    • 3-4. In Python, True and False are _______, not to be confused with 'True' and 'False', which are _______.
    Analysis (Reflect and Write)
    • 3-5. What does the author consider to be one of the most useful tools for debugging? Write a sentence explaining why it would be a helpful tool.
    • 3-6. In a paragraph or two, compare and contrast arguments and parameters. In what ways are they similar? In what ways are they different?
    Coding (Make sure you work in your notebooks directory. You do not need to answer these questions in your homework notebook. Instead, upload your answers using the link below.)
    • 3-7(a). Create a new Jupyter notebook that imports modsim (and also pint).
    • 3-7(b). In this new notebook, write code that creates a State object that contains two state variables, named heads and tails, assigns the value 0 to both, and assigns the State object to a variable named penny.
    • 3-7(c). Once you have evaulated that line of code, write an additional line of code that verifies that penny is defined correctly.
    • 3-8. In the Jupyter notebook from Question 3-7, write a for loop that calls flip() 10 times with 50% chance of both heads and tails. Use your State object penny to keep track of the number of heads and tails that have been flipped.
    • When you have completed Questions 3-7 and 3-8, upload your .ipynb file here. (If you are working in Azure Notebooks you will need to download your file first before uploading it here.)
In class:
  • Homework Discussion
  • Arguments vs. parameters
  • Metrics
  • Discussion of Project 1
  • Constructing a Problem Statement
  • Link to in-class modified notebook: Coin Flip Notebook
Wednesday, September 11
Before class:
  • Read through the description of Project 1. Determine who you will want to work with on your project, and think about how you are interested in generalizing the simple bikeshare model. Your project proposal will be due Friday by email.
  • Read Sections 3.4–3.6 and 4.5 of Modeling and Simulation in Python.
  • Homework Questions: Complete the following homework questions in your homework notebook. It is highly suggested that you work with one or more classmates on this assignment!

  • Comprehension/Vocabulary (Fill in the blanks)
    • 4-1. A _______ causes a function to end immediately without running any additional statements.
    • 4-2. == is a(n) _______, and should not be confused with =, which is a(n) _______.
    • 4-3. Write down the fundamental steps of incremental development.
    • 4-4. What is the difference between the the two functions bike_to_wellesley() and bike_to_wellesley(state)? Write a paragraph that gives one or more reasons why the first would be better than the second and one or more reasons why the second would be better than the first.
    • 4-5. Write down the definition of a metric. Write a sentence that explains what a metric is in your own words. Give an example of a metric that you interact with in daily life.
    Coding
    • Build upon our coin flipping Jupyter notebook from Questions 3-7 and 3-8:
    • 4-6. Copy the code from Question 3-8 into a new cell. Modify the code by adding in print commands that do the following. Each time flip() is called, it should print out whether the flip was a heads or a tail. When all the flips are done, it should print out the number of heads and tails that were seen. Check that your code also works when you increase the number of flips from 10 to something larger.
    • 4-7. Create a new function called flip_count that takes n and p as parameters, where n is the number of times to flip and p is the probability of coin flip falling heads. It should output the number of heads and tails that are seen. Run the function a couple of times with different parameters to make sure it works how you would expect.
In class:
  • Homework Discussion
  • Introducing Parameters
  • Negative bikes
  • Functions that return values
  • Link to in-class modified notebook: Coin Flip Notebook
  • Link to in-class modified notebook: Chapter 3
Monday, September 16
Before class:
  • Work with your group to create a precise problem statement that you will investigate for Project 1. Each group should send Prof. Chris one email (per group) before noon on FRIDAY September 13 with (a) your group members and (b) the precise problem statement you will be investigating. He will give feedback so you can revise it for Monday 9/16 if necessary.
  • Read Chapter 4 of Modeling and Simulation in Python.
  • Contribute to today's Daily Question on our Discussion Board.
  • Homework Questions: Complete the following homework questions in your homework notebook.
  • Objects
    • 5-1. Write a sentence that explains what a SweepSeries object is. How does it compare to a TimeSeries object, if at all?
    Syntax
    • 5-2.
      (a) Write down the syntax for the linspace command.
      (b) What array is generated by linspace(0,1,5)?
      (c) What array is generated by linspace(2,10,4)?
      (d) How would you use linspace to generate the array with numbers 0.0, 0.3, 0.6, 0.9, and 1.2?
    Coding
    • 5-3. Complete the exercises at the end of the Chapter 3 Jupyter notebook having to do with keeping track of the time until the first customer arrives and doesn't find a bike.
    • 5-4. Run the code from Question 5-3 multiple times, and at the bottom of the same Jupyter notebook create a text cell where you type out the values for "olin_empty", "wellesley_empty", and "t_first_empty" for five runs. (Remember: Convert the cell to a Markdown cell to change it to a text cell.)
    • When you have completed Questions 5-3 and 5-4, upload your .ipynb file here.
    Analysis
    • 5-5. In a paragraph or two, Compare and contrast docstrings and comments. In what ways are they similar? In what ways are they different?
    • 5-6. In a paragraph or two, explain what it means to sweep a variable. Why would this be a useful thing to do?
In class:
  • Homework Discussion
  • Sweeping variables
  • Completion of the discussion of the bikeshare model.
  • Prof. Chris will walk around and talk with you about your project.
  • Link to in-class modified notebook: Chapter 4
Start working on your simulation early. If you and your group are confused or have issues with the coding of the simulation, stop by during office hours Monday afternoon or schedule an appointment to talk with me.
Wednesday, September 18
Before class:
  • Work in your group to modify the bikeshare simulation to address your problem statement.
  • Contribute to today's Daily Question on our Discussion Board with any further questions about the bikeshare model.
  • Prepare your homework notebook to be turned in today.
In class:
  • I will collect homework notebooks.
  • Determining explicit assumptions
  • Assumptions vs. Expectations
  • Results
  • Prof. Chris will walk around and talk with you about your project.
Monday, September 23
Before class:
  • Complete your project.
  • Each group should bring in THREE paper copies of their writeup.
  • Each group should also have access to their python notebook for feedback.
In class:
  • Peer Review Day.
Wednesday, September 25
Before class:
  • Use Monday's peer feedback to revise your project for submission.
  • Please bring in a paper version of your writeup.
  • Turn in your final project here:
    • Upload your writeup here. Make sure its file name is of the form Names.docx or Names.pdf. (Replace "Names" by the first names of your group members, so it looks like p1-AliceChrisQiang.pdf) Only one submission per group is necessary.
    • Upload your code file here. (You may have to download it from Azure Notebooks first.) Make sure its file name is Names.ipynb and that it runs WITH NO ERRORS when all the cells are evaluated in order from top to bottom. Only one submission per group is necessary.
    • Upload your group dynamics paragraph here. Make sure its file name is p1-FirstName.txt or p1-FirstName.pdf or p1-FirstName.docx. Reminder: Everyone must submit a group dynamics paragraph, written independently.
  • Read through Chapter 5, Section 6.1, and Section 10.2 of Modeling and Simulation in Python.
  • Homework Questions: Complete the following homework questions in your homework notebook.
  • Objects
    • 6-1. Write a sentence that explains what a System object is. How does it compare to a State object, if at all?
    • 6-2. Write a sentence that explains what a DataFrame object is. How does it compare to a TimeSeries object, if at all?
    Syntax
    • 6-3. What is the syntax of linrange? How does it compare to linspace, if at all?
  • We are going to be thinking about population growth. Spend a few minutes brainstorming a few examples of populations that change over time—we'll discuss in class.
In class:
No class on Monday, September 30 or Wednesday, October 2. (Professor Hanusa will be out of town at a research workshop.)
Sometime between Wednesday September 25 and Friday October 4, find time to meet with one or more classmates outside class and complete the following:
  • Read Chapters 6 and 7 of Modeling and Simulation in Python.
  • Homework Questions: Complete the following homework questions in your homework notebook.
  • Comprehension
    • 7-1. Write a paragraph that explains what the author means when they talk about "factoring out the update function", the title of Section 6.3.
    • 7-2. What is happening in Figure 7.2 on page 54?
    Coding
    • 7-3. (a) Find any webpage that has a table of data that changes over time (b) use the tools we discussed from Chapter 5 to import this data into python with the time column as the index column. (c) Change the column headings to have short, simple names. (d) Choose one column to single out as a Series object, and plot the dataset.
    • Upload your Python notebook for Problem 7-3 here. At the top of your notebook in a text cell write a small paragraph about where the data comes from. If you ran into trouble, use this space to describe your troubles.
    • 7-4. Read Section 7.3 of Modeling and Simulation in Python entitled "Dysfunctions". The examples from the text are coded in the Chapter 7 python notebook. Work through the examples and try to understand the issues surrounding each of the examples. In your homework notebook, write a paragraph in your own words that explains what is happening in each example. Contribute to the Daily Question: October 2 on our Discussion Board with a question about what is happening, or a confusion you are having, or one that you figured out! If everything was clear to you, then help out your fellow classmates with an answer.
  • Very Important: Watch this video lecture about population growth models.
  • Here is a link to a modified jupyter notebook that runs all three population growth models: Chapter 7. Make sure you understand what is happening.
  • When you are in your group, I also suggest working on the pre-class activities for Monday October 7 given below.
Monday, October 7
Before class:
  • Read through the description of Project 2. Start to think about which of the options you are most interested in simulating.
  • In the "notebooks" folder where all your python notebooks are is a file named "rabbits.ipynb". Read through the notebook through the cell containing the code
    system = make_system()
    run_simulation(system)
    final_population(system)
    
    We will be discussing this in class.
  • If you don't remember when we discussed sweeping variables in class, re-read Section 4.4 of our book.
  • Contribute to today's Daily Question on our Discussion Board by sharing two populations that have growth functions that are not the same type and justify your reasoning.
In class:
  • Discussion of Daily Question
  • Discussion of Project 2 Expectations
  • Explanatory vs. Predictive
  • The Rabbit Model
  • Sweeping variables.
  • Link to in-class modified notebook: Rabbit Model
No class on Wednesday, October 9 or Monday, October 14.
Wednesday, October 16
Before class:
  • Decide who you want to work with on your project and decide which of the project options you are most interested in pursuing. Start collecting data for your populations of interest and import them into a Jupyter notebook. Bring these ideas to the brainstorming session in class this day.
In class:
  • Discussion of the Project Deliverables
  • What is a Quad Chart?
  • Work on the Brainstorming and Planning worksheet
  • Prof. Chris will walk around and talk with you about your project and your worksheet.
Monday, October 21
Before class:
  • Complete the Brainstorming and Planning worksheet and bring it to class.
  • Hone the primary question you and your group wish to investigate and have it ready for class this day. Bring in your strategy for modeling the growth of your population(s). Think about the growth function(s) assumptions underlying your simulation. Make progress on importing the data you want to analyze into a Python notebook.
  • Read Chapter 8 of Modeling and Simulation in Python.
In class:
  • Model Assumptions & Methodology
  • Prediction
  • After that we will have 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.
Wednesday, October 23
Before class:
  • Continue your project work. You must have translated your population dynamics model into Python and run the simulation. You should have decided upon a secondary question and that you will answer by determining a metric and sweeping a parameter.
  • Contribute to today's Daily Question on our Discussion Board by sharing your thoughts on the ways in which you would judge one model to be better than another.
In class:
  • In what ways can a model be good? Download notes here '
  • In-class work day. Prof. Chris will walk around and talk with you about your project.
No class on Monday, October 28 or Wednesday, October 30.
Professor Hanusa will be at the Wolfram Technology Conference. Instead of formal classes, you are expected to meet on Monday to revise Project #1 and meet on Wednesday to work intensely on Project #2 — your Draft Quad Chart is due on Wednesday, November 6. I will be holding walk-in hours on Friday, November 1 from 9:00-11:45am in Kiely 061. You are welcome to drop by if you have questions on either project.
Monday, November 4
Before class:
In class:
  • In-class work day. We will discuss any last minute questions you have on Project 2 and you will prepare for your presentation.
Wednesday, November 6
Before class:
  • Bring the final version of your Quad Chart to class. (Have your digital slides available to put on your table's screen and bring a print-out of the four slides too.) Prepare for your presentation as if you were presenting to the whole class. We will be doing a peer review.
In class:
  • Peer Review of Project 2
  • Determination of the Presentation Order.
Monday, November 11
Before class:
  • Revise your project and prepare to present your work in class.
  • Bring in your final Quad Chart (in poster format), your completed "Brainstorming and Planning" worksheet, and the Peer Review worksheets to class.
  • Turn in your final project here:
    • Upload your project slides here. Make sure its file name is of the form p2-Names.pdf or p2-Names.pptx. (Replace "Names" by the first names of your group members, so it looks like p2-AliceChrisQiang.pdf)
    • Upload your python notebook here. Make sure its file name is p2-Names.ipynb and that it runs WITH NO ERRORS when all the cells are evaluated in order from top to bottom.
    • Upload your group dynamics paragraph here. Make sure its file name is p2-FirstName.txt or p2-FirstName.pdf or p2-FirstName.docx. Reminder: There should be one of these from each person, written independently.
In class:
  • Project Presentations
Wednesday, November 13
Before class:
  • Read Chapter 11 of Modeling and Simulation in Python.
  • Homework Questions: Complete the following homework questions in your homework notebook.
  • Objects (Add to your Objects section.)
    • 8-1. What is a TimeFrame object? How does it compare to a TimeSeries object or a DataFrame object, if at all?
In class:
Monday, November 18
Before class:
  • Re-read Chapter 11 from where we left off in class and read Chapter 12 of Modeling and Simulation in Python.
  • Homework Questions: Complete the following homework questions in your homework notebook.
  • Comprehension/Vocabulary (Fill in the blanks)
    • 9-1. An SIR model is an example of a _______ model.
    • 9-2. In our model, we will model vaccination as moving people directly from the Susceptible state to the Recovered state. Why is this a reasonable thing to do?
    • 9-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?
    Syntax (Add to your Syntax section.)
    • 9-4. Suppose frame is a TimeFrame object with columns labeled 'A', 'B', 'C', and 'D'.
      • What do you type to access frame's first column?
      • What do you type to access frame's first row of data?
      • What do you type to plot all the data in frame?
    • 9-5. If S is a TimeSeries object, What is the difference between S.max and S.idxmax?
In class:
  • Homework Discussion
  • Implementation of SIR model in Python
  • Link to in-class notebook: Chapter 11
  • Link to in-class notebook: Chapter 12
  • Discussion of Project 3.
Wednesday, November 20
Before class:
  • Read over the information about Project 3.
  • Complete the partner preferences survey posted on Google Classroom before noon on Tuesday, November 19.
  • Contribute to today's Daily Question on our Discussion Board by asking a question about the SIR model or its implementation.
  • Homework Questions: Complete the following homework questions in your homework notebook.
  • Comprehension/Vocabulary
    • 10-1. For what real-world reasons might we like to know the largest value of (one or more of) S, I, or R and when it might happen?
    • 10-2. What does the book say that "hand washing" does to the model? And why should that be the case?
    • 10-3. If you change the time between contacts, how should that impact how many people will be infected and the dynamics of the number of people infected over time? Similarly, if you change the recovery time, how should that impact how many people will be infected and the dynamics of the number of people infected over time?
    Coding
    • 10-4. Modify the tc and tr numbers in the Chapter 11 Python Notebook, re-run the simulation, and determine how many people are infected as those numbers change. See if the final result matches the expectations you gave in your answer to Question 10-3.
    • 10-5. There are three metrics given in the Exercise in the Metric section of the Chapter 12 python notebook. Create functions that implement each of these three metrics, just as we have created a calc_total_infected function that computes the metric of the number of total people who were infected during the simulation by taking as an input the TimeFrame named results.
In class:
  • Homework Discussion
  • Programming Interventions
  • Sweeping Interventions
  • Meet your partner; schedule a time to meet before Monday
  • Link to in-class notebook: Chapter 12
  • Link to in-class notebook: Chapter 13
Monday, November 25
Before class:
  • Meet with your partner from Project 3 and determine which of the general project types you will have as the basis for your project and what about that project type is interesting to you. This brainstorming worksheet may be helpful.
  • Read Chapter 17 of Modeling and Simulation in Python.
  • Skim the Wikipedia page about System Dynamics and look at the pictures on this webpage about Stocks and Flows.
  • Homework Questions: Complete the following homework questions in your homework notebook.

  • Comprehension/Vocabulary (Fill in the blanks)
    • 11-1. Severe hyperglycemia is the defining symptom of ______.
    • 11-2. In the glucose minimal model, the initial concentration of glucose is not really measurable so it is treated as a ______.
    • 11-3. What are the "populations" that change over time that are simulated in the glucose minimal model?
    • 11-4. What are the "populations" that change over time that are simulated in a product adoption model?
In class:
  • Pharmokinetics
  • Product adoption
  • Implementing these multi-state models in Python
  • Link to in-class notebook: Chapter 17
  • Link to in-class notebook: Product Adoption
Wednesday, November 27
Before class:
  • Prepare your homework notebook for collection today, Wednesday, November 27.
  • Work to come up with a project topic / proposal with your groupmate. Determine the precise question you want to answer for your project. One member of each group should email this question to Prof. Chris before 9am on Wednesday 11/27. It may be helpful to use the brainstorming worksheet as a guide.
In class:
  • Turn in your homework notebooks for grading.
  • Errors in the modeling process.
  • Prof. Chris will come around to give feedback about your proposed project question.
  • In-class work on your project.
Monday, December 2
Before class:
  • Continue your work on your project's simulation.
  • Come up with your expectations about what your results will say about your problem statement.
  • Set up a skeleton python notebook with the basics of your simulation. In other words, make sure the simplest version of your model is working correctly before you start making any modifications related to your project statement.
In class:
  • In-class work on your project.
Wednesday, December 4
Before class:
  • Complete your work on your project's simulation.
  • Do a parameter sweep for a parameter of your choosing.
  • Interpret your results as real-world answers to your problem statements.
In class:
  • In-class work on your project.
  • Focus on model assumptions, methodology, and errors.
Please fill out the college-wide course evaluations. This is different from any course evaluations that happen in class. Thank you for your feedback!
Monday, December 9
Before class:
  • Continue work on your project and writeup.
  • Contribute to today's Daily Question on our Discussion Board about your model's limitations.
In class:
  • In-class work on your project.
  • How to write an abstract
Wednesday, December 11
Before class:
  • Complete the writeup for your project. Bring TWO paper copies of your project to class.
  • Prepare for your presentation as if you were presenting to the whole class. Have your digital slides available to display on a computer monitor.
  • Please make an effort to fill out the college-wide course evaluations. Thank you for your feedback!
In class:
  • Peer Review Day.
Friday, December 13 (optional)
  • Incorporate the feedback from peer review day into your project. OPTIONAL: If you would like Prof. Chris to give you feedback on your writeup and presentation so far, send the draft(s) by today at 1:00pm. I will reply with feedback about where you should focus your revision efforts by Monday, December 16.
Wednesday, December 18
Before class:
  • Revise your project and prepare to present your work in class.
  • Turn in your final project here:
    • Upload your presentation slides here. Make sure its file name is of the form p3-Names.pdf or p3-Names.pptx. (Replace "Names" by the first names of your group members, so it looks like p3-AliceChrisQiang.pdf)
    • Upload your writeup here. Make sure its file name is p3-Names.docx or p3-Names.pdf.
    • Upload your python notebook here. Make sure its file name is p3-Names.ipynb and that it runs WITH NO ERRORS when all the cells are evaluated in order from top to bottom.
    • Upload your group dynamics paragraph here. Make sure its file name is p3-FirstName.txt or p3-FirstName.pdf or p3-FirstName.docx. Reminder: There should be one of these from each person, written independently.
In class:
  • Project Presentations.
  • Your writeup, presentation slides, and python code are due before class on May 20.
  • Your group dynamics paragraph is due by the evening of May 20.