Table of Contents
Fetching ...

Ten Years of Teaching Empirical Software Engineering in the context of Energy-efficient Software

Ivano Malavolta, Vincenzo Stoico, Patricia Lago

TL;DR

Addressing the rising energy footprint of software, this paper presents a decade of experience running the Green Lab course, a research-oriented program that teaches Empirical Software Engineering in the context of energy-efficient software. Its core approach combines an 8-week, project-based curriculum with controlled experiments, replication-ready workflows, and open-source tooling to produce publishable studies across web, mobile, robotics, and IoT domains. The work documents course design, measurement infrastructure, and a portfolio of success stories, illustrating how education can drive rigorous energy-aware software research and practical impact. Together, these contributions provide a reusable blueprint for integrating empirical methods into software engineering education while fostering a thriving open-source tooling community.

Abstract

In this chapter we share our experience in running ten editions of the Green Lab course at the Vrije Universiteit Amsterdam, the Netherlands. The course is given in the Software Engineering and Green IT track of the Computer Science Master program of the VU. The course takes place every year over a 2-month period and teaches Computer Science students the fundamentals of Empirical Software Engineering in the context of energy-efficient software. The peculiarity of the course is its research orientation: at the beginning of the course the instructor presents a catalog of scientifically relevant goals, and each team of students signs up for one of them and works together for 2 months on their own experiment for achieving the goal. Each team goes over the classic steps of an empirical study, starting from a precise formulation of the goal and research questions to context definition, selection of experimental subjects and objects, definition of experimental variables, experiment execution, data analysis, and reporting. Over the years, the course became well-known within the Software Engineering community since it led to several scientific studies that have been published at various scientific conferences and journals. Also, students execute their experiments using \textit{open-source tools}, which are developed and maintained by researchers and other students within the program, thus creating a virtuous community of learners where students exchange ideas, help each other, and learn how to collaboratively contribute to open-source projects in a safe environment.

Ten Years of Teaching Empirical Software Engineering in the context of Energy-efficient Software

TL;DR

Addressing the rising energy footprint of software, this paper presents a decade of experience running the Green Lab course, a research-oriented program that teaches Empirical Software Engineering in the context of energy-efficient software. Its core approach combines an 8-week, project-based curriculum with controlled experiments, replication-ready workflows, and open-source tooling to produce publishable studies across web, mobile, robotics, and IoT domains. The work documents course design, measurement infrastructure, and a portfolio of success stories, illustrating how education can drive rigorous energy-aware software research and practical impact. Together, these contributions provide a reusable blueprint for integrating empirical methods into software engineering education while fostering a thriving open-source tooling community.

Abstract

In this chapter we share our experience in running ten editions of the Green Lab course at the Vrije Universiteit Amsterdam, the Netherlands. The course is given in the Software Engineering and Green IT track of the Computer Science Master program of the VU. The course takes place every year over a 2-month period and teaches Computer Science students the fundamentals of Empirical Software Engineering in the context of energy-efficient software. The peculiarity of the course is its research orientation: at the beginning of the course the instructor presents a catalog of scientifically relevant goals, and each team of students signs up for one of them and works together for 2 months on their own experiment for achieving the goal. Each team goes over the classic steps of an empirical study, starting from a precise formulation of the goal and research questions to context definition, selection of experimental subjects and objects, definition of experimental variables, experiment execution, data analysis, and reporting. Over the years, the course became well-known within the Software Engineering community since it led to several scientific studies that have been published at various scientific conferences and journals. Also, students execute their experiments using \textit{open-source tools}, which are developed and maintained by researchers and other students within the program, thus creating a virtuous community of learners where students exchange ideas, help each other, and learn how to collaboratively contribute to open-source projects in a safe environment.
Paper Structure (28 sections, 12 figures, 3 tables)

This paper contains 28 sections, 12 figures, 3 tables.

Figures (12)

  • Figure 1: Technical skills of Green Lab students in 2023/2024
  • Figure 2: Schedule of the course in 2023/2024
  • Figure 3: The Green Lab physical infrastructure
  • Figure 4: Green Lab community of learners
  • Figure 5: Energy consumption in Joules of the 7 Web apps with (swon) and without service workers (swoff) on different mobile devices (LG G2, Nexus 6P) and under different simulated network conditions (2G, WiFi) -- adapted from Mobilesoft_2017
  • ...and 7 more figures