Intro to Modeling redesign

From GeoMod

Jump to: navigation, search
"All models are wrong, but some are useful."

Contents

Goals

  • Goal: Enable students to create basic examples of the broadly different types of physical and behavioral models.
    • sub-goal: Enable students to identify the advantages, disadvantages and applicability of the broadly different approaches to modeling physical and behavioral problems.
    • sub-goal: Students will be able to assess the quality and appropriateness of modeling approaches used in the literature (with examples of good and bad).
  • Goal: Students will be able to create and calibrate a computer model applicable to a topic in their field.
    • Sub-goal: Students will be able to compare model results to actual data and assess the effectiveness of the models.
    • Sub-goal: Students will be able to convert observed physical/behavioral processes into equations then into computer models.

Ancillary Goals

  • Develop quantitative skills
  • Relate physical processes to mathematical equations
  • Reduce fear of differential equations (Observations by Tom Lehrer http://www.archive.org/details/lehrer)

Content

Go into depth in specific methods useful to students in current class and do a general survey of other methods (with examples). Give good and examples of the application of each type of model.

Introduction to VPython Programing

  • Intro to modeling: Using Andy Fould's webpage, have students create a step by step set of instructions showing how the elastic browser might be programed.
    • This trains students to recognize models and start considering how they work and how they might be programmed.
  • Introduction to Python for Geoscience models (bouncing ball)
    • Refresher on programming
    • Numerical error
  • 2d array class (Raster class)

Modeling Methods

  • Survey of Modeling Methods:
    • Conservation of mass/energy models
    • Stochastic (baysian)
      • Agent based
      • Random walk
  • Emergent themes
    • Emergent behavior
    • Importance of parameter sensitivity analysis

Project

Create a model to solve a problem in your field. Model must be related somehow to the Mississippi Embayment.

  • Identify a problem
    • Write a description of the problem (1 page)
    • Describe the approach you will take to modeling this problem and why (1 page)
  • Create a model
  • Test the model (calibrate)

Case studies

Looking at models in the literature to critique their application.

Assessment

Portfolios - (Meta: http://serc.carleton.edu/NAGTWorkshops/assess/portfolios.html)

  • Blogs for peer-review.

Programming assignments (group)

  • Programs graded on completion and presentation to class.

Oral presentation of individual term project model:

  • Peer review.


Course Outline

  1. In the first two weeks of class, students will learn to program some simple models in the Python programming language. This will serve as an introduction/refresher to programming, and an introduction to different modeling techniques.
  2. The key element of this class will be the development of individual models by students over the course of the semester.
    • In the fourth week students will begin presentations about the problem they wish to solve with their class project. (If you don't have anything in mind please see me for suggestions).
    • In the fifth week students will give presentation discussing the method they will employ to solve their problem. Specifically, why they chose that method and what alternative methods are available.
  3. In order to aid students in the development of their models and expose the entire class to different modeling methods, from the sixth week students will be required to
    1. post progress reports, including code, to this website.
      • Each student will update a page on this website. (See me for a username and password)
    2. read the reports and post comments on their peers on the Discussion page (see the tabs at the top of the page).

Topics

Some basics

  • Week 1
    • Introduction to physical modeling
    • Learning to program models: Create a program showing a bouncing ball using VPython.
      • The objective of this assignment is to introduce students to the basics of programing and demonstrate how physics equations can be translated into computer code.
  • Week 2
    • Distributed models - Dealing with spatial data in arrays

Other types of modeling

The order of the following topics is flexible. It will depend on the interests and priorities of the class

  • Week 3
    • Agent based models (Inspired by my love of the movie Matrix)
  • Week 5
    • Finite elements
  • Week 6
    • Arm Wrestling Tournament for Title of Greatest Programmer

Assignments

  1. Adapt the bounce.py code to give the ball a horizontal component and make it bounce between two walls.
  2. Write a list of guidelines for programming in Python based on what we have covered in class.
  3. Agents assignment

Lecture Notes and References

Useful Classes

Useful Functions

Useful Snippets of code

Modules


Useful Programs for Reference

Personal tools