Green computing — why bother?
You may be familiar with the idea of sustainable development, “development that meets the needs of the present without compromising the ability of future generations to meet their own needs” (helloworld.cc/brundtland1987). Shortly after the turn of the millennium, education was recognised as a way of ensuring that the next generation understood sustainable development and its importance. In 2015, the United Nations (UN) turned sustainability concepts into 17 specific Sustainable Development Goals (SDGs), including Climate Action, Sustainable Cities and Communities, Responsible Consumption and Production, and more.
As computer scientists, we need to recognise our duty and our role in helping. Green, sustainable computing is about understanding the impact that computing has, and making sure that the positive contributions outweigh any negative ones. There are other benefits to this than only moral ones. For example, effective solutions can also be better for us commercially and in education, and looking at the social context and applications can broaden interest in computing. This, in turn, can help to address the imbalance in the profile of students choosing to study computing.
The negative impact
Calculations around computing’s contribution to the global carbon footprint vary, but the contribution is typically estimated to be between 5 and 12 percent, which is roughly equivalent to that of the aviation industry. Every time we turn a computer on, and every time we run software, we are adding to the demand for energy. A large proportion of that energy comes from fossil fuels, and even if you live in a country that is striving to be carbon neutral, it is likely that activities such as online searches are run on cloud services in other countries, where fossil fuels may be the primary energy source. The continual cycle of replacing devices also means we are creating demand for manufacturing and transport, and creating piles of e-waste.
As educators, we should demonstrate the sort of behaviours and approaches that help reduce computing-related waste and pollution, and help improve others’ lives and society more widely. Some examples of this, linked to Goal 11 (Sustainable Cities and Communities) and Goal 12 (Responsible Consumption and Production), are:
Reduce energy consumption: introduce students to the vampire device problem. Vampires are electrical appliances that drain power when they are left on standby or aren’t in use. Ask students in the last class of the day to use ‘off’ rather than ‘standby’ in a computer lab; to use ‘hibernate’ rather than ‘sleep’; and to choose low-power options where available.
Avoid creating waste: upgrade your systems, and if that isn’t viable, donate them to charities that will reuse and share them (see James Abela and John Ling’s article for an example of this).
Think about the problems you are trying to solve: can you solve a problem in a more efficient way? While modern computer power means it can be tempting to simply find a solution, finding an efficient algorithm to solve a problem means it needs less resources, which means less pollution. For software that may be run millions of times, this could be as simple as utilising De Morgan’s laws and replacing ‘if not(a) and not(b)’ with ‘if not(a or b)’ (helloworld.cc/demorgan). Another example would be to make sure you use an efficient sort algorithm, such as Quicksort.
The positive impact
Of course, this isn’t to say that we should turn off all our devices now. As well as giving students advice about the ways to minimise the negative impacts of technology, we should balance this by exploring the positive things we can do as computer scientists.
For example, we can solve many world problems using computer science:
Improve logistics: if we can minimise the routing of goods around the world, we can save resources. This is an application of the travelling salesman algorithm problem: given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each city exactly once and returns to the origin city?
Develop sustainable cities: we can create smart buildings and smart energy grids that minimise waste energy and optimise use, using features such as lighting and heating that switch on when a room is occupied and go into low-power mode when it is empty.
Educate people: we can create games that help to educate people about issues of sustainability; gamesforchange.org includes great examples of games that help us to understand other people’s perspectives and challenges, and my university uses games to teach about environmental problems such as flooding (helloworld.cc/floodgame).
Solve world problems with technology: computing technology has been called upon during the coronavirus pandemic, from the modelling of the virus itself, to the modelling and visualisation of how it spreads, to solutions to social distancing through online meetings, online learning, and online shopping.
Some of these are clearly in line with the UN SDGs, so a good project or task is to get your students to explore the SDG themes and investigate how computing can help address them. There are lots of examples, from health (Goal 3) and education (Goal 4) to sustainable cities (Goal 11). Some of the examples above also cover consumption (Goal 12) and helping to address climate change (Goal 13).
These discussions can help students to think about what has been done with computer science, and what is emerging, so they can see that computing has changed the world, and increasingly so — and we can ensure that this change is for the common good. I believe computer science can address the Sustainable Development Goals and we can make the world better through computing — I hope you do too.