CIS 400 Lecture Notes