Exam Scheduler Technical Manual


Exam Scheduler is a software system that automatically schedules the oral examinations for the Ph.D. students at the department of Computer Science of the University of North Carolina at Chapel Hill. The purpose of this manual is to provide technical information of this system. The target readers are technical specialists who want to understand how this system works, and perhaps to modify this system to fit their special needs.

Structure of the Manual

To understand how this system works, one must first know what this system is supposed to do. This section describes the tasks this system is designed to perform. The next section 'System Design', together with the 'Intermodular Communication Diagram', will tell you what modules are created to perform these tasks, and how these modules communicate with each other to form an integrated system. 'Input Module' introduces the design and implementation details in the input module. 'Core Part' provide the design and implementaion of the core part, scheduler. 'Output Module' introduces the details of the output module.  Information on how to build and test the system is given in 'Build and Test Plan'. The last section 'Future Development' describes what we think can be extended and modified in the future.

Requirements of the Schedule and Tasks of the System

Each year about thirty students participate in the oral examinations. Every student must select 6 courses to be covered in the exam. These 6 courses will be divided into 3 pairs, and each pair will be covered in one of three one-hour sessions. Faculty members with expertise in various areas are selected and assigned to these exam sessions. Exam sessions of all students are scheduled to happen within a period of two and a half day, which is translated into 20 one-hour time slots (8 in first two days and 4 in the third), and as few as possible. Finally, the system must be able to allow users to view the schedule sorted in various ways.

There are a few constraints on how to assign faculty members to exam sessions and how to schedule the exam sessions. The following is a description of these constraints.

  • Exactly three faculty members must be assigned to each exam session. The assignment must satisfy some requirements on the competence of the faculty members. Each faculty member will rate his/her level of competence in each course on a scale from 0.0 to 2.0, with a higher number means more competent in the course. In each exam session, each of the two courses must have at least one faculty member who has an competence level of 1.6 or higher in it. If in this session each course has only one competent faculty member, it cannot be the same person.
  • A faculty member cannot serve in more than one session for the same student.
  • A faculty member cannot be in more than one session simultaneously.
  • No student will be examined in two sessions within any four consecutive time slots.

  • Given all these constraints, it is possible that no complete schedule can be found due to the lack of competent faculty members in some courses chosen by the students. The system is expected to be able to detect and report these situations.

    Summary of Tasks

    In summary, this system is expected to be able to perform five tasks:

  • Get course selections from each student
  • Get competence ratings form each faculty member
  • Check whether a complete schedule is possible and give appropriate warnings
  • Find a schedule if it is possible
  • Output the schedule to students and faculty members

  • Updated on April 18, 2000.