CISC/CPEG 367 (Spring 2016) Lecture Notes