排课软件的设计是相当复杂的,因为算法涉及到班级、课程、教师、学生四大对象,排课软件算法设计的核心问题是解决课程表冲突。笔者所在学校有42个班级、每个班级平均13门课程、112个教师、每周上5天、每天上7节。要将这么多的因素揉合在一张合理的课程表中,不是随便一个简单的算法能够实现得了的。
目前网络上已经出现了许多免费排课软件,他们都宣称能够解决教务工作者的排课困惑。但或因适用范围太广而导致操作复杂,或因排课算法不合理导致排课时间过长,有的甚至导致死机;还有的排课速度很快,但只满足了硬性约束条件,软约束却很少得到满足,导致排课效果一般。
笔者在分析了当前中小学课程,并了解了许多学校排课方法后,整理出了一套排课算法,它能比较有效处理各种复杂的冲突,而且能自动呈现排课结果,还可以根据用户自己的需求进一步手工调整,该算法基本能满足中小学校的排课要求。将在后续章节陆续退出,敬请期待。。。。。。