Exam Scheduler Technical Manual

## Scheduler Module

The main task of scheduler module is to make a "good" qualification exam schedule which satisfies some certain requirements. The basic information needed for the scheduler module is two tables: candidates' 6 courses selected to be examed and professors' expertise level for all courses. We assume these two tables have been set up in the input module. The output of the scheduler module is a sequence of sessions. Each session covers one candidate, two courses, three professors, the time and the location. As the useful evaluation for the scedule, scheduler module also outputs the workloads of all professors. Here the workload of each professor is the number of sessions this professor will attend.

Algorithms applied:

There are three steps to determine the exam schedule:
1. assign a competent professor for each selected course for each candidate. the expertise level of the competent professor in the course must be at least 1.8. however, in the special case, if we can't find any new competent professor for some course, we will loose the rule to allow the competent professor who has the at least 1.5 expertise level.
2. split 6 courses to three sessions for each candidate. there are totaly 15 different combinations of three sessions for every candidate. we just randomly pick one combination. this step generates a sequence of sessions. each session covers one candidate, two courses and two professors. please note, in this step we still haven't decide the third professor, the time and the location of each session.
3. for each session, we determine the third professor, the time and the location. for a certain time slot, the maximum number of sessions concurrently is the number of professors divided by 3 because no professors can be allowed to attend more than one session in each time slot. we just schedule as many sessions as possible for each time slot. when we determine all scheduled sessions for the certain timeslot, we pick the third professor from the rest of professors and the avaliable location for each session. please note, since each candidate is examed by 9 different professors, it is possible that no any professor fit for the third professor for some session, so it's no guarantee that each round of heduling will succeed.

Data:

•  typedef struct {

•     int num;                            // number of elements
int list[MAXLISTLEN];   // value of elements
} slist;
a type of simple list to contain a sequence of integer data
• int m_crs_assg[ ][ ]        // a two-dimension array which contain competent professors for each candidate for each course selected
• int m_fclt_load[ ]            // an array to contain the workloads of each professor
Functions: Source Code

Updated on April 23, 2000.