两个班次,一栋教学楼
学校的一半学生在七点到校并在中午离开,另一半则在中午到校,但大多数课表软件都默认学校只有一种作息。

每天早上七点,教学楼里人头攒动。到了十二点半,学生们散去,紧接着另一批学生又填满了教室,由部分相同的老师授课,使用的还是完全相同的教室。
如果您管理着这样一所学校,您一定了解让排课变得困难的两个事实。教室没有休息时间,部分教职工也是如此。在单班制学校中仅仅是“不便”的事情——比如实验室时间冲突了二十分钟,或者老师上午最后一节课和下午第一节课之间没有间隔——在这里都变成了结构性问题。
然后,当您打开排课工具时,却发现它认为您是一所拥有超长课时的一日制学校。
长课时不等同于双班制
这种区别并非仅仅是表面上的。在单班制模式下,“第7节课”只是比“第6节课”晚一点。没有什么能阻止老师跨越界限被安排课程,因为在软件看来,根本没有界限——只有更长的一行课表。
但界限确实存在。它是您的下午班教职工可以是不同人员的原因,是教室需要清场的原因,也是“她只教上午”这句话具有实际意义的原因。
一个无法表达这种界限的模型,就无法保护它。您最终只能通过人工方式进行强制执行,检查每一份草稿,排除那些本不该出现的冲突。
FET 已经了解这一点
这一点值得明确说明,因为这是人们容易忽略的部分:FET 本身就能妥善处理这个问题。这不是什么变通方法或社区补丁。FET 以四种模式之一运行,而模式决定了哪些约束系列是存在的。
其中之一是上午-下午 (Mornings-Afternoons)。在这种模式下,求解器以半天而非全天为单位工作,并且会出现一套在其他模式下不存在的约束系列——即关于上午和下午作为独立时段的规则。

因此,界限不再是您需要去监管的东西,它变成了模型本身所知晓的属性。
读回数据是另一半工作
半天网格对于求解器来说是正确的形状,但对于人类来说却不是。没有人会按十二个半天来思考。他们思考的是五天,每一天都分为上午和下午。
FET 知道这一点,并记录了两者:求解器工作的半天,以及将它们配对回真实日期的列表。在我们见过的真实“上午-下午”文件中,大约有一半带有这种配对;其余的仅包含半天数据。
我们会保留您文件中已有的内容。如果配对存在,它会随其他数据一起导入,并在导出时保持不变。如果不存在,我们也不会凭空制造——当您自己将课表切换为“上午-下午”模式时,我们会构建它,因为此时没有现成数据可供携带,且这是您要求的形状。

这就是我们的全部策略,而且是刻意保持平淡的:我们向您展示您自己的文件。FET 未写入的结构,我们绝不会为您发明,无论这种发明看起来多么有用。
您的课表会携带其创建或导入时的模式,该模式显示在数据屏幕的页眉中。您无需在此处进行配置;您看到的就是 FET 所设置的内容。
一条值得阅读两次的警告
如果您是课表的所有者,那个模式徽章就是一个按钮,点击它就会启动切换。
切换模式会删除数据。这是必须的:不同模式不共享约束词汇,因此离开“上午-下午”模式意味着上午/下午的规则将无处安放。这就是为什么只有所有者才能执行此操作,以及为什么对其他人来说该徽章仅仅是一个标签的原因。
这不是一个可以随意尝试的设置。请在 FET 中决定模式,因为约束条件存在于那里。
为什么这比听起来更重要
双班制教学并非小众现象。它在土耳其、摩洛哥、拉丁美洲和南亚的大部分地区都很普遍——任何教学楼服务的学生人数超过其座位数的地区都是如此。
已经有一个专门为摩洛哥“上午-下午”系统构建的 FET 工具,这说明了两件事:这种需求是真实的,而且它被忽视的时间太长,以至于人们不得不自己构建解决方案。
如果您的学校实行双班制,您所使用的软件中已经存在这种模式。缺失的是求解器之后的所有环节——读取、共享、打印、张贴在墙上——以一种承认您的一天中间有一道分界线的方式呈现。