CSC-314 Course Notes