An overview of curriculum-based course timetabling