Teaching

I teach statistics, causal inference, and computational social science with a strong focus on hands-on coding, reproducible research, and independent problem-solving. My goal is to train students who are not just users of methods, but critical and autonomous empirical researchers.

I have designed and taught more than 40 courses and workshops across the University of Milan, University of Zurich, and University of Lucerne. In 2022, I received an Honorary Mention for Excellence in Teaching from the Faculty of Humanities and Social Sciences (University of Lucerne).

My teaching practice is grounded in evidence-based pedagogy for computational learning, with a strong emphasis on live coding, formative assessment, collaborative problem-solving, and inclusive classroom design. I also hold the official RStudio tidyverse Instructor Certification.


Teaching Areas

Statistics & Data Science

Applied statistics, regression models, Monte Carlo simulation, and statistical programming in R, with a continuous emphasis on interpretation and uncertainty.

Causal Inference & Research Design

Design-based inference, matching, regression discontinuity, instrumental variables, panel data, and difference-in-differences.

Computational Social Science

Web scraping, APIs, reproducibility, Git/GitHub, automated text analysis, and large-scale digital trace data.


Current Courses (University of Milan)

The Statistics of Causal Inference

Master & PhD Level

An advanced introduction to design-based causal inference for social scientists.

Core topics:
Directed Acyclic Graphs (DAGs), Potential Outcomes, Matching & Subclassification, Regression Discontinuity, Instrumental Variables, Panel Data, Difference-in-Differences, Synthetic Control.

Multivariate Analysis for Social Scientists

Master Level

A rigorous introduction to statistical modelling for empirical social research.

Core topics:
Probability foundations, linear and generalized linear models, interactions, prediction, uncertainty, and interpretation.


Teaching Philosophy

Tip

I treat coding as a research instrument. Students learn by replicating real studies, building their own datasets, and developing projects that are fully reproducible from raw data to final paper.

My courses are designed to minimize passive learning, maximize structured trial-and-error, and progressively shift students from guided execution to independent problem formulation.

Key principles that guide my teaching:

  • Learning-by-doing through live coding and replication
  • Reproducibility-first (version control, transparent workflows)
  • Error literacy: making mistakes visible and productive
  • Substantive anchoring: methods always tied to real political questions

Past Teaching Portfolio (Selected)

I have previously taught courses and workshops on:

  • Data Mining for Social Scientists
  • Introduction to Statistics for the Social and Political Sciences
  • Replication Seminar: Doing Research in Practice
  • Research Design in a Quantitative Perspective
  • Comparing Media Systems
  • Political Communication Research

at the University of Milan, University of Zurich, and University of Lucerne.


Full Course List

A complete running list of courses, including syllabi and evaluations, is available in this
Google Sheet.