Teaching

Teaching Portfolio

Teaching is the core of what I do. Since 2020 I have taught machine learning and computer science across ETH Zürich, from master's students to managers in continuing education to first-year students in the engineering and science departments.

Featured lectures

Two recorded lectures from Advanced Machine Learning (ETH Zürich, 2025), with the accompanying notes.

Regression, from least squares to neural tangent kernels Advanced Machine Learning · ETH Zürich · Notes (PDF) · Watch on ETH
Convex optimization with tridents and lightsabers Advanced Machine Learning · ETH Zürich · Notes (PDF) · Watch on ETH

Courses since 2020

Master's, machine learning

Graduate courses in machine learning for master's students in computer science, data science, statistics, and related programs.

  1. Advanced Machine Learning 252-0535-00L

    Co-taught with Professor Emeritus Joachim Buhmann. The two featured lectures above are from this course.

  2. Statistical Learning Theory 252-0526-00L

    Theoretical foundations of machine learning: PAC learning, VC dimension, Rademacher complexity, and algorithmic stability.

Continuing education for industry

Courses for working professionals in ETH's CAS and MAS programs in artificial intelligence and digital technology.

  1. Building ML/AI Applications 273-0003-00L

    CAS in AI and Software Development; MAS in AI and Digital Technology.

  2. AI in Industry 275-0004-00L

    CAS in AI, Data and Machine Learning; MAS in AI and Digital Technology.

  3. Software Engineering Fundamentals 273-0002-00L

    CAS in AI and Software Development; MAS in AI and Digital Technology.

  4. AI Project 277-0001-00L

    MAS in AI and Digital Technology.

  5. Seminars 277-0003-00L

    MAS in AI and Digital Technology.

Foundations for engineering and science

First-year computer science and data-analysis courses for students across ETH's engineering and science departments.

  1. Informatik II (Computer Science II) 252-0833-00L

    Mechanical Engineering (D-MAVT), first-year compulsory course.

  2. Informatik I (Computer Science I) 252-0832-00L

    Mechanical Engineering (D-MAVT), first-year compulsory course.

  3. Stochastics and Machine Learning 252-0870-00L

    Mechanical Engineering (D-MAVT), compulsory course in Examination Block 2.

  4. Data Analysis in Physics 402-1900-00L

    Physics (D-PHYS), first-year compulsory course.

  5. Computer Science I 252-0845-00L

    Civil, Geospatial and Environmental Engineering (D-BAUG).

  6. Computer Science II 252-0846-00L

    Civil, Geospatial and Environmental Engineering (D-BAUG).

  7. Informatik (Computer Science) 252-0847-00L

    Mathematics and Physics Bachelor (first-year), and Interdisciplinary Sciences.

Interactive visualizations

Browser-only, click-through visualizations I build to make machine-learning ideas tangible. Open any one and step through it.

Eigenfaces: PCA on faces

Principal component analysis

Eigenfaces

Twenty principal directions that almost reconstruct any face, and that look like faces themselves.

Hands-on tutorials & special lectures

  1. All about Transformers and Stable Diffusion: A Step-by-Step Guide

    Implement a transformer-based translator and a small stable-diffusion model from scratch, with only basic PyTorch required. We build up from attention to the transformer architecture, then introduce diffusion processes, UNets, and cross-attention, ending with a complete stable-diffusion model trainable in minutes on a laptop, using a tiny "Shape English" dataset so every component stays inspectable. This bottom-up approach was evaluated in a classroom randomized controlled trial at ETH Zürich; the resulting paper received the CER Best Paper (Global) award at SIGCSE 2026.

    • CER Best Paper (Global), SIGCSE 2026
    • Transformers
    • Diffusion
    • PyTorch
  2. An Elementary Introduction to Quantum Computing

    The basics of quantum computation using only linear algebra over the real numbers. No prior quantum mechanics or complex analysis required.

  3. Algorithm Validation via Information Theory

    How can you tell whether your algorithm is learning correctly from your data? A method based on information theory, originally proposed by Professor Emeritus Joachim Buhmann.

  4. A Dog, a Vegan Flea, and the EM Algorithm

    A simple but rigorous derivation of the expectation-maximization algorithm using a two-dimensional dog and a vegan flea.

  5. Support Vector Machines

    A derivation of SVMs, with a preface on Lagrange multipliers, illustrated with a petrel, a cat, and a fish.

  6. The Essentials of Machine and Deep Learning

    A half-day workshop introducing classification with machine and deep learning. Only basic Python is required.

Teaching Philosophy

Teaching is my passion. I center it on making complex mathematical and computational ideas accessible through clear explanations, intuitive examples, and hands-on implementations. I believe 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, so that students learn not only the mathematical formulations but also how to implement and apply them. 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", deriving the EM algorithm with a vegan flea, or projecting a century of Senate votes onto two axes, I use creative analogies and interactive visualizations to make abstract concepts concrete and memorable. That same curiosity now drives my research, which increasingly studies how we teach computer science.