COP 3503 Lecture Notes