Introduction to functional programing (lecture and slides)