CIS 587 Lecture Notes