通用题库数据结构与组卷算法设计

时间:2022-08-10 01:48:34

通用题库数据结构与组卷算法设计

【摘要】题库的数据结构和组卷算法决定了题库的适用范围,该文根据不同课程试卷及其试题属性的构成,提出一种新的题库数据结构,并在分析组卷控制模型的基础上,对组卷算法进行详细设计。

【关键词】试题库结构;组卷目标;控制模型;组卷算法

【中图分类号】G40-057 【文献标识码】B 【论文编号】1009―8097 (2008) 08―0101―04

一 引言

智能题库系统是教育测量标准化、规范化的重要组成部分,其通用性主要取决于题库数据结构和组卷算法。一方面,题库数据结构要能满足不同课程的需要,冗余度尽可能小;另一方面,组卷算法要能适用于不同的题库条件。根据这两方面要求,本文提出一种新的题库数据结构和组卷控制模型,并对组卷算法进行详细设计

二 题库数据结构设计

不同课程虽然其试卷考查内容、使用对象不同,但都有试卷总分、考查章节、题型构成、试卷难度、区分度、考试时间等指标要求,并且试卷中的每道试题均具有知识点、认知分类、难度、题型、题分、试题内容、答案等属性。与此同时,不同试题其内容和答案的构成元素差别也很大,简单的只有文本,复杂的除文本之外,还包含图像、公式等。

因此,为满足不同课程试卷及其组卷算法的需要,我们设计了如下表结构:

(1) 题型表tb_itemType:保存题型信息,由题型代码(主键,1个字符,取值a~z)、题型名称(30个字符)和题型说明(200个字符)组成。

(2) 难度级别表tb_difficulty:保存题库的试题难度信息,由难度级别(主键,最低难度级别为1,随着难度的增加,难度级别依次加1)、难度级别名称(10个字符)。

(3) 章节表tb_chapter:保存课程的章节信息,由章节代码(主键)和章节名称(30个字符)组成。

(4) 知识点表tb_knowledge:保存各章知识点信息,由知识点代码(1个字符,取值a~z,多于26个知识点用希腊字母表示)、章节代码和知识点名称(30个字符)组成。知识点代码和章节代码联合作主键,章节代码参照章节表中的章节代码。

(5) 试题属性表tb_itemProperties:保存试题属性信息,由试题编号(自动编号,主键)、题型代码、章节代码、难度级别、知识点代码集(15个字符)、题分、抽取次数、抽取时间、停用标志(1-停用,0-未停用,默认值为0)组成。

题型代码参照题型表中的题型代码,章节代码参照章节表中的章节代码,难度级别参照难度级别表中的难度级别。知识点代码集的编码规则为章节代码+知识点代码,比如3fk12ejk表示该题涉及的知识点包括第3章的f、k知识点和第12章的e、j、k知识点。

(6) 试卷属性表tb_paperProperties:保存已组试卷的属性信息,由试卷序号(自动编号,主键)、试卷说明(200个字符)、题型顺序(20个字符,用题型代码表示)、题型集(50个字符)、章节集(100个字符)、难度集(50个字符)、已用标志(1-已用,0-未用,默认值为0)、使用对象(100个字符)、组卷时间组成。

题型顺序保存各题型在卷面中出现的顺序。题型集保存组卷目标中各题型分数设定值,编码规则为:题型代码+题型分数+$组卷误差百分比,比如a15b20d10e25f20g10$10表示拟组试卷中题型a、b、d、e、f、g的分数设定为15、20、10、25、20、10分,各题型分数的组卷误差不超过其分值的10%。章节集保存组卷目标中各章节分数设定值,编码规则为:c+章代码+s+章分数+$组卷误差百分比,比如c1s15c2s15c7s20c10s20c12s30$10表示拟组试卷中第1、2、7、10、12章的分数分别为15、15、20、20、30分,各章节分数的组卷误差不超过其分值的10%。难度集保存组卷目标中各难度分数设定值,编码规则为:d+难度级别+s+难度级别分数+$组卷误差百分比,比如d1s15d2s20d3s30d4s20d5s15$0表示拟组试卷中难度级别为1、2、3、4、5的试题分数分别为15、20、30、20、15分,各难度组卷误差为0。

