Prof. Dr. Tobias Friedrich

Competitive Programming with Deep Learning

MSc Project Seminar - Winter 2020/21

This course will be held fully digital. Therefore, it is important that all participants subscribe to the moodle of the course untill Nov. 5th. There, we will make announcements regarding the course and organizational details. In case of problems with subscribing to our moodle, please get back to the lecture team via e-mail. Please note that you have to additionally register to the Studienreferat as usual. We will make the link for the first lecture, which will be held on Nov. 6th at 11:00 a.m., available on moodle soon.

Personen: Prof. Dr. Tobias Friedrich, Dr. Sarel Cohen, Vanja Doskoč
Links: Lehrveranstaltungen IT-Systems Engineering, Algorithm Engineering Moodle*

*) Should you not have access to the moodle, please contact Vanja Doskoč.


In this course we will both study practical deep learning algorithms (using the fast.ai framework) and participate in AI online competitions using the Kaggle platform. Please note that this course will be held fully online. Please keep in mind that there is a participan limitation for this course.


We will study how to develop deep neural networks for computer vision tasks (such as image classification, image segmentation, CNNs), NLP, Tabular Data. Furthermore, we will also study some basic building blocks of deep learning (SGD optimizers, Backpropagation) and commonly used deep learning architectures such as ResNet, U-Net and GANs. Througout the course, we will follow version 3 of the fast.ai course (https://course19.fast.ai/). Here is a tentative syllabus thereof.

Lesson 1: Image classification.
Lesson 2: Data cleaning and production; SGD from scratch.
Lesson 3: Data blocks; Multi-label classification; Segmentation.
Lesson 4: NLP; Tabular data; Collaborative filtering; Embeddings.
Lesson 5: Back propagation; Accelerated SGD; Neural net from scratch.
Lesson 6: Regularization; Convolutions; Data ethics.
Lesson 7: Resnets from scratch; U-net; Generative (adversarial) networks.

If time allows we will also learn about the internals of fast.ai (which is Part 2 of the online fast.ai course). There is also a relevant book: “Deep Learning for Coders with Fastai and PyTorch: AI Applications Without a PhD”, but note that you are not required to read this book as it is relevant fo version 4 of the fast.ai course, while we follow version 3 thereof.

Competitive Programming using Kaggle:

In parallel to the lectures, the students (in groups) will also participate in Kaggle online competitions together with thousands of AI programmers world-wide. The Kaggle competitions will be a good chance for you to practice deep learning algorithms (as well as other ML techniques). There, you are free to use any programming language, any libraries, any framework (Pytorch, Keras, Tensorflow, fast.ai, whatever you prefer) and any algorithms (ML or deep learning or even heuristics) as you like. The goal in these competitions will be to maximize your points in the competition.

Note that we do not split the course into first half lectures and second half coding competitions. Both activities happen in parallel and are interleaved, so you can start practicing early on the course.


Participants are expected to know how to program in python. There are no further requirements for the course.

Please be aware that this course is taught in English.


The evaluation of the event is based on the performances of the ongoing contests of other teams and the submission of homeworks presentation. The grade is composed as follows:

  • 30% homework (individual)
  • 70% performance in the contests (in teams)


We meet online weekly on Friday, at 11:00 - 12:30. The technical details for these meetings will be shared via moodle.