Literate Programming (Lecture Notes)