CSC326H1 Lecture Notes