Most devices such as standard desktop computers, phones, but also fridges, cars or planes, make use of an operating system of sort to manage the execution of several concurrent processes and ensure correct, safe and efficient operation. The Operating systems course introduces the most relevant concepts for understanding how operating systems work. It provides insights and theoretical background on how to manage concurrent processes, implement basic synchronization and communication protocols, manage memory and file systems, and presents tools to analyze how those techniques may impact the correctness and timing of applications.