Sustainable Software Engineering 🌱

Edition of 2022/23
MSc in Computer Science, 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/499381
Instructors Luís Cruz, June Sallou
Schedule Tuesdays 8:45, Thursdays 8:45, Fridays 10:45. 🔗 MyTimetable.
Mattermost 🔗 Sign-up link
Zoom link Link shared on Brightspace.
ECTS 5.0
Quarter Q3
Format Classes are optimised for in-person attendance;
Online attendance is allowed in most classes.
Examination type Project 1 - Essay (30%); Project 2 - Software Repository and Essay (60%); Presentations (15%).
Target audience Students of the [M.Sc. in Computer Science].
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: Recordings are only available to the students because they are not edited and may include students’ interactions.

Class Week Summary
1 1 Lecture. Course introduction. Sustainable Software: What, Why and How.
📊Slides 🎥Recording hybrid
2 1 Lecture. Social and Individual Sustainability in SE. hybrid 📊Slides 🎥Recording
3 1 Lab. Measuring software energy consumption. Introduction to Project 1. 📊Slides hybrid
4 2 Presentation. Present a summary of a research paper on Social and Individual SE Sustainability. in-person
5 2 Lecture. Green Software Engineering — Part I: units of energy. 📊Slides 🎥Recording hybrid
6 2 Project. Project 1 - steering meeting and formative assessment. in-person
7 3 Lecture. Green Software Engineering — Part II: Scientific guide for reliable energy measurements. 📊Slides hybrid
8 3 Lecture. Green Software Engineering — Part III: Energy efficiency in mobile computing; carbon-aware data centres.📊Slides 🎥Recording hybrid
9 3 Project. Project 1 - steering meeting. online/in-person
10 4 Lecture. Approximate Computing for Green Software. 📊Slides. 🎥Recording hybrid
11 4 Lecture. Green AI. 📊Slides. 🎥Recording hybrid
12 4 Project. Project 2 - Description and kick-off. Slides hybrid
13 5 No class (Mar 14)
14 5 Guest Lecture (Mar 16). The GAISSA project. Towards green AI-based software systems: an architecture-centric approach – Silverio Martínez-Fernández, UPC-BarcelonaTech. 📊Slides. 🎥Recording. hybrid
15 5 Steering Meeting 1. hybrid
16 6 Steering Meeting 2. hybrid
17 7 Steering Meeting 3. online Project 2 1st Deadline (Mar 31).
18 8 Holidays
19 9 Project 2 Final Deadline (Apr 14).
20 10 Presentation. (April 19)

Assignments

Below the description of each project.

📚 Literature Review

🛠 Project 1 Measuring Software Energy Consumption

🛠 Project 2 – Hacking Sustainability

Further reading (optional)

Interesting pointers