Summary
Scientific computing is an important aspect of the undergraduate meteorology curriculum at Millersville University. All students take a course in Fortran, and many take additional courses in Python and atmospheric numerical modeling. This presentation discusses how scientific computing is incorporated into the curriculum, and why Fortran and Python were chosen as the languages to be taught.
Description
Scientific computing is integrated into the undergraduate meteorology curriculum at Millersville University. The curriculum guidelines published by the American Meteorological Society specifically address scientific computing in undergraduate atmospheric sciences curricula, stating that students should gain “experience using a high-level structured programming language (e.g., C, C++, Python, MATLAB, IDL, or Fortran).” This is addressed at Millersville via the programming-specific courses are ESCI 282 – Fortran Programming for the Earth Sciences, and ESCI 386 – Scientific Programming, Analysis and Visualization with Python. There are also additional courses in which the students are required to use scientific computing as part of their assignments. Examples of these courses are ESCI 445 – Numerical Modeling of the Atmosphere and Oceans, and ESCI 390 – Remote Sensing.
Although the university’s computer science department teaches programming courses in Java, this is not very applicable to our students’ needs for scientific programming. We therefore teach our own programming courses in-house. The required programming course taken by all students is the Fortran course, which teaches them the elements of programming. This is many students’ first exposure to programming. Most then follow-on by taking the Python course. In the Python course, scientific data analysis and visualization are stressed, using the Scientific Python, Numerical Python, and Matplotlib libraries.
In the elective numerical modeling course, students are required to write programs for finite-difference solutions to various 1-D and 2-D partial differential equations relevant to modeling the fluid dynamics of the atmosphere. They may program in any language of their choosing, but the majority of students choose Python, even if they have no prior experience with it. This is because of Python’s intuitive syntax and ease of use. In the elective remote sensing course students are introduced to and use IDL/ENVI for display and analysis of remote sensing imagery.
Prior to 2012 the current Python course was instead taught as a course in IDL. The transition was made for several reasons. The primary reason was the limited market and usage of IDL compared to more pervasive languages such as MATLAB and Python. Many students would not have access to IDL once they graduate. Also, Python is gaining traction in usage in the atmospheric and oceanic sciences, and is not proprietary like IDL and MATLAB, so students will have access to it no matter where they find employment or graduate school opportunities. The high cost of maintaining an institutional IDL license is also an issue that the university must address annually, and it times of lean budgets it becomes an attractive target for elimination. The IDL course is still on the books, but there are no immediate plans for upcoming offerings.