Final version of the course as delivered for the 2019 winter term