高校排课流程及冲突检测分析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

高校排课流程及冲突检测分析

黄玉波

(江西财经大学现代教育技术中心,江西南昌330013)

要:对高校本科教学中排课算法的控制流程及冲突检测需要考虑的一些重点问题,进行了分析,并以此设计与

实现了排课系统,在实际教学管理中获得良好效果。关键词:高校;排课流程;冲突检测中图分类号:TP301

文献标识码:A

文章编号:1672-7800(2010)02-0016-02

0引言

由于高校教学管理的差异性大,个性化需求多,所谓通用

的高校排课软件并不通用,从市面上购回来的排课软件往往需要开发者二次定制开发。我校既有本科教学,也有研究生教学,两者排课问题的差异性很大。因此很多高校也选择了贴近实际需求,自主开发。

本文所述的排课问题及解决方法,完全贴近我校本科教学中排课问题的实际需求,是由学校自己的开发队伍,设计、开发的排课系统。在此抛砖引玉,或许对其他高校排课问题的解决,有借鉴作用。

1排课流程

在排课问题上,最重要的是根据实际需求,分析清楚排课

的整个流程,了解影响排课了解的诸多因素。实现了各种各样的自动排课、半自动辅助排课、全手工排课等系统。

我校本科教学是以学分制选课机制为主导的,大学2年级到大学4年级的大部分课程,学生都是通过网上选课来完成教学计划,但新生的课程必须由教务部门在新生正式上课前预先排好。所以排课系统主要用于新生的排课以及高年级的部分特殊课程。

根据实际需求,分析出我校本科教学的自动排课流程如下:设:构建5个集合:课程=A ,班级=B ,教师=C ,教室=D ,时间片=E 。

正式排课之前,我们需要对时间片E 进行设置。一周内可排课的天数,我们按5天编排,分别用“1”~“5”5个字符表示;1天内可排课的节数,我们按“1”~“9”和“A ”十个字符表示,分别代表10节课,其中上午“1”~“4”4节课,下午“5”~“7”3节,晚上“8”、“9”、“A ”3节课;关于单双周的问题,我们用“0”、“1”、“2”3个字符分别代表“全周”、“单周”、“双周”3种不同的周次安排。

有了以上字符定义,我们在时间片E 的设置上,就实现了对每节课时间片的字符串表示,如:

全周的周1第2节用“012”表示,单周的周3第6节用“136”表示,双周的周4第10节用“24A ”表示,……

在排课过程中,我们根据以人为本、科学编排的原则,制定了时间片的取用规则:节数为偶数的课程(如:2节、4节),尽可能按“先周1~5上午,再周1~5下午,再周1~5晚上”的顺序编排;节数为奇数的课程(如:1节、3节),尽可能按“先周1~5下午,再周1~5上午,再周1~5晚上”的顺序编排。

正式排课,首先,我们需要跟踪实际情况,如:任课教师的特殊需求,以及人数多的大班课程等,对需要参加排课的课程集合A 进行优先级设置,并按优先级从高到低进行排序,然后以排好序的课程A ,从上到下,逐门课程开始排课试探。

排课流程为:从课程A 中取出一门需要排的课,按时间片取用规则从时间片E 中提取一个时间片,在这个时间片中进行各种冲突检测(主要对班级B 、教师C 和教室D 在时间片上的检测),如果发现冲突,则排课不成功,提取下一个时间片,继续进行冲突检测……;如果在一个时间片上没有冲突,则标记排课成功,记录下这门课在这个时间片上可用。从课程A 中取下一门要排的课程,继续上述过程,直至课程A 中所有课程全部排完,结束自动排课。整个流程如图1所示

图1自动排课流程图

软件导刊

Software Guide

第9卷%第2期

2010年2月Vol.9No.2Feb.2010

作者简介:黄玉波(1972-),男,江西南昌人,硕士,江西财经大学现代教育技术中心软件部主任,研究方向为软件工程、计算机应用。

第2期2冲突检测

当一门课准备在一个时间段上进行排课时,主要进行的冲

突检测有6个方面:

