Zaslat SMS: Lecture Notes on Algebraic and Coalgebraic Methods for Calculating Functional Programs