I spent last summer thinking about how to bring something related to the climate crisis into my fall undergraduate algorithms class. In this class, I have converged on having 4-5 projects covering iterative, divide and conquer, dynamic programming, linear programming and heuristics. These projects each have a practical component where an algorithm is implemented. Linear programming seemed to be the tool that I could use to “solve” some problem in climate change. It wasn’t until I stumbled upon this article by Robert Vanderbei suggesting an upper-level class project wherein students fit a curve to daily temperature recordings. The suggested curve is the superposition of

- a sinusoidal curve with a period of one year to model the change in seasons,
- a sinusoidal curve with a period of 10.7 years to model the solar cycle, and
- a linear term representing any drift in mean daily temperatures.

I adapted the suggested project to my class and had them fit such a curve, using GLPK, to 60 years of daily temperature recordings for Corvallis.

I provided the students with the data and offered bonus credit for students who repeated the project for another location (downloading data from NOAA). The students found the project challenging but seemed to appreciate the tangibility of the project, so I think I will likewise adapt other projects. The students could then interpret the coefficient of the linear term as the amount of warming in average daily temperatures.

A few interesting things came up. For example, apparently two different versions of GLPK find two different “optimal” solutions to the same LP — with different values. For more details, please see the project description.

Next year, I think I will have them choose their own location by default as I think it is a useful experience to clean data …