CS 241: Foundations of Sequential Programs - Lecture Notes