Prof. Dr. Tobias Friedrich

Competitive Programming with Deep Learning

MSc Seminar - Winter 2020/21

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


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.


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.


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.