排课方法及系统
文献发布时间:2023-06-19 18:29:06
技术领域
本发明涉及互联网教育信息化技术领域,尤其涉及排课方法及系统。
背景技术
目前,随着新高考政策的实施,传统的行政班的教学形式很难满足学生选课以及学校排课的需要,而随着新高考政策的不断推进,走班制会成为学校教学的主要方式,走班制教学模式不同于传统的行政班模式,取消了文理班的分配方式,学生可以根据自身的兴趣和爱好,选择不同的课程,因材施教,既扩大了学生的选择范围,也提高了学校的教学质量;走班制教学模式相比于行政班教学模式来说更加灵活,但是也给排课带来了一定的问题,传统的行政班排课方式无法满足走班制教学的排课需求,而使用人工排课往往依赖过去的经验,并且费时费力,在面对新的排课方式时也很难同时在有教室、教师、课程等资源的限制下排出合理的课表,因此,一个高效、智能的排课方法和系统的研究是极为必要的。
在新高考的要求下,学生需要选择数学、语文以及一门外语课作为必修课,从历史、地理、政治、化学、生物、物理中选择三门(浙江省还包括一门技术)作为选考科目,根据不同学校的资源以及教学情况,会出现多种不同的排课需求,如:走班排课方式、行政班排课方式、走班和行政班混合排课方式,这就需要算法能够满足多种不同的排课方式的要求,且对于一些地区或学校的差异,可能存在不同的作息时间,需要不同的课表节次设置;对于一些行政班,对于不同的学校,可能需要对一些学科的优先上课时间进行设置,为了满足一些教师的特殊需求,也需要对教师的优先上课时间进行设置,对于行政班中的课程,可能需要禁止一些课程相邻排课。
通过上述分析,现有技术存在的问题及缺陷为:
(1)传统的手动排课存在费事费力且排课效果差的问题,随着新高考政策的推进,排课方式的转变,传统的人工排课也很难从以往的经验中借鉴出新的排课方法;
(2)传统的行政班排课算法无法排出走班的课表,也无法排出走班和行政班同时存在时的课表,且即使是对行政班排课算法的简单改进也很难满足走班课的灵活性要求;
(3)现有的走班制教学方式灵活度高,课程、时间、教室等资源需要灵活设置,现有的排课算法很难满足这样的需求。
发明内容
本发明的目的是为了解决现有技术中存在的缺点,而提出的排课方法及系统。
为了实现上述目的,本发明采用了如下技术方案:
一种排课方法,包括:
获取基础信息,所述基础信息包括教师、课程、教室、教学楼、课表模板、年级、选课规则;
根据基础信息创建排课计划;
设置选课信息,并发布选课;
学生根据选课信息,进行选课;
统计选课结果,并对未选课的学生进行处理;
设置走班排课规则,包括课节设置、教室设置;
开始走班排课,并生成排课任务;
根据学生意愿调整学生选课冲突,所述学生选课冲突包括因教室容纳人数、课程选课人数造成的课程冲突,可根据学生意愿将学生调至同课程的其它班级;
调整课表,根据学校的教学情况调整课表中的上课时间;
继续排课;
设置行政班排课规则,包括课节设置、学科设置、班级设置以及时间规则设置;
开始行政班排课,并生成排课任务;
查看课表;
发布课表。
进一步的,所述排课计划需要根据不同的需求设置走班排课、行政班排课或走班和行政班混合排课的排课方式,并根据不同的排课方式,执行相对应的排课流程。
进一步的,所述排课流程为如果排课计划中仅存在走班排课方式,则仅根据走班排课计划依照遗传算法进行排课,不会进行行政班排课;若排课计划中仅存在行政班排课方式,则仅根据行政班排课计划依照算法进行排课,不会进行走班排课;若排课计划中同时存在走班排课和行政班排课方式,则会先根据走班排课计划的设置进行排课,当走班排课完成后再根据行政班的排课计划的设置进行排课。
进一步的,所述走班排课的遗传算法为:依据选课统计结果,重新排序选课组合,将相同选修课选课组合人数多的排在前面,人数少的排在后面,设可能的结果组合数为L,前若干个选课组合的学生人数大于教室可容纳人数,为了满足所有选课组合的人数小于教室可容纳人数的要求,需要重复这些组合,即在第一次全排列时重复这种选课组合,设可用教室数为R,向上取整为ceil(),单个教室可容纳学生数为Rm,则有R=ceil(L1人数/Rm)+ceil(L2人数/Rm)+...,此多项式的项数即为从L种选课组合中选出的选修课组合,以上多项式为第一次循环,第二次循环1项+1,末项-1;第三次循环2项+1,末项-1;直到被减项的前一项+1,每次循环将选课学生平均的分配到教室中,最终将选课组合转换成了教室,形成R1、R2、R3....。
进一步的,所述行政班排课的算法包括:
进行课节设置,若此排课计划包含走班和行政班,则还需要读取走班排课已经占用的课节;
学科设置,添加此次行政班排课的科目,并设置每周每门课的课时数;
班级设置,需要为每个班级每门课添加任课教师,任课教师所教授的总课时数不能大于可用的课节数,否则排课失败;
设置时间规则,包括学科时间规则、教师时间规则、班级时间规则以及禁止相邻规则;学科时间规则用于设置全年级统一的课程,教师时间规则用于设置某一节次不授课,班级时间规则用于设置某个课程的具体授课时间,禁止相邻规则用于使两门课程禁止相邻;
开始行政班排课时,先满足用户设置的规则,如果规则冲突则提示用户修改,将剩余课程依次放入,若最终有课程没有排入课表,则排课无结果,需要用户修改选课规则后重新排课。
进一步的,在学生选课结束后,可以查看学生选课的具体情况,根据课程对应的选课人数和选课占比可对学生的选课结果进行调整,其中包括代替未选课的学生进行选课。
进一步的,所述走班排课规则包括设置每天的上课节数、优先排课的节次以及教师所教授的课程。
进一步的,所述行政班的排课规则包括设置行政班课程的优先上课节次、课程每周的上课节数和行政班中各门课程的代课老师,灵活满足排课中的各种需求。
一种排课系统,包括基础设置模块,用于教室、教学楼、教师、课程、课表模板和选课规则的设置;
排课模块,用于设置排课内容、排课方式、查看学生的选课内容、生成课表和修改课表内容;
学生选课模块,用于学生的选课和课表查看。
进一步的,所述基础设置模块包括教师管理模块、教学楼管理模块、教室管理模块、课程管理模块、年级管理模块、课表模板管理模块和选课规则管理模块;
所述排课模块包括选课设置模块、发布选课模块、选课统计模块、选择老师模块、选课排课模块、走班排课任务模块、行政班排课任务模块和课表模块。
与现有技术相比,本发明的有益效果是:对于遗传算法进行改进,拓展了选课排课的方式,拓宽了排课的灵活性,可根据教师、课程、课节、课时数、教室等资源灵活设置排课需求,提高了排课的效率和效果,减少了学校的排课负担,学生可根据兴趣选择喜欢的科目,拓宽了学生的选择范围。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明的排课系统流程图;
图2为本发明的排课系统架构图;
图3为本发明的走班排课遗传算法流程图;
图4为本发明的行政班排课算法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
实施例:根据图1所示,本申请排课方法包括:
S1:对走班排课系统划分基础设置模块,排课模块,学生选课
模块;
S2:设置教师、课程、教室、教学楼、课表模板、年级、选课规则等基础信息;
S3:根据基础信息创建排课计划;
S4:设置选课信息,并发布选课;
S5:学生根据选课设置信息,进行选课;
S6:统计选课结果,并对未选课的学生进行处理;
S7:设置走班排课规则,包括课节设置、教室设置;
S8:开始走班排课,并生成排课任务;
S9:根据学生意愿调整学生选课冲突;
S10:调整课表;
S11:继续排课;
S12:设置行政班排课规则,包括课节设置、学科设置、班级设置以及时间规则设置;
S13:开始行政班排课,并生成排课任务;
S14:查看课表;
S15:发布课表;
创建排课计划时需根据不同的需求设置走班排课、行政班排课或走班和行政班混合排课的排课方式,根据不同的排课方式系统会执行不同的排课流程;
排课过程中的不同的排课流程如下:如果排课计划中仅存在走班排课方式,则只会根据走班排课计划的设置依照遗传算法进行排课,不会进行行政班排课;若排课计划中仅存在行政班排课方式,则只会根据行政班排课计划中的设置依照算法进行排课,不会进行走班排课;若排课计划中同时存在走班排课和行政班排课方式,则会先进行走班排课的设置并进行排课,当走班排课完成后再进行政班的排课设置和排课;
根据图3所示,走班排课中的遗传算法,步骤如下:
依据选课统计结果,重新排序选课组合,将相同选修课选课组合人数多的排在前,人数少的排在后。设可能的结果组合数为L,一般情况下,前几个选课组合的学生人数会大于教室可容纳人数,为了满足所有选课组合的人数小于教室可容纳人数的要求,需要重复这些组合,即在第一次全排列时重复这种选课组合,设可用教室数为R,向上取整为ceil(),单个教室可容纳学生数为Rm,则有R=ceil(L1人数/Rm) +ceil(L2人数/Rm)+...,此多项式的项数即为:从L种选课组合中选出的选修课组合,但是也可能以上多项式的第一项+1, 末项-1会满足更多同学的选课需求,所以,以上多项式为第一次循环,第二次循环1项+1,末项-1;第三次循环2项+1,末项-1;直到被项的前-项+1,每次循环将选课学生平均的分配到教室中,这时,就将选课组合转换成了教室(相当于对每个选课组合分配了教室),形成R1、R2、R3....。
以R1举例,将R1的选修课必修课组合定义为C1,C2...,对所有课程进行全排列,每-种组合放入长度为40 (课表8*5)的数组,但对于每一课程组合的全排列需要满足条件,需要保证必修课每门每天1-2节,选修课每天1节,数组中一天每8个元素从第一个元素开始排课,将3门必修课3门选修课中任意一门放入第一个元素,第二个元素放入剩下5门中的任意一门,必修课可能会有连堂课,即一周6节课或以上,将多出的课时与之前5次课任意一次绑定在一 起,完成后,开始排R2的课程表,同理,直到RR的课程表,这样将会产生每一种选课组合的课程的全排列集合,R1课程组合的全排列设为A1、R2课程组合的全排列设为A2....,直到RR课程组合的全排列设为AR,那么所有课程组合的全排列是A1*A2*A3. .. *AR,即所有课程组合产生的课表种类数为A1*A2*A3...*AR,这也是此排课问题使用的遗传算法的初始种群数量。
由于教室数量的限制,不能满足每个学生的选修课选课组合,所以如何尽可能的满足学生的选课意愿决定了如何排课;选课组合结果较少的同学只能选择去不同的教室上课(走班)的方式,先从选修课排课结果排在LR+1位的排课组合开始寻找可能的课程表(遗传算法选择的过程):
(1) 从A1*A2*A3... *AR中任意取一个课程表。然后开始判断此课程表中是否存在LR+1位选课结果的课程表,即任意的从课程表中选课,使得结果满足LR+1位排课的课时要求,同一门课程只能选取同一个教室里的;
(2)若从上例可以找到符合要求的课程表,则将LR+1位选课组合的人数依据教室的剩余容量加进去,计数器记录该LR+1组合的剩余人数,同理计算是否存在LR+2位的选修课表,计数器再叠加LR+2组合的剩余人数,直到所有的选课组合选择完毕以及计数器叠加完毕,计数器的人数就是该课程表的得分情况,再去随机从Al*A2*A3...*AR中任意取一个课程表,重复(1)的操作;
(3)从(2)中可以获得所有全排列课程表的得分(计算器人数),选择得分最小的,即剩余人数最少的课程表作为最终的课程表;
(4)在确定教室以及时间之后,需要给课程加上老师,需教师教授不同班级的课程不能出现在同一时间,即不能出现教师时间冲突的情况,考虑教师的教学压力问题,每个教师的课程尽量分布在每周各个时间段,不能将教师的课程集中在某一天;
(5)进行完上述的所有操作后,统计剩余学生名单以及剩余学未安排的课程,这里学生未安排课程的主要原因是教室容量不足,由教师手动调整。
在排课结束后可以调整学生冲突,设置因教室容纳人数、课程选课人数等因素造成的课程冲突现象,也可根据学生意愿将学生调至同课程的其它班级,在排课结束后可以调整课表,根据学校的实际教学情况调整课表中的上课时间。
根据图4所示,行政班排课的算法包括:
进行课节设置,若此排课计划包含走班和行政班,则还需要读取走班排课已经占用的课节;
学科设置,添加此次行政班排课的科目,并设置每周每门课的课时数;
班级设置,需要为每个班级每门课添加任课教师,任课教师所教授的总课时数不能大于可用的课节数,否则排课失败;
设置时间规则,包括学科时间规则、教师时间规则、班级时间规则以及禁止相邻规则;学科时间规则用于设置全年级统一的课程,教师时间规则用于设置某一节次不授课,班级时间规则用于设置某个课程的具体授课时间,禁止相邻规则用于使两门课程禁止相邻;
开始行政班排课时,先满足用户设置的规则,如果规则冲突则提示用户修改,将剩余课程依次放入,若最终有课程没有排入课表,则排课无结果,需要用户修改选课规则后重新排课
根据图2所示,本发明的排课系统包括以下模块:
基础设置模块:用于教室、教学楼、教师、课程、课表模板、选课规则的设置;
排课模块:用于设置排课内容,方式,查看学生的选课内容,生成课表,修改课表内容;
学生选课模块:用于学生的选课和课表查看;
根据基础信息的内容,可以根据需要设置排课的方式和选课的内容,在学生完成选课后,可根据排课的设置生成对应课表,生成结果可根据实际需要进行调整,灵活调整课表内容。相比传统的排课方法,效率更高。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
- 可视化的排课调整指示方法和装置以及相应的计算机设备、存储介质、排课系统和排课方法
- 排课方案生成方法和装置以及相应的计算机设备、存储介质、排课系统和排课方法