Sustainable Software Engineering 🌱

Edition of 2024/25
MSc Computer Science and MSc Data Science and Artificial Intelligence Technology, Delft University of Technology

Sustainable Software Engineering is an overarching discipline that addresses the long-term consequences of designing, building, and releasing a software project. By definition, sustainability covers five main perspectives: environmental, social, individual, economic, technical. This course focuses on the first three.

Sustainability Domains

Software Engineering (SE) has long addressed sustainability by narrowing it down to economical and technical sustainability. However, our society is facing major sustainability challenges that can no longer be overlooked by software engineers and computer scientists. It was estimated that, by 2040, the ICT sector will contribute to 14% of the global carbon footprint. Hence, environmental, social, and individual ought to be part of the equation when it comes to design, build, and release software systems. The problem is far from simple, but we need expert computer scientists to bring sustainability into the core values of the next generation of tech-leading organisations.

This course covers a set of competencies needed to leverage sustainable software systems. It has a strong component on Green SE, covering techniques to measure and improve the energy-efficiency at any stage of the software lifecycle. Students learn state-of-the-art practices on energy efficiency and apply them in real software projects. Moreover, the course will cover core principles of empirical software engineering, and social and individual sustainability.

Organisation

Course code CS4415
Brightspace 🔒 https://brightspace.tudelft.nl/d2l/home/680663
Instructors Luís Cruz, Carolin Brandt
Schedule Mondays 8:45, Wednesdays 10:45, Thursdays 10:45. 🔗 MyTimetable.
Mattermost [Sign Up Link].
ECTS 5.0
Quarter Q3
Format Classes are optimised for in-person attendance.
Examination type Group Project 1 (40%); Group Project 2 (60%).
Target audience Students of the [MSc in Computer Science] and the MSc Data Science and Artificial Intelligence Technology.
Requirements - Intermediate understanding of OOP languages;
- Basic understanding of data analysis techniques.

Learning Objectives

By the end of this course you will be able to:

Outline

⚠️ Please note: The following outline is subject to changes; Recordings are available through Collegerama.

Class Week Summary
1 1 Lecture. Course introduction. Sustainable Software: What, Why and How.
2 1 Lab. Measuring software energy consumption. Introduction to Project 1.
3 1 Lecture. Green Software Engineering — Part I: Scientific guide for reliable energy measurements.
4 2 Lecture. Social and Individual Sustainability.
5 2 Project. Project 1 - steering meeting and formative assessment.
6 2 Lecture. Green Software Engineering — Part II: units of energy.
7 3 Lecture. Green Software Engineering — Part III: Energy efficiency in mobile computing; carbon-aware data centres.
8 3 Project. Project 1 - steering meeting.
9 3 Lecture. Green AI.
  3 ⏰ Deadline for Project 1 Friday, Feb 28.
10 4 Project. Project 2 - Description and kick-off.
11 4 Guest Lecture (Mar 5). Neuromorphic Computing, Nergis Tömen.
12 4 Lecture. Approximate Computing for Green Software, [June Sallou] - To be confirmed.
  5 Project 2 - steering meeting 1.
  6 Project 2 - steering meeting 2.
  7 Project 2 - steering meeting 3.
  8 Project 2 - steering meeting 4.
19 8 ⏰ Deadline Project 2 – April 4.
20 9 Presentation Project 2 – April 11.

Assignments

Below the description of each project.

🛠 Project 1 – Measuring Software Energy Consumption

🛠 Project 2 – Hacking Sustainability

Further reading (optional)

Interesting pointers