Experiential Learning Applied to a MATLAB-based Undergraduate NWP Course
Thomas A. Guinn
Embry-Riddle Aeronautical University Department of Applied Aviation Sciences
Daytona Beach, FL 32114
Strong computer-based problem solving skills are frequently discussed as being highly desired for both graduate school and industry. To help develop these skills, Embry-Riddle Aeronautical University, Daytona Beach (ERAU-DB) has developed new undergraduate numerical weather prediction (NWP) course, which is required for all meteorology majors. The motivation for developing the course was to enhance and build student competency and confidence in scientific computing as applied to NWP using experiential learning concepts. In addition, the course serves to provide students a deeper insight into the complexities of atmospheric modeling and modern NWP models. However, it does not attempt to provide guidance on the use of NWP models in operational forecasting. The course has been offered three separate times as an independent-study research course, and in all three offerings, MATLAB was the programming language of choice. In fall 2015, the course will be formally offered as a traditional course.
Kolb's (1984) model for experiential learning focuses on a cyclical active experimentation process where students are given opportunities for hands-on practice (concrete experiences) allowing them to immediately observe what worked and what didn't (reflective observation) followed by thinking of ways to improve the results (abstract conceptualization). This model is well suited for an undergraduate numerical modeling class where students can experiment with different algorithms to determine what works and what doesn't, then apply theoretical concepts to determine the best action to take to correct the problems.
MATLAB was chosen as the programming language for the course both because of its benefits for experiential learning as well as other more pragmatic reasons. First, all meteorology majors at ERAU-DB are required to take an introductory course in engineering computing taught entirely in MATLAB. This gives the students the skills necessary to be immediately productive in the NWP class with minimal review. Second, MATLAB is a relatively easy language to learn with substantial on-line help so students can spend more time focusing on experimenting with the application of theoretical concepts and less time on learning to code. Third, MATLAB allows students to plot and view their results quickly and easily, an attribute that is particularly useful to support Kolb's (1984) active experimentation process. For example, when examining the numerical stability of different finite-difference schemes, students can immediately see the impact of violating CFL criteria. They can also experiment with the sensitivity of the scheme to CFL criteria by varying the time step or advection speed and examining the impact on the success of the numerical solution. Lastly, MATLAB's fast Fourier transform (FFT) routines are simple to use, allowing the introduction of spectral and pseudo-spectral methods at the undergraduate level. There are, however, some drawbacks to using MATLAB. Most notably is that because MATLAB is largely a run-time language (although MATLAB compilers do exist), students are not given exposure to the concepts of compiling code to create executables, such as with FORTRAN, C++ or Python. This skill would be particularly beneficial for students seeking graduate school.
The NWP course is offered at the senior level and requires students to not only have completed their introductory computing course but their two-semester atmospheric dynamics sequence and their differential equations and matrix methods course (a single combined four-credit course) as well. This ensures they have adequate familiarity with the equations used in NWP as well as the basic math concepts for manipulating the equations. Additional math concepts are taught within the course as needed, such as Fourier series and discrete Fourier transforms, which are necessary for the discussing spectral modeling. MATLAB is used primarily for the quantitative concepts taught within the course such as: finite differencing, stability analysis, spectral and pseudo-spectral methods, explicit schemes, filters, multi-step schemes, and predictor-corrector schemes. Homework and lab experience were developed that require students to either create new MATLAB code or modify existing code to experiment with the concepts taught during lecture. Because of the undergraduate nature of the course and the time constraints, some important NWP topics are only taught at a more qualitative level with little use of MATLAB. These topics include: parameterization of sub-grid scale processes, data assimilation, predictability, vertical coordinates, an overview of current operational numerical models, and spectral methods extended to the sphere.
The textbook chosen for the course was Decaria and van Knowe (2014). This text works exceptionally well because it was specifically designed as an introductory atmospheric modeling book geared directly towards undergraduate students. To the author's knowledge, this is only NWP textbook written specifically towards undergraduates. Theory is provided along with coding examples to aid in experiential learning. In addition, Lackmann (2011) is used for some of the more qualitative topics because of the impressive graphics available. Since the Lackmann text is also used for another course, it required no extra expenditure by the students.
The course culminates with students running and experimenting with a spectral version of a barotropic vorticity equation (BVE) model written in MATLAB. Students are given the opportunity to apply different initial conditions, modify time-differencing schemes, change the time step and grid resolution, and adjust diffusion parameters to examine the impacts. To reinforce concepts, the numerical results are compared with expected results based on theory.
In summary, the NWP course provides experiential learning with the goal of improving retention and increasing both competency and confidence in scientific computing. MATLAB provides an excellent platform to allow students to actively experiment with different atmospheric modeling concepts, immediately view the results, and apply theory to improve the outcome.
DeCaria, A.J, and G.E. Van Knowe, 2014: A First Course in Atmospheric Numerical Modeling. Sundog Publishing, 320pp.
Kolb, D.A., 1984: Experiential learning: Experience as the source of learning and development (Vol. 1). Englewood Cliffs, NJ: Prentice-Hall.
Lackmann, G.M., 2011: Mid-Latitude Synoptic Meteorology, Dynamics, Analysis and Forecasting. Amer. Meteor. Soc., 345pp.