The two main tasks of course scheduling are to define course clusters, i.e. determine which courses should best be taught at the same time, and to allocate students to actual courses when several alternative courses are specified in their course choices.
Several constraints must be taken into account:
•No teacher may teach two different courses within the same cluster .
•No student should take two different courses within the same cluster , otherwise choices must be redefined
•Clusters should formed in such a way that as many students as possible take a course in this cluster.
•Clusters should be generated in such a was that as many students as possible attend a course in this cluster.
•Students should be allocated to parallel courses as evenly as possible, e.g. course bio1should not be taken by 40students when the parallel course,bio2, is only taken by 10 students. At the same time, alternative courses requested with a higher priority by students should be given preferential treatment during assignment.
The course scheduling module provides tow different optimisation methods for this purpose: Integral optimisation and partial optimisation (also called part optimisation).
Integral optimisation schedules all courses as clusters by once click only, and the students are assigned to alternative courses.
In contrast, partial optimisation only deals with a part of the courses which have to be scheduled. The scheduler thus has better control over the combination of the clusters. The use of partial optimisation usually requires a certain level of experience and good knowledge about the scheduling situation of the school.
In practice, it often is advisable to manually schedule (and lock) parts of the courses by the means of the course-cluster-matrix , and to bring in additional personal knowledge and experience before the optimisation run.
For example, taking an ethics or religious education lesson may be compulsory or students of a particular class level/year may have to take one of the three English courses on offer. Your specialist knowledge of these matters must underpin your scheduling activities. In many cases manually scheduling these courses in a clusters (and then locking the cluster) will speed up subsequent optimisation significantly and greatly improve the quality of the solutions.