您的位置:首页 > 其它

高校通用排课管理信息系统的设计与实现

2005-01-02 09:23 405 查看
前几天在 yphawk的专栏上看到这篇文章,挺感兴趣的,也像试一试,于是把这篇文章copy过来了
文章后面还有一些有用的评论

高校通用排课管理信息系统的设计与实现

详见http://www.gzit.edu.cn/gut/magazine/xb991/99xb1-4/99xb14-5.html

摘 要 在分析以往一些排课软件的基础上,提出一个通用的排课管理信息系统的设计方法,并对一些具体的技术问题作出相应安排。

关键词 教务;排课;排课管理系统;专家排课

中图分类号 TP315; TP399:G473.4 文献标识码 B

0 引 言

排课管理的主要任务是把各系或各授课部门的课程申请进行汇总,然后根据教学计划或教学环节制订全校各班级的课表。由于高校班级数、课程门数较多,每门课又涉及很多信息,如果用手工进行排课,不可避免地出现教室资源冲突或教师资源冲突的情况。为了使课表的编排更准确、合理、快速,高校教务部门已用计算机来进行排课管理,并先后开发出一些适用的排课软件系统。我们发现这些软件有以下不足:1)每个学期的课程、教师、教室信息相对固定,但却不能被重用;2)不能保存每个学期的历史数据,不便教师对以前课表进行查询;3)未提供用户的分级使用制度;4)自动排课速度较慢;5)形成的课表大小不固定,增加打印难度。

为了解决这些问题,充分利用学校的教室资源,我校教务处决定自行开发排课管理系统软件(PKMIS),该系统现已研究成功并投入使用,为教务处的教学管理工作提供了极大方便。

1 数据库结构

本软件使用的数据库很多,每个数据库中都增加了两个属性“USESTATUS”和“DM”。“USESTATUS”用于描述该记录是否被其它数据库使用,如果被使用,属性值为逻辑真,在进行记录删除操作时被禁止。“DM”属性保存了汉字信息的代码,减少了以后录入信息的工作量,以下介绍几个主要的数据库。

班级库(CLASS.DBF)是描述班级信息(即班级号、班级名、代码、学生人数、专用教室)的文件,学生人数决定了排课时所使用的教室类型。

教室数据库(ROOM.DBF)描述了教室的有关信息,即教室号、教室名、教室位置、容纳人数、教室功能等。

教师数据库(TECH.DBF)描述了教师号、教师名、代码、职称、年龄、工作时间、使用状态等信息,其中教师号由教研室号(4位)与序号(2位)共同构成。

课程数据库(KCK.DBF)信息由课程号、课程名、代码、简称、学时数、学分、后续学时、使用状态等属性构成。

课程申请库(PKDB.DBF)结构由申请号、班级号、课程号、教题号、总学时、实验学时、周学时、起始周次、指定教室、使用状态等属性构成,此数据库是最重要的排课管理数据库,是生成排课数据库的依据。

其它数据库限于篇幅,这里不作介绍。

2 系统功能与模块结构

1.初始化管理:此功能在开始排下一学期课时,可以载入上次排课的一些信息(如教师信息、教室信息、班级信息等),节省了重复输入的时间。

2.辅助数据管理:此功能可以对教师、教室、课程等信息进行组合条件查询、模糊输入、删除、修改、打印等操作。

3.排课管理:排课管理分为排课数据管理,根据班级、教师或教室进行手工排课,自动排课等功能。

4.课表管理:此功能可以根据各种条件打印、查询或保存班级课表(总课表、系课表等)、教师课表(授课任务书)、教室安排表、某天课表、某节课表等。

5.工作量管理:为了便于教务处期末结算教师总工作量及发放课时酬金,特增加此功能。工作量管理人员可输入计算公式,计算机根据公式自动生成工作量(教师工作量、系总工作量),并能打印、查询工作量情况。