(7) 试卷试题表tb_paperItems:保存已抽取的试题信息,由试卷序号、试题编号组成。试卷序号参照试卷属性表中的试卷序号,试题编号参照试题属性表中的试题编号。

(8) 题库文档表tb_documt:保存题库的试题内容文档和答案文档[1],由试题编号、试题内容(image类型,保存试题的内容文档)和试题答案(image类型,保存试题的答案文档)组成,试题编号参照试题属性表中的试题编号。

三 组卷控制模型

1 试卷难度控制

试卷难度控制可通过离散型随机变量的二项分布函数B(n,p)实现[2],即:

2 组卷目标设定与检查

拟定一份试卷首先要确定试卷的总体目标,包括试卷总分、试卷难度、章节分数、题型分数、试卷区分度、考试时间,然后从题库中抽出满足总体目标要求的试题。这些目标中,试卷区分度与试卷难度相关,难度太高或太低的试卷其区分度不高,只有合适的试卷难度才能获得较高的试卷区分度;考试时间与试卷总分和试卷难度相关,试卷总分高、难度大则需要的考试时间长。

因此,我们选取试卷分数、试卷难度、章节分数、题型分数作为组卷目标,并按试卷总分、章节分数、试卷难度、题型分数的顺序设定各目标值。同时为避免组卷目标设定的盲目性,我们还根据题库条件对所有的组卷目标值进行满足性检查[3]。

各组卷目标值的设定顺序和检查方法如下:

(1) 设定拟组试卷的总分S。

(2) 统计题库中各章节无重复知识点的试题总分数S_Chap(i)。

(3) 设定拟组试卷中各章节分数SS_Chap(i)及其组卷误差的允许值,要求SS_Chap(i)S_Chap(i)且∑SS_Chap(i)= S。

(4) 统计题库中在所考核的章节范围内各难度级别无重复知识点的试题总分数S_ND(j)。

(5) 设定试卷难度Q及其组卷误差允许值,利用难度控制模型和Q值计算出试卷中各难度级别的试题分数SS_ND(j)(或直接设定拟组试卷中各难度级别的试题分数),要求SS_ND(j)S_ND(j)且∑SS_ND(j)= S。

(6) 统计题库中在所考核的章节和难度级别范围内各题型无重复知识点的试题总分数S_TX(k)。

(7) 设定拟组试卷中各题型分数SS_TX(k)及其组卷误差允许值,要求SS_TX(k)S_TX(k)且∑SS_TX(k)= S。

3 组卷目标匹配顺序控制

理想情况下,题库中有分布均匀且题量足够多的试题以供选择,但实际往往并非如此,不同的组卷目标对应的试题分布范围和选择余地差别很大,所以组卷目标的匹配顺序直接影响组卷成功率。

在设定的组卷目标中,试卷难度可以体现在各章节试题中,而各章节分数只能体现在本章节试题中,故章节的选择余地小于试卷难度;此外,按分值从高到低的顺序进行题型匹配,能够为章节、难度和试卷总分的匹配留出尽可能大的选择余地。因此我们采取了如下匹配顺序:

(1) 按照平均分值从高到低的顺序选择待匹配的题型。

(2) 在当前匹配题型中按照各章节无重复知识点的试题数从少到多的顺序循环匹配各章节,如果当前匹配的章节只有当前匹配题型的试题,则在当前章节匹配中完成该章节全部的抽题任务,否则至多抽取该章节一道试题。

本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

(3) 在当前匹配的题型和章节中,按照各难度级别无重复知识点的试题数从少到多的顺序进行难度级别匹配。

