Current Courses at ETH Zurich & UZH

All about Transformers and Stable Diffusion: A Step-by-Step Guide
Learn to implement from scratch a transformer-based translator and a small version of stable diffusion. Only basic knowledge of PyTorch is required. We explain everything in simple terms and provide the necessary intuitions behind each component.

We start by giving an overview of how NLP works, then move to how attention mechanisms are conceived, and then arrive to the transformer architecture. Afterwards, we introduce diffusion processes, UNets, and cross-attention mechanisms. At the end, we implement a simplified yet complete stable diffusion model that can be trained in a few minutes in a normal laptop.

Throughout the tutorial we work with a simple fictitious dataset consisting of pairs of texts and images. The texts are English sentences consisting only of the following words: "circle", "triangle", "after", "one", "two", "and". Each sentence describes at most 4 figures. One example of such a sentence would be "two triangles and one square after one triangle." We call this English fragment Shape English. Each text comes with an image that illustrates the sentence.
Advanced Machine Learning
A comprehensive course covering advanced topics in machine learning, including statistical learning theory, optimization methods, and modern deep learning architectures. Offered in 2020-2022 and 2024.
Statistical Learning Theory
Theoretical foundations of machine learning, covering topics such as PAC learning, VC dimension, Rademacher complexity, and algorithmic stability. Taught in 2020-2021.
An Introduction to Machine Learning for Medicine
Interdisciplinary course bridging machine learning and medical applications, designed for medical students and healthcare professionals. Taught at UZH in 2020-2021.

Special Lectures & Tutorials

An Elementary Introduction to Quantum Computing
VMI Retreat 2022
We present here some of the basics for quantum computation, using only linear algebra over the real numbers. No previous knowledge of quantum mechanics or analysis with complex numbers is required.
Algorithm Validation via Information Theory
Statistical Learning Theory 2020
How can you tell if your algorithm is learning correctly from your data? These notes present a method for this, using information theory. Originally proposed by Prof. Joachim Buhmann.
Support Vector Machines
Advanced Machine Learning 2019
Derivation of SVMs, with a preface on Lagrange multipliers, illustrated with a petrel, a cat, and a fish.
Bayesianism, Frequentism, and Maximum-Likelihood Estimators
Advanced Machine Learning 2019
An overview of Bayesian inference and maximum-likelihood, using a shoe shop as an example.
A Dog, a Vegan Flea, and the EM Algorithm
Statistical Learning Theory 2019
A simple, but rigorous derivation of the expectation-maximization algorithm using a bidimensional dog and a vegan flea.
The Essentials of Machine and Deep Learning
Software Crafters 2018
A half-day workshop giving an introduction to classification, using machine and deep learning. Only basic programming knowledge in Python is required.

Teaching Philosophy

My teaching philosophy centers on making complex mathematical and computational concepts accessible through clear explanations, intuitive examples, and hands-on implementations. I believe that the best way to understand machine learning is to build it from scratch, understanding each component's purpose and mathematical foundation.

I emphasize the connection between theory and practice, ensuring that students not only learn the mathematical formulations but also understand how to implement and apply these concepts in real-world scenarios. My courses are designed to be inclusive, requiring minimal prerequisites while building up to sophisticated concepts through careful scaffolding.

Whether explaining transformers through "Shape English" or deriving the EM algorithm with a vegan flea, I use creative analogies and visual aids to make abstract concepts concrete and memorable. This approach has proven effective across diverse audiences, from computer science students to medical professionals learning about AI applications in healthcare.

Educational Contributions

Curriculum Development
Active contributor to curriculum development for machine learning education in medicine, working with interdisciplinary teams to prepare future physicians for AI-driven healthcare.
Open Educational Resources
Creator of numerous open-access educational materials including course scripts, interactive notebooks, and video lectures that serve the global machine learning education community.
Workshop Leadership
Regular workshop leader at academic retreats and professional development events, focusing on making advanced topics accessible to diverse audiences.