EECS 516 Lecture Notes