The Qualification Examination Scheduler is defined as a software system that can perform the task of assigning faculty members to examination sessions of students in a way that meets the requirements described in the section 'Primary Requirements'. Each student will be examined on exactly 6 courses of his/her own choice. These 6 courses will be divided into 3 sessions and each session will cover exactly 2 courses which are not examined in either of the other two sessions. Each faculty member will make a judgment on his/her level of expertise in each course with a scale from 0.0 to 2.0, with a higher number meaning better expertise in the course. Exactly three different faculty members must be assigned to each exam section, with their expertise in the courses covered in the session meeting the expertise requirements described in term no. 5 in the section 'Primary Requirements' below. The software system must be able to output a schedule that meets all the requirements if such a schedule exists, or identify and report to t he user the specific reason(s) why such a schedule does not exist.
1. The whole project should be completed by the end of April 2000.
2. Each exam session will consist of exactly one student and three faculty members, and cover exactly 2 courses. Each student will attend exactly 3 exam sessions and be evaluated by 9 different faculty members.
3. No faculty member can be in more than one session at the same time. A faculty member assigned to a session must remain there throughout the whole session. There is no limitation on the maximum number of sessions a faculty member can participate in. We try to balance the workloads for faculty members as much as possible.
4. Any two exam sessions for the same student are at least 4 hours apart unless the student has special requirement.
5. In each session, each course must have at least one faculty member who has an expertise level of 1.6 or higher, and the simple sum of expertise levels of the three faculty members in the two courses (i.e., the sum of the six related expertise ratings) must be 3.0 or higher.
7. The software system must try to schedule all exam sessions within as few consecutive time slots as possible, and no more than 20 in the normal situation, if such a schedule can be found within a reasonable numbers of operations. In the situation that such a schedule cannot be achieved, the number of time slots will be increased by one at a time until a schedule is found.
8. The software system has no obligation to find the same schedule if exactly the same input is submitted to the system in two or more trials, provided that the schedule yielded in each trial meets all the scheduling requirements.
9. The software system must provide a simple and user-friendly interface for data input. The details of the data input format will be determined by the contractors.
10. The software system must provide an output of four tables which are sorted in four different ways. Each table must have the following columns: exam date, exam time, three faculty members, student name, two courses covered, room number. These four tables are sorted by time slot number, faculty member, student name, and room number, respectively.
11. The software system must provide a user interface in which it is easy for the user to modify an existing data set and find a new schedule without re-entering all the data.
12. The project is required to be developed using C language, however, there is no special requirement for the platform of this project.
13. The contractor must provide a user manual and a technical manual. The user manual must provide sufficient information to guide a person with high school literacy level and minimum computer knowledge to independently use the software system. The technical manual must provide a detailed description of the algorithmic design, as well as all technical information necessary for its maintenance and modification.
The contractor may choose to, but is not obliged to, extend the software system to meet some or all of the following requirements:
1. The whole system should be designed to easily maintain. Client should have in mind that some schedule rules might change in the future.
2. The contractor may add on-line help to the software system.
3. The software system may allow the user to add constraints, such as limiting the number of rooms available, restricting the number of exam sessions a faculty member can participate in, and other time constraints, e.g., absence of students or faculty members.
1. The client must provide data from past exams as a test case for the software system.
2. The client must provide the code or a detailed description of his past programs which tried to solve the same scheduling problem.
The final schedule produced by our program may not very satisfactory due to the complexity of the problem. The algorithm we used may not optimal because it is very difficult to design an efficient scheduling algorithm.
Huajun Luo ___________________ Date: _______________________
Yanlin Hou ___________________ Date: _______________________
Huahong Wang _________________ Date: _______________________
Paul Suh ___________________ Date: _______________________
John Halton ____________________ Date: _______________________
David Stotts ____________________ Date: _______________________