A Model to Optimize University Course Timetable Using Graph Coloring and Integer Linear Programming