A Fast, reliable Exam Scheduling Algorithm Using Graph Coloring.
This package presents a graph-coloring-based algorithm for the exam scheduling application, with the objective of achieving fairness, accuracy, and optimal exam time period. Through the work, we consider few assumptions and constraints, closely related to the general exam scheduling problem, and mainly driven from accumulated experience at various universities. The performance of the algorithm is also a major concern of this package.
pip install palatable
The simplest way to use the package is using this command.
palatable -d files/schedule.txt -c files/courses.txt
For a list of all available options
palatable -h
usage: palatable [-h] [--slots SLOTS] [--days DAYS] [--fairness FAIRNESS] --schedule SCHEDULE --courses COURSES
optional arguments:
-h, --help show this help message and exit
--slots SLOTS, -s SLOTS
Number of exam time slots in a given day (determined by the registrar and/or the faculty)
--days DAYS, -y DAYS The number of concurrent exam sessions. Bounded by available halls, and the availability of faculty to conduct the exams.
--fairness FAIRNESS, -f FAIRNESS
An Exam schedule should avoid conflicts, in the sense that no two or more exams (this value) for the same student are scheduled at the same time.
--schedule SCHEDULE, -d SCHEDULE
The path of the file for students' enrollments.
--courses COURSES, -c COURSES
The path of the file that hosts courses' data.
We are currently supporting text formatted courses and schedules tables. CSV support is coming up soon.
This package is an implementation of the algorithm presented in the paper: A New Exam Scheduling Algorithm Using Graph Coloring by Mohammad Malkawi, Mohammad Al-Haj Hassan, and Osama Al-Haj Hassan.