院级实验课自动排课算法的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
院级实验课自动排课算法的设计与实现
江平;王忠月;苗序娟
【摘要】实验课排定是一项繁重的工作,用人工排课的方式不仅费时费力,其正确性、方便性更是难以保证,因此利用计算机进行自动排课成为了目前更普遍的选择.本文
针对某高校一个实验课程较多的二级学院,进行实验课自动排课算法的设计.实现后
的系统具有自动排课功能,帮助教师不受地点限制快速完成排课工作,大大提高了用
户的工作效率,保证了排课工作的正确性.
【期刊名称】《软件》
【年(卷),期】2013(034)004
【总页数】2页(P29-30)
【关键词】算法设计实现;自动排课;实验课程
【作者】江平;王忠月;苗序娟
【作者单位】天津商业大学信息工程学院,天津300134;天津商业大学信息工程学院,天津300134;天津商业大学信息工程学院,天津300134
【正文语种】中文
【中图分类】TP301.6
0 引言
实验课排定的实质就是对学校某学期开设的每项实验合理地分配时间资源和实验设备资源的过程,其中涉及教师、实验室、时间和学生等多种因素,人为要求也比较
多。
诸多因素增加了实验课排定工作复杂度,选择一种合适的算法显得十分重要。
本文根据某二级学院的实际情况,结合以往的排课经验,通过确定实验课程开展的需求集与资源集,分配时间资源,设计并实现了一个院级实验课自动排课算法。
1 排课系统使用流程说明
整个排课过程比较复杂,在自动排课之前需要进行初始化及参数设置,在自动排课之后需要人工调整排课结果。
具体排课流程如下:
(1)导入学期信息表,设置当前学期。
(2)导入当前学期的班级信息表及对应的学生信息表、实验室名册、教师信息表,完成基础信息数据库的建设;
(3)导入符合当前学期教学计划的大课表及教学班信息表;
(4)开放实验室排课功能,允许教师排课;
(5)设置授课任务的排定条件,自动排课。
可分为如下步骤:①教师选择实验课程、实验场所、上课班级(教学班)及周数、学时,提交;②教学班人数大于实验室容量时进行分批操作,形成待排授课任务列表;③系统根据如上设置完成自动排课;
(6)教学秘书查看教师排课情况,并在所有教师排课结束后关闭排课功能;
(7)对自动排课结果中不完善的部分进行手工调整。
自动排课结束后,可能会有某些排课结果不能使教师满意,这时教师可发出调课申请,获教学秘书批准后由系统管理人员手动更改课表;
(8)根据排课结果生成课程表。
生成的课程表有以下3种:①行政班课程表,②教师课程表,③实验室课程表;
(9)开放查看课表的功能。
2 数据库设计
本系统运行过程中,需要记录排课的初始数据、过程数据以及结果数据。
具体的基础数据表包括学期信息表、班级信息表及对应的学生信息表、实验室名册、教师信
息表。
排课前需导入的表格有大课表(课序号、课程名、教师号、教师姓名、课程属性、总学时、周学时、授课学时、实验学时、学分、是否本学院实验课、上课地点、上课人数、上课周数),教学班信息表(教学班名称,自然班1,自然班2,自然班3,…)。
排课过程中产生的表有课程时刻表、教师课表(需保留以查询教师工作量)、行政班课表、实验室课表(需保留以查询实验员工作量)、实验批次记录表、课程与实验室关系表、批次与班级的关系表。
这些表各司其职,分别管理排课过程中的各个方面。
3 自动排课算法
在系统开发过程中,最难的子过程就是自动排课。
本排课系统为了降低难度,将排课过程简化为确定授课任务时间的问题。
为某一授课任务安排合适的教学时间,只需要该教学时间的安排与教师的时间资源、相应行政班的时间资源、相应实验室的时间资源不冲突即可。
3.1 相关名词解释
行政班:同一年级、同一专业、按同一教学计划培养的一定数量的学生组成。
教学班:在相同时间、相同教室,学习由相同教师讲授同一门课程的一定数量的学
生组成。
时间片:学期中可以编排课程的每个节次为一个时间片,即时间片是一个长度为4
的字符串,前两位字符代表第几周,第三位代表周几,第四位代表节次。
授课任务:一门课程的每个教学班在一周内包含多个实验课授课学时,每2学时为
一个授课任务。
每个排课任务的相关属性有:行政班ID、教师ID、人数、课程ID、实验地点、上课时间。
3.2 约束条件
(1)每位教师在一个时间片最多只能对应一个授课任务;
(2)每个行政班在一个时间片内最多只能参加一个授课任务;
(3)每个实验室在一个时间片内只能进行一个授课任务,并且设备资源必须满足授课需要;
(4)如果实验课对应的理论课在该周没有安排,则实验课与理论课最好安排在课表不同周的相同位置;
3.3 符号说明
为了方便描述算法,首先介绍一些符号设定。
Ele_i:表示第i个授课任务;
Ele_i_ClassID:表示Ele_i的行政班编号;
Ele_i_TeacherId:表示Ele_i的任课教师;
Ele_i_ RoomID:表示满足教学要求的实验室;
Ele_i_AvaTimePiece:表示可为Ele_i分配的教学时间片;
Ele_i_CourseID:表示Ele_i的课程编号;
Ele_i_TimePiece:表示为Ele_i的分配的教学时间片;
3.4 算法描述
本系统自动排课功能采用的算法如下:
(1)针对当前Ele_i找一个合适的教学时间Ele_i_TimePiece:
①求出Ele_i_ClassID、Ele_i_TeacherId、Ele_i_RoomID的所有空闲时间片集合的交集,这个交集就是当前Ele_i可用的时间片集合Ele_i_AvaTimePiece;
②如果课程表中与Ele_i_ CourseID相同的课程在该周无理论课,则为实验课安排的星期几、节次,与相应理论课在上周安排的时间相同;
③如果上述交集的时间片为空,则认为该授课任务排课失败,提示教师更改排课条件,直至该授课任务排定成功。
图1 系统进入自动排课时的界面
(2)更改相应行政班、任课教师、实验室的可用时间,将Ele_i_TimePiece表示的
时间片设置为已占用;
(3)继续进行下一授课任务的教学时间分配;
(4)排课结束后显示排课结果;
(5)把排课结果存放到数据库的相关表中。
4 系统实现状况
实现高校实验课课表的合理编排,对有效利用实验室和时间资源是非常重要的。
本系统通过设置排课条件,形成待排课程列表,对时间资源、实验室资源采取有效的优化查找,得出的排课结果基本上满足了学院实验课排课工作的要求。
(图1)除了实现自动排课,本系统还支持课表查询、基础信息管理、通知公告、调停课处理及教师工作量统计,基本满足了用户需求与设计预期。
参考文献
[1]蔡明山, 彭楚武.基于课元与回溯算法的实验室智能排课与预约[J].长春工业大学学报(自然科学版), 2004年(4).Cai M S, Peng C W.Research and design on intelligent curriculum arrangement of college laboratory information management system [N].Journal of Changchun University of Technology (Natural Science Edition), 2004(4) .(in Chinese)
[2]潘以锋.高校智能排课系统的算法[J].上海师范大学学报(自然科学版),
2006(5).Pan Y F.Algorithm of intelligent course arranging system[J].Journal of Shanghai Normal University (Natural Science Edition) , 2006(5).(in Chinese)
[3]王帮海, 李振坤.基于贪婪算法的自动排课表系统的研究与实现[J].计算机工程与设计, 2008(9) (29):4843-4846.Wang B H, Li Z K.Research and implementation of automatic course system based on greedy algorithm
[J].Computer Engineering and Design, 2008(9)(29):4843-4846.(in Chinese)。