In the context of this application, the following terminology is employed. The terms have been coined as the need has arisen, & don't necessarily correspond to the jargon used by other solutions in this problem-domain.


The whole days when a resource is available to be booked. Fractions of days can't be directly expressed, though if the resource is either a student-body or a teacher, any unavailable portion of a day can be reserved artificially, using the meetings of a single-member dummy group (which has no purpose & doesn't require a location).


A rendezvous defined in the timetable, for a specific lesson @ a specific time. Similar to a meeting, but refers to a lesson, rather than a group. Though the booking-times of a lesson can be specified in the configuration, typically it is decided @ run-time by weekdaze, which weaves it amongst the fixed meeting-times of groups.


Defines a group of proximate locations, between which intraday migration is trivial. If the time required to migrate between locations is significant, then one may partition them into campuses to allow the application to minimise the number of such journeys.


A set of lessons in a subject, offered by a teacher. Though a subject would typically require many weeks of tuition, the requirements for just one arbitrary week are configured, on the assumption that those for other weeks are similar. A course springs into existence, when it is offered as part of a teacher's Service, rather than existing as an independent part of the configuration to which teachers & student-bodies refer.


The working portion (rather than the full 24 hours), of a day of the week. The day forms one of the two temporal axes, from the three Cartesian coordinates used to describe the single-week timetable.


A method used by weekdaze to liberate space in the timetable, by selectively unbooking lessons. The lessons are selected; in order to reduce some undesirable trait; to re-cast any established routine; or arbitrarily, merely to permit exploration of an alternative region in the solution-space.


One of many methods used by weekdaze, in an attempt to evolve the timetable. Each is composed from a depletion-strategy & a reconstruction-strategy.


An attribute of a location, which can in some way support a course.


The size of the population of candidate-timetables, that weekdaze breeds in any one generation of the evolution of a solution.


Used either to quantify the:

  • suitability of each member of a set of alternative lessons to book in the timetable @ a specific time, using a weighted-mean of lesson-criteria;

  • value of each member of a set of alternative timetables, using a weighted-mean of a set of timetable-criteria.


A set of one or more people (teachers or student-bodies) with a common interest or duty. This is a more flexible structure than the single teacher & student-class used to define a lesson.


The set of one of more subjects required by a student-body. It is bisected into those personally considered (other student-bodies may categorise them differently) to be either core or optional.


An arrangement between a single teacher & a student-class, to teach a course for one period @ a specific location & time. A lesson as depicted in the results, always specifies the course's subject, but only two of the three types of resource, the third being implied by the coordinate @ which it is booked on the observer-id axis of the timetable.


The metrics used by weekdaze when constructing a solution, to quantify & therefore to facilitate selection, of the best lesson from those which are permissible @ specific coordinates. The value of each criterion is typically neither dependent on what has already been booked elsewhere, nor does it change as further bookings are made. Though the semantics of each criterion are hard-coded, they have an associated configurable weight, which allows one to change its significance relative to other lesson-criteria.
cf. timetable-criteria which are used to quantify & therefore select the best from a population of candidate-timetables.


This is the Level @ which a Topic is taught.


A generalisation of a class-room, to encompass any space available to support either a booking or a meeting. It is described by:


A rendezvous defined in the timetable, between group-members @ a specific time. Similar to a booking, but refers to a group, rather than a lesson. The meeting-times of a group are configured, & are reserved by weekdaze, forcing lessons to float around them.


The target audience for a timetable, which may be any type of resource. Bookings may be tailored to any of these types of observer, by enumerating observer-identifiers along one axis of the timetable (the remaining two axes are always the day & the timeslot-id), permitting all observers of that type to rapidly access their personal timetable for the week.
NB. since a location is clearly incapable of observing anything, one may more correctly consider the timetable indexed by Location-id, to be ideally organised for observation by maintenance-staff.


Similar to time-slot but refers more to a duration than to a position on the time-axis.

Population-diversity Ratio:

The ratio of distinct members to all the members in a population of candidate-timetables.


A location, student-body or teacher. Since each lesson requires one of each type of resource, the most basic function of weekdaze is to avoid scheduling-conflicts between them; no individual can be booked @ more than one location @ any time, & no location can host more than either one class or one meeting @ a time.


The relationship established between resources, when teaching the lessons of a course. It is considered desirable that such routines are preserved, so that for any one subject, a student-body isn't taught either @ more than one location or by more than one teacher.


The set of zero or more courses offered by a teacher. A teacher who offers no service directly to students, may still exist in the timetable @ the meetings they attend.


This is the personal academic capability or year of a student-body. The requirement for a student-body to have a Stream-name isn't obvious, since it can be inferred from the Level of the topics in their Knowledge-requirements, but it can be used to prevent the various student-bodies studying a subject from being merged into a single student-class (should that be undesirable).

