A process for automated class scheduling at Ashesi

Donkor, George
Journal Title
Journal ISSN
Volume Title
At the beginning of every semester, the registrar at Ashesi University goes through the laborious task of either manually or semi-automatically developing a course schedule. Very often, after the schedule has been developed, conflicts are realized in the various schedules. Conflicts are categorized into student, lecturer and room conflicts. An open source software, FET was recently used by the university to help develop schedules for the courses. This project is an attempt to review the ways in which the automation process can be enhanced in order to potentially reduce the conflicts faced. At the heart of automated course scheduling is the algorithm being used. Any effort made at enhancing the scheduling process in Ashesi will require an efficient algorithm. This paper begins with a background on scheduling, an extensive research on existing approaches and algorithms follows. The algorithms reviewed include the Multi-Agent System approach, Sequential methods, Constraint Based Methods, Genetic Algorithms, Simulated Annealing, Particle Swarm optimization and Tabu Search. The algorithm used in the FET software is also reviewed. These techniques are compared based on their computational time, ease of implementation, solution quality and constraint handling. Based on the literature, it is realized that Particle Swarm Optimization is potentially the best algorithm with respect to the set criteria. A basic version of the Particle Swarm Algorithm is implemented and tested and the results compared with the results from testing the current FET software algorithm, recursive swapping. The outcome implies that recursive swapping, can produce good solutions but Particle Swarm Optimization is easier to implement.
Applied project submitted to the Department of Computer Science, Ashesi University College, in partial fulfillment of Bachelor of Science degree in Computer Science, April 2014
Ghana, Ashesi University College, scheduling, software design