<p class="ql-block"> 开学初,编排课程表是学校的一项重要工作,刚刚接触此项工作的时候,总幻想有没有一种软件,输入教师分工后,自动生成学校的课程表呢?大量的搜索验证后,没有找到自己满意的软件。随着不断的了解,越发觉得课程表编排受限制的条件太多,生成的课程表不可用。</p><p class="ql-block"><br></p> <p class="ql-block"> 没有现成的软件可用,就得自己探索。首先我梳理了一下课程表制作的条件。第一,班级的数量。第二,教师的分工。第三,课程的设置以及学科节数的设置。第四,学科的特点。第五,功能库室的使用。这只是粗略的梳理,这里面还要考虑的教师分工时的延续性,部分教师跨学科跨年级等。有这么多复杂条件的限制,直接生成的想法就越来越淡了,能够同时满足这么多的算法,是我这个不会编程的人无法企及的。</p> <p class="ql-block"> 编排课程表的整体思路是什么?现在,我就帮助大家梳理一下:首先考虑功能库室的使用。如36个班,每周每班两节美术课,这样就需要一周72节美术课。一天7节课,五天是35节课,去掉前两节上语数外,有一节固定的自治区课程,还有24节可以安排美术,72除以24等于3,这样这个学校就需要有三个美术的功能库室,不然无法编排。一般学校功能库室比较少,合理安排,最大化利用,就需要我们首先算清楚这笔账。涉及到功能库室有:科学实验室、计算机教室、书法教室、美术教室。哪个功能库室最少,就优先考虑哪个功能库室。第二要考虑跨年级上课教师安排不“撞车”。而跨年级上课老师有音、体、美、科学、道德与法治、信息,其次是英语、数学,不跨科一般是语文。跨学科最多的优先考虑,这些老师课节也相对来说最多。第三要考虑的是一个人多节课如何平均分配到每一天,例如一个美术老师一周上18节,这样平均每天三节多,尽量合理分配,也能使教师上课精力得到合理分配。以上这些如何做到同时兼顾呢?表格中的统计函数派上了大的用途——countif。它能协助你安排的功能库室数多不多,能帮你实时统计编排的课节数符不符合国家要求的节数,再利用纵排查重功能确保不“撞车”,利用隐藏和取消隐藏功能快速找到跨年级编排。</p> <p class="ql-block"> 有了清晰的排课思路,有了表格中函数等功能的辅助,我们有着38个教学班的学校,我能在三个小时编排出合理的课程表。这也是在我能力范围内的最优化方案了。不知道我这样的表达是否清楚,不知道还有没有更优化的方案,如果有,恳请您不吝赐教。以上说的比较笼统,如果有想知道具体操作过程的,我愿意做详细演示。</p>