Class divisions
A class division declares to the solver that several groups of the same class can share the same time slot without conflicting — because no student belongs to more than one of these groups.
Why it is necessary — the "everything conflicts by default" philosophy
Omniscol is constraint-based scheduling software. Direct consequence: anything that can be a source of conflict is treated as one by default, unless the user explicitly states otherwise.
- Between two distinct classes: no students in common by assumption, so no conflict to report. (Transverse / shared courses are modelled separately with alignments or groups of groups.)
- Within one and the same class, the solver has no logical way to guess which groups can coexist in the same time slot without overlapping. It therefore treats two groups of the same class as potentially having students in common. Without a declared division, scheduling two lessons in the same time slot for two groups of the same class raises a conflict.
It is up to the timetable author to tell the solver: "these groups are mutually exclusive, you may schedule them simultaneously". The class division is that declaration.
The solver will try as much as possible to position the lessons of groups in a division simultaneously, but it may not manage to because of other constraints (classroom shortage, incompatible time constraints between teachers or subjects, a shared entity such as a specialised classroom or a teacher common to the lessons). In that case, the solver will detect that part of the class has no lesson and apply a proportional penalty (default option: reduce gaps for students), pushing it to schedule those lessons at the very start or very end of the day, or during the lunch break when possible.
Typical use cases
- Alphabetical half-classes: groups A and B (by alphabetical order or random draw) — a student is in one OR the other, never both.
- Half-classes by level: Advanced English vs Standard English groups; a student is in one OR the other.
- Half-classes by sex (a special case in some schools, for physical education for example).
- Exclusive electives: German / Spanish / Italian second-language options — a student chooses only one of the three languages.
- Bundles of simultaneous electives: a set of electives where the
school decides to schedule all the options in the same blocked
time slot (
Friday 2pm-4pm = electives slot), and students choose their option from the bundle — all exclusive in the sense that "a student takes a single option". - Practicals / labs in half-groups: Lab-A and Lab-B in the same time slot in two different classrooms with two teachers.
Creation
Steps:
- Go to a class's groups page (the Groups tab).
- Select the groups concerned.
- Click Add class division.
- Confirm.
Several divisions can coexist within the same class: one for science practicals (Lab-A, Lab-B), one for languages (German, Spanish), one for speciality electives (Philosophy, History-Geography, Mathematics). Each division is independent of the others.
When a group belongs to a division, it appears on all relevant screens with an icon.
Default safeguard: one group in a single division
By default, the interface applies a simple safeguard: a group belongs to only one division. This is the most common case, and it prevents many mistakes.
This filter can however be lifted when the actual student mix justifies it.
Example:
- only the students in
Germanalso takeLatin; - the students in
Spanishdo not takeLatin.
You can then create:
- a division
German/Spanish; - a division
Latin/Spanish.
The benefit is to give the engine more freedom to place certain lessons on the same time slot and reduce gaps for part of the class.
Use this with care: the actual distribution of students must be fully under control.
Validity criterion
No student may belong to two groups of the same division. This is the mathematical definition of a partition — the sets are disjoint.
If a student appears in two groups of the same division, Omniscol raises a consistency alert (the solver cannot send them to two places at the same time).
Effect on the algorithm
With a declared division, the solver:
- allows the groups of the division to be scheduled simultaneously (whereas this would otherwise be a conflict),
- still checks the other resources: you need as many different classrooms as simultaneous groups, and as many different teachers. The division only lifts the student conflict — not the classroom / teacher conflicts, which remain strict.
Frequent mistake — three courses in the same time slot in one class
If you want three different simultaneous courses in one class (Philo, Hist-géo, Maths spé) because your students have exclusive electives, create three groups (Philo, HG, Maths-spé) and put them in a division. Not three courses without a group — otherwise the solver will have no information about the simultaneity constraints, and each will be placed separately, at different times.
Difference from other constructs
| You want… | Use |
|---|---|
| Several groups of one and the same class in the same time slot (different courses, disjoint students) | Class division (this page) |
| Several groups from different classes in the same time slot (same course, same teacher, same classroom) via a logic linking simple groups | Alignment |
| Same as an alignment, but easily adjustable afterwards, by creating a standalone grouping entity | Group of groups |
| A group whose membership is not fixed (workshop, open enrolment) | Free group |