CSE 303 - Lecture Notes