An individual, whose requirements are described by the student-body of which they're a member.

A set of students with identical requirements (availability, Stream-id, Knowledge-requirements, group-membership). These sets are typically manually configured, but additional or larger sets, may optionally be automatically discovered by weekdaze; it can also relax the requirement that the students belong to the same groups, if the groups for which memberships differ, never actually meet.

Student-body Combinations:
Student-body Combinations
Teacher Student-body Time
t1 t2 t3
T1 S1 C1 C1
S2 C1 C1
S3 C1 C1

This refers to an undesirable trait in a timetable, where the set of student-bodies, who're temporarily merged into a student-class for the tuition of a course, changes throughout the lessons booked in a week. E.g. where three student-bodies, S1, S2, S3, are enrolled on course C1, taught by teacher T1, which requires two lessons per week;

  • S1 may be merged with S2 to form a student-class @ time t1,
  • S2 may be merged with S3 to form a student-class @ time t2,
  • S3 may be merged with S1 to form a student-class @ time t3.

The undesirable consequence is that teacher T1 must maintain the lessons for all these student-classes in lock-step.


A set of student-bodies merged for their tuition in a single course.

Student-class Combinations:
Student-class Combinations
Teacher Student Class Time
t1 t2 t3 t4
T1 S1 C1 C1
S2 C1 C1
T2 S3 C2 C2
S4 C2 C2

This refers to an undesirable trait in a timetable, in which lessons for a set of synchronised courses have been booked. Though the courses which share a Synchronisation-id, may have been booked without any undesirable student-body combinations, each lesson may be synchronised with different student-classes in the other courses of the set. E.g. take two synchronised courses, C1 taught by teacher T1, & C2 taught by teacher T2, each of which requires two lessons per week. Student-bodies S1 & S2 are enrolled on C1, while student-bodies S3 & S4 are enrolled on C2. Whilst these four student-bodies could be merged into two student-classes {S1S2} & {S3S4} under these circumstances no undesirable student-body combinations can arise, but should their availability dictate that they must form four singleton student-classes, different pairs of singleton student-classes may be synchronised @ various times throughout the week.

The consequence of this only becomes apparent, when any one of these student-bodies decides to migrate to the other course in this synchronised set; which, as required, is possible without reorganising the timetable, but results in a student-body combination. E.g. should S1 decide to migrate from C1 to C2, a student-class is then formed between S1 & S4 @ t2, but between S1 & S3 @ t3.


A combination of a Topic & the Level @ which it is taught. It is a component of both a student-body's Knowledge-requirement & teacher's Service, & can only be required by the former, when offered by the latter.

Synchronised courses:
Timetable with synchronised courses

A set of courses, whose respective lessons must be synchronised. The member-courses;

The image (extracted from the output of weekdaze) depicts the scheduling of three synchronised courses:

Day Time-slot Geography 1 History 1
Monday 3 Body_1 & Body_3 Body_2
Thursday 4
Friday 0
Day Time-slot Maths Applied 1 Maths Pure 1
Monday 1 Body_1 & Body_3 Body_2
Thursday 1 Body_1 & Body_3 Body_2
Physics Streams:
Day Time-slot Physics 1.A Physics 1.B
Tuesday 3 Body_1 Body_2 & Body_3
Wednesday 0

Since the structure of the timetable is largely independent of precisely which of these member-courses is selected by a student-body, migration of a student-body between them (should their initial choice prove hasty), is relatively easy. The use-cases for this concept fall into two categories;

Different Topics @ the same Level.
Permits student-bodies to select only one of the Topics offered, as required to implement an elective line.
Different Levels of the same Topic.
Permits student-bodies to migrate to a similar course, but which caters for students with a different ability.

Whilst the flexibility exists to synchronise the bookings for courses whose Topic and Level differ, this concept is hard to justify.

A description of an individual's:

The partitions into which each day is similarly divided, each one of which is available for the booking of a lesson or meeting.

Similar to period but refers more to a position on the time-axis than to a duration.

Empty timetable

Conceptually a cuboid, whose three Cartesian axes are indexed by; day, timeslot-id, & observer-id. The observer-id axis can be any resource-type, depending on the target-audience; there's no change to the data, they're merely re-indexed.

The timetable depicted is five time-slots per day high, & is indexed by student-bodies of whom there are three. Were it re-indexed so that the intended observer was a teacher, then the depth may change.


The metrics used by weekdaze, to quantify the degree to which a timetable meets the specified problem-configuration. These allow it to select amongst alternative solutions, while searching for the optimum. Though the semantics of each criterion are hard-coded, each has an associated configurable weight, which allows one to change its significance relative to other timetable-criteria.
cf. lesson-criteria which are used to quantify & therefore select the best amongst alternative lessons to book at specific coordinates.


The component of a subject which is independent of the Level @ which it is taught.