  This note recapitulates and expands the contents of a tutorial on the
mathematical theory of algebraic effects and handlers which I gave at the
Dagstuhl seminar 18172 "Algebraic effect handlers go mainstream". It is
targeted roughly at the level of a doctoral student with some amount of
mathematical training, or at anyone already familiar with algebraic effects and
handlers as programming concepts who would like to know what they have to do
with algebra. We draw an uninterrupted line of thought between algebra and
computational effects. We begin on the mathematical side of things, by
reviewing the classic notions of universal algebra: signatures, algebraic
theories, and their models. We then generalize and adapt the theory so that it
applies to computational effects. In the last step we replace traditional
mathematical notation with one that is closer to programming languages.
