Blog - Green scientific programming (Rev #10)

This page is a blog article in progress, written by David Tanzer. To see discussions of this article while it was being written, visit the Azimuth Forum.

Please remember that blog articles need HTML, not Markdown.

*guest post by David Tanzer*

As a programmer, and as a human being, have you ever wondered how you could put your skills towards the helping of our distressed planet? Here, let’s consider the idea of “green scientific programming.” But before talking about scientific programming for environmental applications, let’s say a few words about scientific programming itself.

When I hear about “scientific programming,” a whole raft of associations come to mind, which tend to be somewhat narrowing and stereotypical: Scientific programming has roots in the 1950’s and the development of Fortran, was spoon-fed in its infancy from punched cards and mainframes, makes heavy use of numerical analysis and computation, is core to the NASA software development efforts, has gone through a transformation to the use of the compiled languages C and then C++; is driven towards intensive use of parallel processing hardware; has found applications in the “rocket science departments of financial institutions; pertains to the gathering of massive amounts of sensor data, and to the control of laboratory experiments; is a high-subspecialty, which might not in general make for scintillating conversation of an first date.

Except for the last slur against scientific programming, all of this is true! And I touched up many great aspects of the field in my list. Just for good mention, I’ll add as a sign of goodwill, another item to my list: scientific programming is extensively applied in signal processing applications, and has critical medial applications, such as to the processing [and interpretation] of MRI and echocardiogram data.

Nevertheless, I prefer to interpret it in somewhat more basic terms, as all programming that is associated with the scientific enterprise, including the wealth of technical applications such as the ones I have described, but also, cases where the software does not merely constitute “tools,” but where it serves as a primary medium for conducting experiments [and reasoning]. In particular, this means *simulations* – and modeling – as a means of experiment. Later in this article, I will talk about one such application, in the field of biological modelling, which may be a harbinger for a whole class of studies in scientific programming for environmental applications.

I’ll tell you right up front, that I don’t know enough abut scientific programming, or environmental applications, to lay out any kind of structured agenda for this field of study. What I can offer you is a “meta-idea” for an agenda, which is to ride on the wave that is now underway by some mathematicians who are pursuing environmental applications, and join up with them, to make a synergistic development effort.

One lead here is the work at the Azimuth group, which was founded by quantum-researcher-turned-environmental-mathematician John Baez. In various talks and papers, he as posed the question: What can mathematicians to help the environment [link]? The critical concept that this led him to formulate was the pursuit of *green mathematics*, defined as that mathematics which is critical to our understanding of the biosphere – everything living, along with its environment – and our role within it. His main postulate is that at the core of this mathematics will be the challenges posed by *network theory*, as the biosphere is itself a network of massive complexity. For a synopsis of these theses, see the article that we wrote called Prospects for a Green Mathematics.

While I am preparing the next article, your homework in the meantime will be to read and study the article that I just mentioned. I say this not merely out of vanity, but just as much because it gives an informal technical introduction to what may be a paradigmatic application of green mathematics, that shows a window to an uncharted continent of network-based studies of living nature – this is Qinglan Xia’s network-based model of a growing tree leaf.

In my next article, I will build upon that exposition, and describe that model for what it shows, qualitatively, about the exciting prospects for the field of “green scientific programming,” which lies at the crossroads of a number of studies: natural science, mathematics, programming and computer science.

Have you ever wondered how really good articles, such as this one, get written? Of course, each writer does their own thing, but the Azimuth group, which is an interdisciplinary community of scientists, mathematicians and programmers (and other interested folk), really helps a lot. The blog articles are the *results* of efforts that take place in the context of the *Azimuth Forum*, which is the permanent site where we flesh out ideas for research, blog articles; where we strategize for how to increase the reach of science into the horrible knot which is the environmental crisis; where we talk about how to extend the interface between professional science and the conditions of human nature.

– Here are some categories of the forum

If you are interested in anything you see on the forum, or what it could potentially be – then we are interested in you! Membership is free today, but it may double tomorrow, so don’t wait.

– The only real qualification for membership is a sincere desire to learn and participate

A good example of this kind of mathematics is Qinglan Xia’s network model of a growing plant leaf. It is essentially an network-based algorithm for plant development, which is based on simplified yet plausible physical assumptions. The model also presents evidence for a broader claim, which is that network theory is capable of illuminating the actual workings of nature.

So, here is one answer to what programmers can do to help the planet: help the mathematicians who are pursuing “green mathematics” and its applications!

I hope that this entree’ has given you a sense of some exciting possibilities in the realm of what could be called *green scientific programming.* It is a fertile context, with facets involving natural science, mathematics, programming, and the analysis of algorithms. There is a great opportunity here for collaboration between programmers, mathematicians and scientists. Here, you can learn “on the job” from people in a wide range of fields.

The Azimuth Project is an interdisciplinary community that aims to contribute, among other things, to the development of green mathematics and green scientific programming. If you are interested in exploring any of these ideas further, I encourage you to take a further step, which goes beyond the transient realm of blog discussions. Come join us at the Azimuth Forum, which is the permanent site where we hash out ideas for research, and where we develop and review these blog articles.

category: blog