4 组卷目标匹配误差控制

为实现组卷控制的灵活性,我们引入了组卷目标匹配误差控制。设第i个组卷目标的设定分数为SS(i),误差允许值为e_set(i),其未抽分数为NS(i),则该目标的匹配误差为:

如果e(i)e_set(i),则第i个组卷目标完成匹配任务。当所有组卷目标的匹配误差都处于误差允许范围内时,则匹配结束。

组卷开始时NS(i)=SS(i),组卷过程中每抽取一道分数为s的试题,则该题对应的所有组卷目标的未抽分数都减少s。

5 已抽试题回调

所有组卷目标匹配结束时,如果已抽试卷总分小于设定值,则通过调换部分已抽试题的方法,使已抽试卷总分等于设定值。用于调换的试题需满足如下条件:

(1) 能使已抽试卷总分向着设定值的方向变化。

(2) 不能使试卷出现重复知识点。

(3) 不能使组卷目标的组卷误差超出各自允许范围。

回调过程结束后,如果已抽试卷总分等于设定值,则组卷成功,否则组卷失败。

四 组卷算法设计

1 临时表变量

为了提高数据的处理速度,我们把组卷过程中需要的中间数据全部保存在SQL Server的表变量中[4]。所需的表变量如下:

(1) 试题属性表@Items:保存参与组卷的试题属性信息,按抽取次数和抽取时间升序排列,字段包括试题编号、题型代码、章节代码、难度级别、知识点代码集、题分、可抽标志(bit,1-可抽,0-不可抽,默认值为1)。

(2) 考试题型表@examTX:保存题型组卷目标的抽题信息,按各题型平均分值降序排列,字段包括ID(自动编号)、题型代码、设定分数、未抽分数、可抽题数。

(3) 考试章节表@examChap:保存章节组卷目标的抽题信息,按各章节可抽题数升序排列,字段包括ID(自动编号)、章节代码、设定分数、未抽分数、可抽题数。

(4) 考试难度表@examND:保存难度组卷目标的抽题信息,按各难度可抽题数升序排列,字段包括ID(自动编号)、难度级别、设定分数、未抽分数、可抽题数。

(5) 题型章节表@TXChap:保存各题型各章节中无重复知识点的可抽试题数量,字段包括题型代码、章节代码、可抽题数。

(6) 章节难度表@ChapND:保存各章节各难度级别中无重复知识点的可抽试题数量,字段包括章代码、难度级别、可抽题数。

(7) 题型难度表@TXND:保存各题型各难度级别中无重复知识点的可抽试题数量,字段包括题型代码、难度级别、可抽题数。

(8) 试卷表@paperItems:保存被抽试题的部分属性信息,字段包括:ID(自动编号)、试卷序号、试题编号、题型代码、章节代码、难度级别、题分、知识点代码集。

2 组卷算法

本组卷算法基于存储过程和表变量实现。存储过程的输入参数包括拟组试卷的总分、题型集、章节集、难度集、试卷题型顺序、使用对象、试卷说明,输出参数为组卷结果标志。核心算法如下:

(1) 取@examTX中第一个待匹配的题型代码@tx,@examChap中第一个待匹配的章节代码@chap,@examND中第一个待匹配的难度级别@ND。

(2)若@chap章的组卷误差大于其允许值 and @TXChap中题型代码为@tx、章节代码为@chap的可抽题数>0,则转(3),否则转(7)。

(3)若@ND难度的组卷误差大于其允许值 and @ChapND中章节代码为@chap、难度级别为@ND的可抽题数>0 and @TXND中题型代码为@tx、难度级别为@ND的可抽题数>0,则转(4),否则转(6)。

