In this presentation, I talked about Monads and their role in Functional Programming. It is by no means an exhaustive survey, but instead serves as a (hopefully) gentle introduction to the topic. It's assumed that the reader is familiar with Haskell, since it's what I used to demonstrate the concept.
The presentation played the role of a semester-long survey project in the Programming Language Semantics course, which is taught by prof. Panagiotis Rontogiannis in DiT (UoA).