An introduction to the foundations of programming languages, targeting non-logician mathematicians