Since 2020, I teach a one semester course at Technical University of Munich on machine learning for communications. In this course, we design the components of a communication system using deep learning. In the tutorials, we use the PyTorch framework. The focus is on choosing architectures and loss functions suitable for communication system design. The lecture notes are a work in progress. The latest released version can be found under the link below.