2.1在这个时间段,班级B 可用

在班级B 的冲突检测上,我们主要从课表中提取课程所

涉及的班级在指定时间段上,是否已经安排了其他课程,或指定了班会,或有学校规定的特殊活动。如果没有,则没有冲突,返回值False ;否则发现冲突,返回值True 。

2.2在这个时间段上,教师C 可用

在教师C 的冲突检测上,我们主要从课表中提取该任课

教师,是否在指定时间段上,已经安排了其他课程授课,或这个时间片是该教师指定的不授课时间。如果没有冲突,则返回值

False ,否则返回值True 。

2.3在这个时间片上,教室D 可用

在教室D 的冲突检测上,我们主要从课程需求的教室容

量上,依次提取符合容量大小的教室,判断各教室是否在指定的时间片上可用,如果没有发现有合适的空教室可用,则返回值False ,否则返回值True 。

2.4在这个时间片上,单双周可用

在单双周的冲突检测上,我们是结合进班级B 、教师C 和

教室D 的冲突检测中进行的。在同一个时间片上,允许同时安排一个单周和一个双周的班级B 、教师C 和教室D ,也就是允许一个时间片上的共存。但不允许同一个时间片上,一个全周的安排与任何一个单周或双周的共存安排。

2.5合班冲突问题

对于多班合班上课的问题,需要分别考虑参于合班的原班

级,在合班共同的时间片上,是否均不发生冲突(单班级的时间片冲突检测,参考冲突检测1)。只有参于合班的所有班级均无冲突,则返回值False ,否则返回值True 。

2.6跨校区问题

由于各学院各专业的学生存在多校区之中,在排课上需要

考虑到学生尽可能不进行跨校区上课,也就是要测定指定时间片上,课程所指专业和班级的学生所在校区没有冲突;同时,也

要考虑授课教师在上午(1-4节)、下午(5-7节)、晚上(89A 节)中途不跨多校区授课,即要测定教师在指定时间片的半天中(上午、下午、晚上)不允许已有其他课程安排,否则发生冲突,返回值True ;没有冲突,返回值False 。

3实现

考虑到排课这项工作,主要集中在教务部门的个别管理员

手中操作,我们没有采用流行的B /S 开发模式,而使用了可视化快速开发工具Delphi7.0开发了专用的C /S 排课程序。采用专用程序的最大好处就是可以使排课和调课的权限,尽可能掌握在个别人手中,方便程序加壳加密处理,而且C /S 程序适合进行密集运算和快速开发。而对于已经排好的课表进行查询和显示,则考虑到要面向广大的教师和学生,则采用J ava 开发了

B /S 网站,在网上进行发布,师生可以随时方便地上网查询自

己的课表。

4结束语

本文以作者所在学校本科教学排课的实际需求为基础,着

重对自动排课流程和排课过程中重点需要考虑的冲突检测的几个方面进行了分析。

开发一套排课系统,还有很多开发细节需要考虑,不仅是开发技术在实现上的问题,还有很多管理流程的细节问题。希望通过对本文的阅读,能对排课流程和冲突检测的相关信息有所了解,对自动排课有一个总体的认识。对于希望了解和开发新的排课系统的读者,能多少起到一点借鉴作用。

参考文献:[1]王凤,林杰.高校排课问题的图论模型及算法[J ].计算机工程与应用,2009(27).

[2]高武奇,康凤举,钟联炯.基于冲突检测算法的二级排课系统[J ].西安工业大学学报,2008(10).

[3]

冯思玲,李艳梅,梁瑜.基于分治和贪心相结合的排课算法研究[J ].现代计算机,2009(3).

(责任编辑:王

钊)

Analysis on Process and Conflicts Detecting of

Curriculum Schedules in Universities

Abstract :The paper analyses some problems of controlling process of curriculum arrangement algorithm and conflicts detecting ,and de -signs a curriculum arrangement system that has gain good effect in practical teaching management.Key Words :University ;Curriculum Schedule ;Conflict Detecting

黄玉波:高校排课流程及冲突检测分析

17··

相关文档
最新文档