(4) 若@Items中不存在题型代码为@tx、章节代码为@chap、难度级别为@ND、题分不大于当前组卷目标对应的最小未抽分数、可抽标志为1的试题,则转(6),否则将该题的试题编号、题分、知识点代码集插入@paperItems表中;将该题分数增加到已抽试题总分中;将@Items中所有与该题知识点相同的试题的可抽标志置为0;分别将@examChap中章节代码为@chap,@examND中难度级别为@ND,@examTX中题型代码为@tx对应的未抽分数减去被抽取的试题分数、可抽题数减1;分别将@TXChap中题型代码为@tx、章节代码为@chap,@TXND中题型代码为@tx、难度级别为@ND,@ChapND中章节代码为@chap、难度级别为@ND对应的可抽题数减1。

(5) 若 @chap章仅有@tx题型的试题 and @chap章的抽题误差大于允许值,则转(6),否则转(7)。

(6) 循环取@examND中下一个待匹配的难度级别@ND,然后转(3)。

(7) 若@tx题型的组卷误差大于允许值,则循环取@examChap中下一个待匹配的章节代码@chap,然后转(2),否则转(8)。

(8) 若已抽试题总分

(9) 若已抽试题总分

(10) 若已抽试题总分=试卷设定总分,则组卷成功,否则组卷失败。

试题回调即从未抽试题中查找符合替换条件的试题并替换对应的已抽试题。算法如下:

(1) 试卷设定总分-已抽试题总分@k,@paperItems中第一道试题的记录编号@i。

(2) 若@i所指试题对应的各组卷目标的未抽分数减少@k后其组卷误差不超出允许范围 and @Items中存在与@i所指试题同题型、同章节、同难度、分数多@k且与其它已抽试题无重复知识点的试题,则取该试题的试题编号@itembh,然后转(3),否则转(4)。

(3) 将@i所指试题的试题编号改为@itembh、题分增加@k;将@tx题型、@chap章、@ND难度对应的未抽分数减少@k;已抽试题总分增加@k;若试卷设定总分-已抽试题总分

(4) 取@paperItems中下一道试题的记录编号@i,若@i@paperItems中最后一道试题的记录编号 and 已抽试题总分!=试卷设定总分,则转(2),否则转(5)。

(5) 若试卷设定总分-已抽试题总分@k,则@k-1@k。

(6) 若@k>0 and 已抽试题总分!=试卷设定总分,则@paperItems中第一道试题的记录编号@i,然后转(2),否则回调结束。

五 算法测试

我们通过题量少且试题分布不均匀的模拟题库对组卷算法进行测试。题库中有100道试题(不同知识点的试题为50道),包括4种题型、5章、5级难度,第4章试题仅分布在c题型中,第5级难度试题仅分布在第5章中。在对该题库进行的50次组卷实验中,没有经过试题回调而直接组卷成功的有42次,经过试题回调后组卷成功的有6次,组卷失败2次,生成的试卷中除第4章试题外,其它各章、各难度的试题均能最大程度地分布在不同题型中。测试结果表明,本组卷算法对于题量少且试题分布不均匀的题库仍然能够取得很高的组卷成功率和组卷质量。

六 结论

本文给出的题库数据结构通用性强、冗余度小,能够满足不同课程试卷的需要。同时,通过引入组卷目标的满足性检查、匹配顺序控制、匹配误差控制和已抽试题回调等控制策略,使得组卷算法能够不受题库中试题分布的限制,降低了算法对题库题量的要求,提高了算法的适用性。

参考文献

[1] 张文,陈世强.题库系统试题存取方法的研究[J].计算机与现代化,2006,(3):97-99.

[2] 应继儒,胡立新,龙毅等.试题库随机选题数学模型的构建及实现[J].计算机应用,2000,20(1):46-47.

[3] 朱守业.智能组卷中组卷目标的满足性检查与处理[J].微计算机信息,2007,23(21):268-269.

[4] SQL Server 2000联机丛书[DB/DK].

本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

上一篇:计算机应用软件教学的“双层情境”观 下一篇:基于e-Portfolio的过程性评价系统设计与实现