排课系统的设计
摘要:教育不仅是提高国民素质的重要途径同时也是提高国家现代化生产力水平的关键内容,因此教育事业越来越受到人们的重视。其中在高校教育事业中排课系统不仅是教学管理的一项重要内容同时也成为高校实现现代化的一项重要内容。目前,很多大学的排课工作都尝试用一定的排课算法来完成,结合学院情况,以Java作为开发语言,利用合适的算法进行编排,并使用MySQL数据库技术设计一个排课系统,以期替代或部分替代人工,节省教务人员的精力,并有效减少手工排课中的各种冲突,提高排课效率。
关键词:排课算法,课程冲突,自动化编排,信息管理
1.文献综述
使用数据库管理系统MYSQL创建数据库,将同种类型的数据存放到数据库表里,通过管理系统,降低数据的重复率。其功能包括:数据库定义、数据库管理、数据库建立和维护、通信即具备与操作系统联机的处理等能力[1]。其核心程序不会耗用很多的操作系统资源,而且使用的是多线程技术,对于开发网络程序有很大的灵活性[2][3]。MYSQL支持ODBC FOR WINDOWS.可以使用ODBC2.5函数及其他函数,支持ACCESS,从而使得MYSQL的应用得到了很大的扩展[4]。它具备大的容量,可以支持成千上万条记录,所以它完全能满足对本院各项资源信息数据的存储[5]。它可以进行丰富的查询、增、删、改等功能,与SQLSERVER数据库语法一样,能够使用SQL中SELECT、DELETE等语句,并且可以使用连接查询将多个表的信息显示在同一查询中[6]。回溯法在用来求问题的所有解时,要回溯到根,且根结点的所有子树都已被搜索遍才结束。而回溯法在用来求问题的任一解时,只要搜索到问题的一个解就可以结束。它适用于解一些组合数较大的问题。高校排课的组合就是很巨大的,使用回溯算法能更好的保证排课的正确性与实用性。
2.选题背景及其意义
在高等院校,每一学期,都要排课。排课周期很长,就本校而言,期末前两个月就要开始着手下学期排课问题。所以说排课工作是现代高等院校必不可少的一项重要工作,分为手工和利用计算机进行排课。作为高校,排课工作级重要又繁琐,如果采用人工既耗时又耗力,所以目前各个院校都在开发适合本校的排课软件。
今天,排课系统本质上虽然一样,但在形式上确实多种多样,有使用各种各样的编程语言,系统的功能也越来越强大,排课系统多方面的冲突严重问题也得到了比较完善的处理。解决这些冲突和各种问题的算法有很多比较好的,像基于图、概率、基因等,还有许多的专业书、专业论文等[7]。而且这些研究都是行之有效的,是在调查学生、教师的需求,可以说十分繁杂,对人的耐心要求是相当高的。对于在实际排课过程里,必须要解决各种冲突问题,还要解决各种条件制约,包括学院各种教学设施,师生等各种对象因素[8]。为了解决这些问题,光靠人工效率是低下的,为了提高效率,节省财力物力,考虑要利用计算机来完成这项工作,只要软件算法得到优化,选对编程语言,就能够开发出高效的软件。从而保证排课工作能够更加科学,提高管理人员的激情和积极性,提高工作兴趣和工作效率,使本院的教务管理能够实现里程碑的发展。就课表编排工作来说,该系统需要解决多样化性、课表频繁的变动调整、数据量大等的排课需求,并且要满足以网络应用为基础,可靠而又安全的性能特征。随着计算软件和网络的高速发展,已经有相当数量的院校通过对自身资源的了解,和充分利用其各种优势,开展了大量的研究工作,根据其培养计划,开发出适合学院的系统。例如,西南交通大学就是运用课元相关组合进行运算,以教师的意愿排课时间、课元的候选时空片为核心的[9]。所以,开发排课系统应结合学院院情,根据学院的资源和自身开课计划,排课规律进行研发[10]。;根据本校的教室大小、教室类型(多媒体、机房、语音室、实验室、等类别教室)、结合各个专业的特点和实际课程编排需求,开发出与之相适应的软件体系,使我们的课程编排更加合理可靠精准,并实现教师生及课表使用人对课程编排动态互联网实时共享的需求。
3.研究内容
以本人所在学院的实际情况为背景,对排课问题进行需求分析,建立系统业务模型,分析排课流程,从而给出排课系统的功能模块框图;使用合适的排课算法,使排课效率和质量得到提高;进行系统详细设计、数据库设计,编程实现自动排课系统全部功能,完成软件开发。通过对以上方面的研究,完成排课系统的设计与实现。智能排课系统需要同时实现对学院教师、教室、班级、课程及上课时间的信息管理。功能模块图如图1所示,功能主要包括:
(1) 系统管理功能集合。该集合包括权限管理模块。当使用者为管理员时,可进行权限管理功能,它能够添加新的使用者,也可对已有的用户进行名称、密码的修改和删除。
(2) 基本信息管理功能集合。该集合包括教师信息管理、教室信息管理、班级信息管理、课程信息管理、上课时间管理五个模块。在该集合内可查看相应的数据表,对于管理员级别的用户,可对以数据库表中的内容进行添加、修改、删除等操作。对于一般用户,只能实现查看信息的基本功能。
(3) 排课管理功能集合。在基本信息设置模块中,可设置限制排课的条件,如不加限制排课、不在晚上和星期六排课等。而一般用户只能查看管理员设置的条件。在排课时,管理员先在课程信息管理中设置好要预先排课的课程,然后调节限制排课的条件,就可以使用自动排课功能。用户可在排好后的课表中查看课表,而手动排课也可针对实验课等灵活性的课程。
图1 排课系统功能模块图
其中数据库管理模块用MySQL技术,将课程教师、教室、上课时间、班级信息进行存储。再用E-R图中用矩形表示实体,用菱形表示实体互相之间的联系,实体之间用直线进行连接。数据库中的关系及内容如图2所示。
图2 排课系统E-R图
4.工作特色及其难点,拟采取的解决措施
(1)相同的时间内一个教室只能安排一门课程;
(2)相同的时间内一个教师只能安排一门课程;
(3)相同的时间内一个班级只能安排一门课程;
(4)课程进行教学所用教室的类型和容量的要求必须得到满足。
针对排课中出现的冲突问题可以采用回溯的方法进行处理。回溯方法的思路是这样的:如果发生冲突,就回溯到已经安排好的任务单元进行重排,然后,再尝试将引起冲突的任务单元重新排入课表,最终到达解决冲突问题的目的。
5.论文工作量及预期进度
2019年11月-2019年12月 查阅文献资料、熟悉环境和相关技术,完成开题告。
2020年01月-2020年02月 排课系统的设计流程图研究。
2020年02月-2020年03月 排课系统的初步设计。
2020年03月-2020年04月 排课系统的完善与测试。
2020年04月-2020年05月 毕业设计论文撰写和毕业答辩。
6.预期成果及其可能的创新点
1.根据实际调查,详细阐述排课问题各要素以及各种软、硬约束条件,分析排课问题中的重点与难点,抽象出排课问题对应的数学模型。
2.针对排课问题中存在的各种约束,以实现计算机自动排课为目标进行新算法的设计,并参照其它算法得到排课问题的优化方案。
3.自动排课系统的设计,包括算法的模块,数据库的设计等。
参考文献
[1]黄丽.江西蓝天学院教务管理系统的设计与实现[D]. 南昌大学硕士论文,2009.
[2]李芳.高校排课系统的研究与设计[J].电脑知识与技术(学术交流),
2007, 3(16) :925-926.
[3]杨三.基于ScM的企业库存管理系统研究与开发[D].武汉理工大学硕士论文.
[4]雷斌,基于WEB 2. 0社交型网站分析与设计[D].北京邮电大学硕士论, 2010.
[5]刘建新.小型企业办公自动化系统设计[D].天津大学硕士论文.
[6]沈丽容,陈明磊.基于遗传算法的高校排课系统研究[D].南京林业大学信息学院计算机科学与工程系,2006.
[7]张洪亮.基于B/S架构的辅助排课系统的设计[D].互联网论文库.
[8]陈远.基于遗传算法的排课系统的设计[D]. 苏州大学硕士论文,2009.
[9] 王鹏.基于BS的高校自动排课系统的设计与实现[D]. 学术论文联合对比库,2014.
[10] 豆丁网.基于java的教务排课系统设计[D]. 互联网文档资源,2012.