|interactive school timetabling|
The following glossary explains the terminology used throughout this project. At the same time, it serves as a specification of the school timetabling problem we address.
A lesson is a meeting of a group of students with a teacher, dedicated to one subject. This implies a first restriction: for the time being, we exclude the possibility that a lesson involves more than one teacher. Note: the requirement of exactly one subject per lesson is not a restriction, since subjects may be defined just as needed to describe all lessons.
A lesson lasts exactly one basic unit of time, or otherwise said, it fills exactly one time slot. The time assignement problem, the most difficult of school timetabling problems, consists in assigning one time slot to each lesson; the solution of this problem is what we call a timetable.
Timetables are assumed to be essentially periodic, so that a time slot can be characterised by hour of the day, and day of the timetabling period. A convenient name for the timetabling period is the week. The number of days per week is not hard-coded. While the layout has been designed for 5 or 6 days per week, it could easily be adapted to other periods. A period of 10 or 12 days could be used to describe biweekly scheduling, though it might be more elegant to introduce the parity of the week as an additional parameter.
An activity is the set of all lessons within a week that have same students, same teacher, same subject. The multiplicity is the number of lessons per week of a given activity.
The room assignement problem consists in reserving one room for each lesson. Each room belongs to one or several room types; conversely, each activity can take place in rooms of one or several types, according to a list of preferences. Room assignement is not yet implemented in intime.
Prior to time and room assignement, the teacher assignement problem has to be solved. It consists in assigning one teacher to each activity, under the constraint that the teacher must have the qualification to teach the respective subjects, and that her total number of lessons per week corresponds to her nominal teaching load (allowing for a small difference considerably simplifies the assignement). Teacher assignement involves much more pedagogical decisions than time or room assignement; it will never be automated. Intime includes a graphic editor for teacher assignement.
So far, we have nothing said about the group of students associated with a given activity. In the simplest case, this group is simply a class. In other cases, however, students form different groups for different activities. This poses a major problem in designing sufficiently general, yet handable data structures. See here for details.