What this course is about


Computing for Environmental Research is a “service” course driven by the traditional needs of its students. Students come to this course with interests in environmental science, climatology and meteorology, geology, atmospheric and oceanic modeling, fluvial processes, and other things.  These areas often have some of the following issues:

•Too many numbers.  Huge datasets of the sort that arise in atmospheric or population studies, or from automated field instrumentation, must be simplified either graphically or statistically to be understood.

  •Data that cannot be measured, but must be modeled.  When we try to understand the future, infer what is going on in inaccessible places such as the bed of a glacier or the interior of the sun, or try to understand the results of experiments that cannot or must not be done (habitat destruction,  human-induced changes in atmospheric chemistry, species extinction), then we build numerical models.  This subject will be lightly introduced in this course because advanced work requires significant mathematics that varies from subject to subject.

  •Quirky, "nonstandard" calculations and statistics.  Many areas of numerical work allow use of preëxisting software, such that complicated calculations can be called from toolbars or menus in easy-to-use packages.  Within our fields, data in nonstandard formats must often be read and converted to forms that standard packages can read, statistical techniques must be modified to deal with spatial autocorrelation, widely varying spatial density, or extremely nonnormal distributions, and most of our datasets do not come from the designed, random sampling covered in statistics textbooks.  Original research often requires original approaches to the calculations, so programming is necessary.

All of these problems can be attacked using a general-purpose programming language.  Programming in Fortran or similar languages allows complete freedom to calculate anything that can be calculated and removes any limitations on access to the full power of the computer.  Most of these advantages could be obtained in other computer languages you may have heard of, such as C++, Python, or Java.  The choice of Fortran in this course is driven by its overwhelming importance within atmospheric and geophysical modeling, which serves the core interests of this department.  (Fortran is also easy to learn, relative to some of the alternatives.) 

The goal for everyone is to learn some basic skills with Fortran programming. Depending on what students wish to do with these skills, further courses in statistics, numerical modeling, programming, data management, or computer science -- or simply more practice -- may be necessary to raise skills to the professional level needed for research work or employment.

Not everyone completing this course continues programming extensively.   Many of the ideas learned here are general programming concepts that can be readily applied to other programming contexts, such as the scripting or macro languages used within statistical or GIS packages.  Those who do not wish to continue numerical work after this course will, I hope, find that their interactions with computers in other contexts have been made a little more understandable -- that some of the mystery of dealing with software and computers will have been removed by the simple act of having written some software on a small scale.

Students from other areas (engineering or computer science, for example) occasionally take this course to pick up a working knowledge of the modern version of the oldest high-level computer language.  Welcome aboard. Examples and exercises will be from geographic and environmental fields, but no specialized knowledge of these areas is required.