论文部分内容阅读
摘 要 传统的命题方式过于依赖教师的个人经验,同时,也耗费教师大量的时间和精力。如果能设计一套集科学化、规范化、标准化和现代化为一体的通用试题库管理系统,既方便教师录入、编辑和管理试题,又能确保命题效率和质量,还能达到教考分离、以考促教、以考促学的目的。
关键词 试题库;智能组卷
中图分类号:TP311 文献标识码:A 文章编号:1671-7597(2013)17-0019-01
命题作为考试工作的核心环节,一直以来都备受任课教师的重视,也会带来一定的困扰。传统的人工命题方式中,为了确保试卷质量、避免和近年来的试题重复,任课教师需要绞尽脑汁、大费周折的查阅相关书籍和资料,试题内容还得逐题手工录入,遇到理工类的试题中附带图表信息的,更是要投入大量的时间和精力来完成,整个命题过程工作量大、时间周期长且效率低下,无形中给任课教师增加了压力和负担,无法让教师从繁忙的教学工作中抽身投入到教学改革和科研创新上。另外,传统命题方式的试题拟定主要依赖于教师的个人经验,受教师的主观影响较大,缺乏考试的系统性、科学性和规范性。
为适应高等教育发展形势,科学的评定学生掌握知识的水平,积极引导学生按照课程要求全面准确地理解、掌握和应用所学知识,应统筹设计开发一套集科学化、规范化、标准化和现代化为一体的通用试题库管理系统,有利于教师高效、便捷管理的试题,在确保命题效率和质量的同时,又达到教考分离、以考促教、以考促学的目的,促进教学质量的全面提高。
1 现行试题库组卷策略分析
目前被广泛应用的试题库智能组卷方案有随机算法、回溯算法和遗传算法。
随机组卷算法是一种最常用的智能组卷算法,它以计算机提供的随机函数生成一个随机量,结合组卷状态空间的约束条件,在试题库内不断随机抽取符合约束条件的试题,并将试题存放到试卷中,这个随机抽取试题的过程不断重复,直到组卷成功,或再也无法从试题库中抽取符合约束条件的试题为止。随机组卷算法的算法和结构简单,实现和维护较方便,但试题库中的题量较大且分布不均,试卷需求题量较多时,抽题耗费的时间也越多,而且往往以失败告终。
回溯试探算法是基于随机组卷算法的一种改进方法,记录下随机产生的第一种状态,根据状态类型在试题库内搜索,如果搜索失败,则释放该记录的状态类型,重新回到出发点,再根据特定的要求转换另一种新的状态开始试探搜索,通过从上往下反复不断地回溯试探,直到读取到满足条件的试题生成试卷为止。回溯试探算法属于深度优先算法,它能遍历每一种可能的状态组合,如果试题数量较小且组卷约束条件不高时,其组卷成功率较高,但如果试题数量过大,那么它所对应的状态组合将非常大,就必须花费更多的时间来搜索试题,导致组卷效率低下。且该算法程序结构相对复杂,占用内存量大,抽选的试题缺少随机性,组卷耗时长。
遗传算法就是将把搜索空间映射为遗传空间,搜索空间里的一组可行解看作一条染色体,每条染色体按既定规律的二进制或十进制数字串组成,所有的染色体就形成了一个种群,而组成染色体的元素我们称之基因。通过适应度函数计算遗传迭代过程中的每一条染色体的适应度值,再根据目标函数来评价每一条染色体,在种群规模不变的情况下对染色体进行优胜劣汰的选择操作,从而产生新的种群,接着对新的种群进行杂交和变异操作,生成新的个体,再对个体进行选择。通过上次反复的迭代操作,个体都朝着最优解的方向发展,直到产生满足实际需求的最优解或次优解为止。遗传算法虽然具备良好的并行性、全局性和稳定性,但其技术还在不断探索和改进。一般的遗传算法最大的缺点就是容易早熟,也就是算法对新空间的探索能力有限,搜索效率不高,容易收敛到局部最优解,直接导致组卷过程失败。当涉及到大量个体的计算时,如果问题复杂,计算花费的时间也较多。
2 通用试题库管理系统组卷策略的设计对策
综合各类组卷算法的优缺点,结合通用试题库系统的特点,我们选择利用改进型随机组卷算法进行组卷。
在使用随机组卷算法组卷时,必须考虑以下2个问题:
1)组卷过程中系统根据客户需求所抽取的试题必须是不重复的,也就是说随机函数生成的随机数不得重复,因此,在组卷过程中,随机函数生成的随机数应该进行标识,新产生的随机数要与之前的随机数进行比较,舍弃重复的随机数。这个随机数的比较次数会随着试题数的增加而急剧增加。
2)当随机函数生成一个随机数,我们就得以该随机数为题号在试题库中抽取试题,如果试题库中存在以该随机数为题号的试题,则该试题被抽出参与组卷,否则就舍弃这个随机数,再重新生成一个随机数,如果还是没有以新的随机数为题号的试题,则再次调用随机函数,直到匹配为止。这个反复过程每次都得花费时间调用随机函数、访问数据库提取信息、数据比对,显得程序的效率不高。
在实际应用中我们发现,以随机产生的序列确定题目序列能很好的改善以上问题,那么以怎样的方式来产生有效序列呢?我们可以参考排序算法,试题库中的试题都是按题号顺序来排列,即形成一个有序序列,我们要做的是将这组有序序列转换成无序序列,输出后与随机序列进行比较。这个过程其实就是排序算法的反过程。
如果要在试题库中抽取N道试题,我们首先定义个$Disorder动态数组用于存放试题的题号,数组元素的属性为整型。在抽取试题过程中,假设$Disorder的值等于试题库中试题的总数M,则$Disorder数组内各元素的初始值依次为1,2,3,4,……M,即一个有序序列,用于表示试题库中试题的原始序号,接着利用随机函数生成一个1-M间的随机整数,假设第i次随机函数生成的随机整数为r,那么交换$Disorder[i]和$Disorder[r]的值,遵循这个原则,循环M次,确保$Disorder数组的每个元素都经过交换,$Disorder元素的值就组成了一个无序序列,那么系统只需将试题库中$Disorder数组第一到第N个元素对应的试题号的试题提取出来,组卷输出给用户。通过分析我们可以得出,要得到一个有N个元素的无序序列,需要利用M次随机函数,进行M次数据交换,效率还是很高的。
我们将上述分析过程中定义的$Disorder动态数组称为“乱序数组”,我们来估算下乱序数组所占用的存储空间,假设乱序数组中每个元素存放一个题号,元素属性为整型,占用2个字节,如果试题库中有1000道试题,那么乱序数组的占用约2K的存储空间,如果是有10000道试题,也只占用不到20K的存储空间,这对于目前的硬件技术来说简直就是九牛一毛。更加值得注意的时,通过这种方式,大大提高了程序的效率。当抽题的数量与试题库试题总数相差不是特别大,这种方法就更为实用有效了。
参考文献
[1]尹贵祥.通用试题库系统的设计[J].现代电子技术,2011(2).
[2]梁普选,骆舒心,李丽霞.通用试题库系统的设计与实现[J].河北工业科技,2011(1).
[3]高岩.高校试题库系统的设计与开发[D].2010,4.
[4]卫永琴.网络试题库的建设与探索[J].科技信息,2011(5).
[5]陈永平.基于WEB的网络试题库系统设计[J].科技信息,2011(6).
作者信息
陈君(1980-),女,江西九江人,实验师,硕士,研究方向:计算机技术。
关键词 试题库;智能组卷
中图分类号:TP311 文献标识码:A 文章编号:1671-7597(2013)17-0019-01
命题作为考试工作的核心环节,一直以来都备受任课教师的重视,也会带来一定的困扰。传统的人工命题方式中,为了确保试卷质量、避免和近年来的试题重复,任课教师需要绞尽脑汁、大费周折的查阅相关书籍和资料,试题内容还得逐题手工录入,遇到理工类的试题中附带图表信息的,更是要投入大量的时间和精力来完成,整个命题过程工作量大、时间周期长且效率低下,无形中给任课教师增加了压力和负担,无法让教师从繁忙的教学工作中抽身投入到教学改革和科研创新上。另外,传统命题方式的试题拟定主要依赖于教师的个人经验,受教师的主观影响较大,缺乏考试的系统性、科学性和规范性。
为适应高等教育发展形势,科学的评定学生掌握知识的水平,积极引导学生按照课程要求全面准确地理解、掌握和应用所学知识,应统筹设计开发一套集科学化、规范化、标准化和现代化为一体的通用试题库管理系统,有利于教师高效、便捷管理的试题,在确保命题效率和质量的同时,又达到教考分离、以考促教、以考促学的目的,促进教学质量的全面提高。
1 现行试题库组卷策略分析
目前被广泛应用的试题库智能组卷方案有随机算法、回溯算法和遗传算法。
随机组卷算法是一种最常用的智能组卷算法,它以计算机提供的随机函数生成一个随机量,结合组卷状态空间的约束条件,在试题库内不断随机抽取符合约束条件的试题,并将试题存放到试卷中,这个随机抽取试题的过程不断重复,直到组卷成功,或再也无法从试题库中抽取符合约束条件的试题为止。随机组卷算法的算法和结构简单,实现和维护较方便,但试题库中的题量较大且分布不均,试卷需求题量较多时,抽题耗费的时间也越多,而且往往以失败告终。
回溯试探算法是基于随机组卷算法的一种改进方法,记录下随机产生的第一种状态,根据状态类型在试题库内搜索,如果搜索失败,则释放该记录的状态类型,重新回到出发点,再根据特定的要求转换另一种新的状态开始试探搜索,通过从上往下反复不断地回溯试探,直到读取到满足条件的试题生成试卷为止。回溯试探算法属于深度优先算法,它能遍历每一种可能的状态组合,如果试题数量较小且组卷约束条件不高时,其组卷成功率较高,但如果试题数量过大,那么它所对应的状态组合将非常大,就必须花费更多的时间来搜索试题,导致组卷效率低下。且该算法程序结构相对复杂,占用内存量大,抽选的试题缺少随机性,组卷耗时长。
遗传算法就是将把搜索空间映射为遗传空间,搜索空间里的一组可行解看作一条染色体,每条染色体按既定规律的二进制或十进制数字串组成,所有的染色体就形成了一个种群,而组成染色体的元素我们称之基因。通过适应度函数计算遗传迭代过程中的每一条染色体的适应度值,再根据目标函数来评价每一条染色体,在种群规模不变的情况下对染色体进行优胜劣汰的选择操作,从而产生新的种群,接着对新的种群进行杂交和变异操作,生成新的个体,再对个体进行选择。通过上次反复的迭代操作,个体都朝着最优解的方向发展,直到产生满足实际需求的最优解或次优解为止。遗传算法虽然具备良好的并行性、全局性和稳定性,但其技术还在不断探索和改进。一般的遗传算法最大的缺点就是容易早熟,也就是算法对新空间的探索能力有限,搜索效率不高,容易收敛到局部最优解,直接导致组卷过程失败。当涉及到大量个体的计算时,如果问题复杂,计算花费的时间也较多。
2 通用试题库管理系统组卷策略的设计对策
综合各类组卷算法的优缺点,结合通用试题库系统的特点,我们选择利用改进型随机组卷算法进行组卷。
在使用随机组卷算法组卷时,必须考虑以下2个问题:
1)组卷过程中系统根据客户需求所抽取的试题必须是不重复的,也就是说随机函数生成的随机数不得重复,因此,在组卷过程中,随机函数生成的随机数应该进行标识,新产生的随机数要与之前的随机数进行比较,舍弃重复的随机数。这个随机数的比较次数会随着试题数的增加而急剧增加。
2)当随机函数生成一个随机数,我们就得以该随机数为题号在试题库中抽取试题,如果试题库中存在以该随机数为题号的试题,则该试题被抽出参与组卷,否则就舍弃这个随机数,再重新生成一个随机数,如果还是没有以新的随机数为题号的试题,则再次调用随机函数,直到匹配为止。这个反复过程每次都得花费时间调用随机函数、访问数据库提取信息、数据比对,显得程序的效率不高。
在实际应用中我们发现,以随机产生的序列确定题目序列能很好的改善以上问题,那么以怎样的方式来产生有效序列呢?我们可以参考排序算法,试题库中的试题都是按题号顺序来排列,即形成一个有序序列,我们要做的是将这组有序序列转换成无序序列,输出后与随机序列进行比较。这个过程其实就是排序算法的反过程。
如果要在试题库中抽取N道试题,我们首先定义个$Disorder动态数组用于存放试题的题号,数组元素的属性为整型。在抽取试题过程中,假设$Disorder的值等于试题库中试题的总数M,则$Disorder数组内各元素的初始值依次为1,2,3,4,……M,即一个有序序列,用于表示试题库中试题的原始序号,接着利用随机函数生成一个1-M间的随机整数,假设第i次随机函数生成的随机整数为r,那么交换$Disorder[i]和$Disorder[r]的值,遵循这个原则,循环M次,确保$Disorder数组的每个元素都经过交换,$Disorder元素的值就组成了一个无序序列,那么系统只需将试题库中$Disorder数组第一到第N个元素对应的试题号的试题提取出来,组卷输出给用户。通过分析我们可以得出,要得到一个有N个元素的无序序列,需要利用M次随机函数,进行M次数据交换,效率还是很高的。
我们将上述分析过程中定义的$Disorder动态数组称为“乱序数组”,我们来估算下乱序数组所占用的存储空间,假设乱序数组中每个元素存放一个题号,元素属性为整型,占用2个字节,如果试题库中有1000道试题,那么乱序数组的占用约2K的存储空间,如果是有10000道试题,也只占用不到20K的存储空间,这对于目前的硬件技术来说简直就是九牛一毛。更加值得注意的时,通过这种方式,大大提高了程序的效率。当抽题的数量与试题库试题总数相差不是特别大,这种方法就更为实用有效了。
参考文献
[1]尹贵祥.通用试题库系统的设计[J].现代电子技术,2011(2).
[2]梁普选,骆舒心,李丽霞.通用试题库系统的设计与实现[J].河北工业科技,2011(1).
[3]高岩.高校试题库系统的设计与开发[D].2010,4.
[4]卫永琴.网络试题库的建设与探索[J].科技信息,2011(5).
[5]陈永平.基于WEB的网络试题库系统设计[J].科技信息,2011(6).
作者信息
陈君(1980-),女,江西九江人,实验师,硕士,研究方向:计算机技术。