6.系统功能管理:此功能可对数据进行备份/恢复,对数据库进行索引维护、进行用户设置(设置用户对软件的使用权限,如查询权,排课权等)。

系统总体构成见图1所示:

图1 排课管理信息系统的系统构成

3 通用系统设计的一些考虑

1.系统的进入与注册

系统在启动时要求用户输入用户名和口令,PKMIS允许用户输入三次,三次都不正确则确定为非法用户,强行退出系统。每个用户使用的功能与权限都受到相应限制。

2.数据备份与恢复

为了防止事故造成数据损失,必须经常对所使用的数据库文件进行备份操作,以便在出现数据损坏时能恢复到以前工作的状态。

3.用户权限管理

PKMIS可供排课管理员、教务长、系教务员、一般教师等使用,因此提供了用户分级管理功能,使不同的用户享有不同的权限。

4.数据库的共享

PKMIS可以在Novell网上供多个用户同时使用,因此PKMIS提供了对共享数据库的保护,当一个用户在修改一条记录时,则拒绝另一用户作同样的操作。

5.上机记录管理

为了对使用软件的用户进行责任跟踪,了解软件的使用情况,PKMIS提供的上机记录管理可以登记上机的用户名、使用的机器、起始时间、终止时间以及使用的功能。

4 排课功能的一些问题

排课管理功能是PKMIS设计难点,它不仅要考虑到教室冲突问题和教师冲突问题,还要考虑到分段课、单双周课时的资源利用问题。另外由于高校的教学特点,还要处理合班课、外语分级课、体育课、分组课与选修课等特殊课程。PKMIS针对这些问题,专门对数据库设计与程序编制作了一些探索,但由于本软件开发周期短,可能有些问题需要进一步研究和完善。

PKMIS还设置了专家排课功能,它能够根据排课用户事先给出的排课策略进行自动排课,排课速度较快。为了实现专家排课功能,专门设置了两个堆栈S1和S2,S1的每个结点保存已排好课程及该课程的某次课,S2保存未排课程及该课程的某次课。具体排课算法如图2:

图2 专家排课算法

5 结束语

PKMIS采用FOXPRO数据库管理系统编程,在1996年12月完成,并在我校的教务部门正常运行到现在。PKMIS使用简单、性能稳定、容错能力较强,生成的课表快速、准确、可靠,并能向教务部门提供各种有关课程、教师、教室等报表。与同类软件相比,PKMIS还有以下一些特点:

1. 功能集成化,PKMIS的所有管理(增加、删除等)都集中于一个统一的界面。

2. 使用简单化,PKMIS的各种操作简单、统一。

3. 查询综合化,在窗口中显示了所有可查询的字段。只需在相应处输入查询值即可对指定字段进行组合查询。

4. 输入智能化,PKMIS在排课申请管理时,可按代码、信息片段等进行录入,不需输入大量信息。也可在弹出窗口中直接选择相应信息到指定位置。

还有两个流程图,没有显示出来!

(1)建立必要文档:各班级课程设置及任务分配(名称、性质、学时、学分、授课教师及对排课要求),教室资源(编号、容量、位置、是否为某课或某班级专用)等。
(2)基本条件:教师无冲突,教室无冲突,学生无冲突。
(3)优化条件:周学时多的课程一周内匀开(隔天)排课,主课排上午实习课等排下午,同一班级各课教室尽量少换或在同一栋楼,照顾教师或课程的特殊要求。
(4)排课优先级顺序:各专业共修课,周学时多的主课,一般主课,其它课。

1、对于一个班级来说,课程在时间上是合理的,这个大家都清楚的,谁也不喜欢上一上午的语数外等主课吧
2、对于一个老师来说,不要出现课程的冲突。毕竟老师分身乏术,不能既出现在A班又出现在B班。
3、对于一个老师来说,不能出现高强度的劳动,比如今天上8节课,第二天则只要上1节课,太不合理了。
基本上这些是最重要的了,另外还要考虑到,到了周五,课程怎么安排这类的问题(尤其是住校生,对这个问题很敏感的。)

