Software plays a pivotal role in almost all aspects of our life, including transportation, communication, economy, and healthcare. We put trust in software to accomplish complex and vital tasks for us, such as managing our finances, sharing our family and friends’ memories, diagnosing diseases, flying airplanes or driving cars. The complexity of these tasks, while becoming transparent to us, does not go away: It is distilled into the software our civilization depends on. Indeed, we are already in the era of ultra-large-scale software systems, composed by millions of code components interacting among them. In such a scenario, software cannot be understood without its data and data becomes valuable only thanks to the software analyzing it. In other words, software engineering aims at managing the complexity of software, keeping it under control. Data engineering focuses instead on how to collect, store, and process huge amounts of data, that can be analyzed to gather insights and support decision making activities. The master features courses taught by world’s leading researchers of the Software Institute at the USI Faculty of Informatics.