cmp328-syllabus