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 …

mikeroThat is cool, Cora. I like the idea from that article you referenced, to check whether the optimal regression is indeed in phase to the solar cycle. Did you find that to be the case with Corvallis data?

Glencora BorradailePost authorI didn’t have the students do that (nor did I check myself) — just had them model the problem as an LP and find the best fit curve (by minimizing the maximum discrepancy).