Introducing Numerical Modeling to Undergraduate Geology Majors
Greg Hancock, Geology, College of William and Mary
Although numerical modeling has become a significant tool in the Earth sciences, geology majors are generally not exposed to the process of model construction and use. While many departments offer courses in field methods, there are few that offer courses in what one might call numerical methods at the undergraduate level. In this essay, I'd like to share my experience teaching such a course for Geology undergraduates at William and Mary, and consider the possible benefits of exposing students to numerical models beyond just learning a new analytical "method". I have taught a course called Numerical Modeling in the Earth Sciences three times over the last several years. The course has no prerequisites other than an introductory geology course, and is a two credit course that meets for two hours once a week for the full semester. The course is capped at 10 students and is hands-on, meaning students are actively working on model construction for most of the course time. We use MATLAB as our platform, in part because William and Mary has a site license for both faculty and students. The students I've had in this course have no experience with MATLAB or numerical models, so the course starts from scratch on both.
When I first developed this class, the primary goal was to teach students how to design and construct numerical models. As a secondary goal, I sought to help them be critical citizens when it comes to the use of models to guide policy in the public sphere, as many students think models are always "right". However, after teaching three versions of this course, I've found that having students work on model construction allows them to practice several skills that students typically lack, and these skills may be more broadly important than my original goals. For lack of better words, I'll call these skills logical planning, evaluating assumptions, and troubleshooting.
Logical planning: I have noticed in this course that students have a tendency to want to dive in and start constructing their numerical models as soon as they get the assignment. They fire up MATLAB and start coding. There is little thought about creating a plan for how the model will be constructed, what information will be needed (e.g., initial and boundary conditions), and what output the model will need to produce to address the problem at hand. Invariably, without planning, students quickly get bogged down and/or lost in their model, and often end up producing a model that doesn't quite achieve the assigned goal. So, I require that the students spend at least 15 minutes planning their model on paper, using pseudocode to write out the variables and functions they plan to use, and the logic (e.g., loops, if-else) that will be needed. Only after they've described their plan are they allowed to begin building the model. Students seem to get the hang of this after a few times, and realize that planning actually saves time. Having seen similar lack of planning prior to starting on assignments in other courses, I've altered many of my assignments in several other courses to have a planning component before moving forward to execution of an exercise.
Assumptions: In all of my classes, including the numerical modeling course, I ask students to describe the assumptions that are part of their calculations. The most common assumptions they provide are similar to the following: "I assume that I did this correctly", "I assume I put the number in the right cell in Excel", and "I assume that 1 inch = 2.54 cm". While these are indeed assumptions, they are not necessarily what I am looking for. Most students seem to have little concept of what we mean by an assumption, and even less awareness of how to assess whether an assumption is reasonable and evaluate the limitations an assumption places on the usefulness of the outcome. Numerical modeling is full of assumptions, and provides an opportunity to teach students the process of making and/or identifying assumptions and evaluating the restrictions that assumptions might place on the outcomes of numerical models. To help with this process, students in this course are asked to make an extensive list of assumptions that have gone into making their models and then evaluate how those assumptions might influence the outcome.
Troubleshooting: This is perhaps one of the most difficult skills to teach students in the class. When a model does not produce what they expected or when an error occurs, many students become frustrated, and often have difficulty figuring out how to identify and remedy the error. I see this in other courses, too, where students, if they actually notice an error in their work, struggle to find errors in their calculations without assistance. Numerical models created by students almost never work perfectly the first time through, so there is a need for them to become efficient at troubleshooting their models. Initially, they tend to try to change things somewhat randomly, rather than methodically, and they don't isolate and test small portions of the model to locate the error. To help them learn this skill, they write out a pseudocode that details what happens at each step as written in the model (rather than as intended in the initial planning), and try to determine what might be happening in the model that deviates from the model plan.
All three of these skills are, of course, widely useful, but are generally not explicitly included in Geology courses. These skills, among others, are essential for independent thinking and problem-solving, and a numerical modeling course is an excellent venue to teach these skills explicitly.