SISL > Disciplinary Perspectives > Computer Science

Teaching Sustainability in Computer Science

Teaching computer science offers abundant opportunities to incorporate sustainability into the classroom.

Sustainability issues are inherently interdisciplinary. See the Resources & Discussions page for resources that span multiple disciplines and the Disciplinary Perspectives pages.

Exploring Sustainability through Computer Science

Computational Sustainability is a nascent and growing field of computing that is concerned with the application of computer science principles, methods, and tools to problems of environmental and societal sustainability. This is not a one-way street, however, because sustainability problems force computer scientists into new theory, as well as new practice. For example, sustainability problems require extraordinary attention to solution robustness (e.g., so that a so-called optimal solution doesn't catastrophically fail with an environmental change) and issues of uncertainty, ranging from uncertainties in environmental sensor readings to uncertainties in the budget awarded by a state legislative body for wildlife management!

These pages point to material that can help instructors infuse sustainability into the computer science curriculum. These materials range from entire courses dedicated to computing and sustainability, to stand alone exercises that contextualize a CS problem within a sustainability application.

Areas of computing that are relevant to sustainability include:

Depending on our breakdown of computing, there are many other areas that we could elaborate above (e.g., computer vision, algorithm energy analysis), and which are fair game for these pages.

Sustainability and Computer Science for the Undergraduate Curriculum

Sustainability can be addressed in many different types of courses, from CS 101 to advanced graduate-level classes. Thus, there are many pathways to introduce sustainability themes into a wide range of topics.


Artificial Intelligence for Computational Sustainability: A Lab Companion

For more resources on teaching sustainability across many disciplines, see the Teaching Activities, Resources, Beginner's Toolkit, Empowering Students, and other sections of this website (see the left navigation bar on this page). Also visit the SERC Sustainability Site Guide. This site guide contains annotated links to hundreds of teaching activities, course descriptions, visualizations, and articles compiled through a number of projects.


Greening through IT
Tomlinson, Bill, 2010, MIT Press

Computer Scientists Teaching Sustainability

Sustainability can be taught at many points in the computer science curriculum, ranging from a "Computers and Society" type of course with no CS prerequisites, to an upper-division or graduate course in computer science. In the latter case especially, a computational sustainability course can be one of a very few courses in a curriculum that minimally survey, and possibly synthesize material across the entirety of the computer science curriculum, ranging from computer architecture, artificial intelligence, algorithmic theory, and social computing.

Courses listed here have been taught previously and the course level (introductory, advanced, graduate) is listed as well.

Sustainability and Assistive Computing

Eric Eaton, Bryn Mawr College

Artificial Intelligence for Health and Sustainability (opens pdf)

Emma Brunskill and Manuela Veloso, Carnegie Mellon University

Computing and the Environment (opens pdf)
Doug Fisher, Vanderbilt University. Advanced, upper-division course.

Organizations and Institutes with Additional Resources

Institute for Computational Sustainability

Continuing Education and Networking


« Previous Page      Next Page »