要知道,排课系统一直是软件开发中的一个经典的问题,到现在还没有完美的解决方案。
另外,离散数学怎么能说和编程没有关系呢?二叉树、图、优先队列这些数据结构都是离散数学中的呀。递归算法要用到递归论、分治算法的复杂度分析要用到数学分析、动态规划要用到群论和最优化理论、贪心法要用到矩阵胚理论;数字图像处理要用到现行代数和微积分、人工智能要用到小波分析和微积分、多媒体要用到现行代数、微积分、数论等,网络通信要用到傅立叶变换、小波分析、数学分析等

学生方面的要求:
1。各门课之间存在拓扑关系,有些课必须在其他课之前上。例如,物理系每个星期的数学分析课程就应该在理论物理课程之前上课。因为理论物理需要用到数学分析的知识。这样各门课之间构成一个有向图,利用拓扑排序可以确定上课的次序。
2。因为有些课程是很多系一块儿上的公选课,这些课和上课学生的专业课不能冲突。比如星期一早上第一节课是电子系和计算机系一块儿上的马克思主义哲学课,于是星期一早上第一节课就不能有电子系和计算机系的其他课。
3。学生一天之内连续上的两门课的教室之间不能相隔太远,至少要保证在同一幢建筑物内。如果早上第一节课在南大楼10楼,第二节课在北大楼10楼,那学生肯定会有意见;
4。一个学生每天的课程应该文理搭配,如果一天连续上4节数学方面的课,早上是数学分析,微积分;下午是线性代数,数理逻辑,学生肯定受不了(如果是数学系,这种情况可以允许,但如果是计算机系,学生肯定有意见);
5。同一系的学生应该尽量安排在同一个教室上课。例如,马哲有两个班,有计算机系、电子系、物理系一块儿上课,应该尽量让计算机系的先排满一个班,一个班实在放不下了再分到其他班。
6。专业课应尽量不和公共选修课冲突。很多学校都有公选课,例如剪纸、书法、中国革命史等,如果这些公选课和系里的专业课上课时间冲突,则只会造成更多的学生逃课;
7。实验课应该尽量安排在下午。早上一二节课大家刚刚起床,做实验效果肯定不好。早上三四节课要去食堂吃饭,如果实验没做完就会影响吃午饭,因此三四节课的实验课效果肯定不好。

老师方面的要求
1。每个任课老师上课时间不能冲突,一个老师同一时刻只能上一门课。
2。每个老师的教课任务应该尽量平均分摊,如果有4个数学老师,他们每个星期上的课时数应该尽量相同。
3。每个老师每个星期的教学任务应该尽量平均,如果一个星期有5堂课,最好平均每天一堂课;不应该让一个老师连续上两堂课;
4。应尽量保证同一性质的老师不会全部都在同一时刻上课。例如学校有四个数学老师,应尽量让这四个数学老师不在同一时刻上课。这样如果某天某位数学老师生病不能来上课,可以由其他数学老师代课。

教学资源的要求:
1。上课的教室分配不能冲突;
2。为了充分利用教学资源,并保证上课的效果,每门课上课的教室座位数应基本上略大于选修该课程的人数。否则上课效果得不到保证。
3。有些课程需要特殊的教学资源,比如电脑,投影仪,录像机等。必须考虑到这些教学资源的分配和其他课不会冲突。不应该出现两门课争用同一教学资源的情况;
4。实验室的分配不能冲突。同一个实验室不能连续地供作两个不同实验的课程使用。例如物理实验室刚刚供物理系做了实验,不应该立刻就供计算机系去做实验,如果这样的话实验器材没有时间进行清理和准备,会影响实验效果;
5。每门课一学期的总课时数要满足教学计划的要求。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