CSC-315 Course Notes