COURSE SCHEDULER: AN AUTOMATED SCHEDULE GENERATOR
A typical problem in a college of engineering is trying to find the best set of courses to offer students in a given semester, taking into consideration which courses are needed by students, and the availability of instructors capable of teaching those classes. The optimal solution, of course, is to offer all courses that will allow all students to graduate in the minimum number of semesters. This allows students to finish their course-work quickly so that they can enter the work force. The job of determining which courses to schedule (usually done by a department chairperson) requires information about what the student-body needs and information about instructor availability/capability. The most difficult part of this process is to determine which instructors should teach which courses, and in which time-slots they should teach them, and still be able to satisfy all of the students. Selection of instructors is determined by the fact that an instructor knows the course material and that he/she is available to teach a given course. Instructors may have preferences as to what time of day to teach, or on which days of the week they would like to instruct the courses for which they are responsible. Instructors may not be available if they are already teaching too many courses, as defined by the individual learning-institution. There are several difficulties in determining when to offer a given course. For example, consider an engineering major senior who has taken almost all of the courses required to satisfy the requirements for his/her degree. Because he/she has nearly satisfied the degree-requirement, the student has a limited choice of courses to study. This is a problem for the department chairperson, since they must offer appropriate courses to the student to ensure he/she will have enough credits to graduate. This document will present a set of algorithms and software components which will aid a department chairperson in the scheduling process.
optimization, scheduling, automated schedule generation, accreditation, course scheduling.