Item Bank System and the Test Paper Generation Algorithm
Song Yan Yang Guoxing
Guanzhuang Campus
University of Science amp; Technology Beijing Beijing, China 100024
Abstract—Item bank system has been developed with Java and MySQL. The system contains course management module, examination questions management module, test paper management module and examination management module. The test paper generation algorithm used in this system was also discussed.
Keywords-item bank system; test paper generation algorithm; network education; java
I. INTRODUCTION
At the present time, the procedures of network education examination are make out test paper, print and bring it to separate study centers, examine, collect and return the test paper, and grade.
Some disadvantages are obvious of this way of examination, such as the test papers are usually made by only one or two teachers, so that the examination question distribution and difficulty are prone to influenced by the teachers. Another problem is the work is inefficient and need tack a long time to grade.
In order to resolve this problem, we have developed an item bank system. The system contains course management, examination questions management, test paper management and examination management.
Test paper generation is to extraction a set of examination questions from the item bank according to the test parameters, such as the types of question, difficulty, knowledge points. An extraction algorithm was used in the test paper generation.
II. SYSTEM DESIGN
The system ware designed for many courses. The difference (such as the test questionrsquo;s types) of different courses must be considered in the design period.
A. Goals
The system should be designed to achieve the following goals.
- The system should have some flexibility and expansibility. As different course may have different test questionrsquo;s types, we must care to determine the storage organization and processing method of different test questionrsquo;s types.
(2)The system provides different function for different test questionrsquo;s types. Grade function is providing for the questions which have fixed answer, and not provide for the questions which have not fixed answer.
(3) Generating test paper is elastic. The test paper can be generated automatically or manually. It can be output to MS Word or provide to inline examination.
(4) Inline examination and automatically Grade. The system provides inline examination and automatically grade for suitable courses.
B. System structure design
The system including the functions of course management, test questions management, test paper management, tests management and data maintains.
Course management is mainly responsible for the course entry, edit, delete, query, including course corresponding to the question difficulty and question types.
Another important function of course management is to establish course sections and knowledge structure.
Examination questions management is responsible for the test question input, edit, delete, query and so on.
Test paper management is responsible for test paper generation. Based on the user input conditions (including the proportion of various question types and difficulty), the system automatic generate the test paper. For the generated test papers, user can manually change the examination questions. After generation, the test paper can be exported to the MS Word file, or provided directly to the test module.
Test management module achieves the test, and gives exam score according to the standard answer.
Data maintenance realizes the database data backup and recovery.
C. Database design
The data of the system includes curriculum, knowledge point, difficulty, question types, examination questions, examination paper and other entities. Based on the database system analysis, we have found the relations between entities, and abstracted the conceptual model of the system.
Then, according to the abstract model, get the actual data tables in the system database.
In order to facilitate the processing, as well as increasing the flexibility of the system, in the actual database, the questions of each types stored in a separate question table.
The tables in the system are as follows.
Question type code table: storage question type name and question type code.
Difficulty code table: storage difficulty name and difficulty code.
Curriculum table: storage course name and course code.
Question type table: storage course code and question type code.
Difficulty table: storage course code and difficulty code.
Knowledge points table: storage knowledge point name, knowledge point code and course code.
Test question table: each type corresponds to a table, storage question code, course code, question number, difficulty code, knowledge point code, questions, answers and warehousing date.
Test paper table: storage paper code, paper name, courses code, teachers and the date of the paper generated.
Test paper composition table: store paper code, course code, type code and question code.
The variety of codes used in the system, such as course code, knowledge point code and question code are automatic number, thus the users use the system without considering the coding problem. The OLE object data type, which can be convenient to processing large sections of text and image, was used for the content of question.
III. THE IDEA OF THE TEST PAPER GENERATION
Test paper generation is to extraction a set of examination questions from the item bank according to the test parameters, such as the types of question, difficulty, knowledge points. The most important condition is the question types which the test paper contains and the question amount of each question types. The other two condit
剩余内容已隐藏,支付完成后下载完整资料
题库系统和自动组卷算法
摘要:题库系统由Java和MySQL数据库开发,该系统包含课程管理模块、考试试题管理模块、试卷管理模块和考试管理模块,本文还讨论了此系统用到的自动组卷算法。
关键字:题库;组卷算法;网络教育;Java
导言
目前,网络教育考试的流程是先编写考试试卷,之后打印并分发到不同的学习中心,考试,之后收集回试卷打分。
这种考试方式的缺点很明显,如试卷通常只由一个或两个教师出题,考试的问题分布和难度很容易受出题老师影响;另一个问题是工作效率低下,到最后打分需要很长的时间。
为了解决这一问题,我们开发了一套题库系统。该系统包含课程管理、试题管理、试卷管理和考试管理四个部分。
试卷的产生是根据题目类型、难度系数、知识点等试卷参数从一系列题目中抽取得来的。一种组卷算法应用到了组卷过程中。
系统设计
题库系统设计用于多门课程,在设计中应考虑不同课程的区别(如题目类型)。
设计目标
该系统应旨在实现以下目标:
- 系统应具有灵活性和可扩展性。由于不同课程可能有不同的题目类型,所以我们必须注意对不同题型的存储组织和加工方式。
- 系统能给不同的题型提供不同的功能。部分功能只提供给具有固定答案的题目而不提供给没有固定答案的题目。
- 组卷方式灵活。可以自动组卷也可以手动组卷,生成的试卷可以输出到Word或者支持在线考试。
- 在线考试和自动阅卷。该系统支持在线考试和部分课程的自动阅卷。
B.系统结构设计
系统包括课程管理、试题管理、试卷管理、考试管理和数据维护功能。
课程管理功能主要负责课程的录入、编辑、删除、查询,包括该课程对应题目的难度和题目类型。
课程管理另一个重要功能是建立课程组成和知识架构。
试题管理功能负责试题录入、编辑、删除、查询等。
试卷管理功能负责组卷。在用户输入的条件(包括不同的题型和难度系数比例)下,系统自动生成试卷。对于生成的试卷,用户可以手动更改考试题目。完成组卷后,试卷可以导出到Word文件或者提供给测试模块试卷。
考试管理模块实现了考试,并根据标准答案给出考试分数。
数据维护功能实现数据库数据的备份和恢复。
C.数据库设计
系统的数据包括课程、知识点、难度、题型、试题、试卷和其他实体。基于数据库系统的分析,我们已经找到了实体之间的关系并抽象出系统的概念模型。
然后,根据抽象模型在数据库中得到实际的数据表格系统。
为了方便处理,以及提高系统的灵活性,在实际的数据库中,每中类型的题目存储在一个单独的题目表中。
系统中的表如下:
题目类型编号表:存储题目类型名称和题目类型编号。
难度编号表:存储难度等级和难度等级编号。
课程表:存储课程名称和课程编号。
题目类型表:存储课程编号和题目类型编号。
难度表:存储课程编号和难度编号。
知识点表:存储知识点名称、知识点编号和课程编号。
试题表:每种题型对应一个表,存储题目编号、课程编号、题目编号、难度编号、知识点编号、题目内容、答案和存储日期。
试卷表:存储试卷码、试卷名称、课程编号、教师和试卷生成日期。
试卷成分表:存储试卷编号、课程编号、题型编号、题目编号。
系统中用到的各种编码,如课程编号、知识点编号和题目编号是自动编号的,因此用户在使用此系统时不必考虑编码问题。OLE对象数据类型用于处理题目中大段的文本和图像问题。
组卷思路
试卷的产生是根据题目类型、难度系数、知识点等试卷参数从一系列题目中抽取得来的,其中最重要的条件是试卷包含的题目类型和每种类型中的题目数另外两个条件是各种难度的题目和各种知识点的题目所占比例,第一个条件必须满足,其他两个条件可以有一定出入,也就是说最终的试卷可以不必严格满足后两个条件。
组卷算法已经进行了大量研究,此系统使用的算法属于改进的随机抽取法,并在此基础上做了一点改进。为了描述算法的完整性,下面给出了完整的算法。
首先获取试卷模板组卷的条件,包括题型的设置(各题型的题数); 难度设置(每种难度的题目的百分比); 知识点设置(每个知识点的试题的百分比)。
然后计算各种题型、各种难度等级、各种知识点的题目的数量。 Usingtixing [I]表示的第i种题型在试卷中的试题数,nandu[J]表示第j个难度等级的题目所占百分比,zhishidian [K]表示第k种知识点的试题在试卷中所占比例。 我们假设在试卷模板中知识点比例和难度比例是整个试卷的约束,也是每一个知识点和难度等级的约束。 例如在试卷模板中设置等难度比为50%,表明该试卷50%的问题应该是一个中等难度,并在试卷每种类型题目的50%的问题应该也是中等难度。 知识点比跟难度等级比具有相同的解释。
根据以上假设,计算出的第i个类型,第j个难度等级和第k个知识点的试卷题号。
shijuanTishu [I] [J] [K] =(int)的tixing[I] *nandu[J] * zhishidian [K]。
如果nandu[j]的和zhishidian [k]的结果都是真实的,那么所计算的数量一般将小于的试卷需求的数量。 计算出的数量可能大于题库中的题目数(虽然问题的实际提取次数不比在题库中规定条件的题目的数量多)。 因此这种计算后,所获得的每一种类型的问题的数量可能少于试卷所需数量。 迭代算法将被用来补充不足。
最后,使用tikuTishu [I] [J] [k]表示第i类,第j个难度等级和第k种知识点在题库中的的编号。 我们的任务是 在题库中随机从tikuTishu [I] [J] [K]抽取出shijuanTishu [I] [J] [K]。
组卷算法
下面介绍组卷算法中矩阵的使用。
tixing[I]:试卷中第i种类型的题目数量。
nandu[j]的:试卷中第j个难度等级的题目数量的百分比。
zhishidian [K]:在测试纸的第k个知识点的题目数量的百分比。
tnShijuanTishu [I] [J]:试卷中第i类题型且是第j个难度等级的题目的数量。
tzShijuanTishu [I] [K]:试卷中第i类题型且属于第k个知识点的题目的数量。
tnzShijuanTishu [I] [J] [K]:试卷中第i类,第j个难度和第k个知识点的题目数量。
tnTikuTishu [I] [J]:第i类题型,第j个难度等级的题目数量。
tzTikuTishu [I] [K]:第i类题型,第k个知识点的题目数量。
tnzTikuTishu [I] [J] [K]:第i类题型,第j个难度等级,第k个知识点的题数。
该算法的流程图如图1。
图1 该算法的流程图
A.阵列初始化
1)初始化题库相关矩阵
根据数据库初始化tnTikuTishu [I] [J]、tzTikuTishu [i][k]和tnzTikuTishu [I][j][k],可直接使用SQL查询语句来获得。
2)初始化试卷相关矩阵
二维矩阵tnShijuanTishu[i] [j]和tzShijuanTishu [i][k]的计算方法是类似的。以ytnShijuanTishu [I] [J]为例来介绍两个矩阵初始化的方法。
tnShijuanTishu [I] [j]为第i类题型和第j个难度等级的题目在试卷中的数量,应为tixing[i] *nandu[J]。 由于tnShijuanTishu [I] [J]不能超过在题库中tnTikuTishu [I] [j]的题量,所以我们可以用下面的公式。
tnShijuanTishu [I] [J] =(int)min(tixing[I] *nandu[J],tnTikuTishu [I] [J]);
从题库中提取后,题库中剩余的题量可以由下式计算。
tnTikuTishu [I] [J] = tnTikuTishu [I] [J] - tnShijuanTishu [I] [J]。
如果计算出所有难度的第i类题型的题量达不到试卷需要的规定数量,即 tnShijuanTishu [i] [j]的lt;tixing[I],它将继续添加第i类题型的题目。
首先,确定在题库中提取的题目是否有第i类题型,如果没有可用于提取的第i个类型的题目,那么组卷算法失败。
否则选择困难随机(如困难j)中,添加第一i类题型和第j个难度等级的题(第i类题型和第j个难度系数的题目在题库tnTikuTishu [i] [j]的数量必须大于零),然后让tnTikuTishu[i] [j]减1。重复此过程,直到第i类型的题目数量等于试卷所需的数目。
3)初始化数组tnzShijuanTishu [i] [j][K] ,tnzShijuanTishu [I] [J] [K]在试卷中第i类,第j个难度等级和第k个知识点的题数。 根据我们之前的假设,它可以通过下列公式来计算。
tnzShijuanTishu [I] [J] [K] = tixing[I] *nandu[J]* zhishidian [k];
当然,tnzShijuanTishu [I] [J] [K]不应超过这种类型题目在题库中的题目的数量。 因此,它可以通过下列公式来计算。
tnzShijuanTishu [I] [J] [K]= min(tixing[I] *nandu[J] * zhishidian [K],tnzTikuTishu [I] [J] [K]);
对这些题目抽取后,在题库中的剩余题量由下式进行更新。
tnzTikuTishu [I] [J] [K] = tnzTikuTishu [I] [J] [K] -tnzShijuanTishu [I] [J] [K];
数组tnShijuanTishu [I] [J]和tzShijuanTishu [I] [K]也将被更新。
元素tnShijuanTishu[i] [j]的数量含义为的也应该是提取tnzTikuTishu [I] [j][k]中的题目后第i类题型和第j个难度等级题目的数量。 元素tzShijuanTishu [I] [K]的意思是也应是提取tnzTikuTishu [I] [j][k]中的题目后第i类题型和第k个知识点的数目。 计算公式如下。
tnShijuanTishu [I] [J] = tnShijuanTishu [I] [J]-tnzShijuanTishu [I] [J] [K];
tzShijuanTishu [I] [k] = tzShijuanTishu [I] [k]-tnzShijuanTishu [I] [J] [K];
数组tnzTikuTishu [I] [J][K]中的所有元素初始化之后,如果数组tnShijuanTishu [I] [j]和tzShijuanTishu [I] [K]中的所有元素的值是零,即试卷的需求的题量已经满足,就不需要继续抽取题目。 否则,进入下一步; 继续提取剩余的题目。
B.继续提取问题
数组初始化后,如果抽取的题量不够,需要继续在剩余的题库中抽取。抽题策略是:先提取的大部分缺的题目种类,然后每次增加一个问题。
例如,第i类题型的题目需要抽取,使用数组nzShijuanTishu [j][K]表示的所缺第i型、第j个难度等级和第i类、第k个知识点的题目总和,计算公式如下。
nzShijuanTishu [J] [K] = tnShijuanTishu [I] [J] tzShijuanTishu [I][K];
nzShijuanTishu [J]的数值越大,则第i个类型,第j个难度和第k个知识点问题的比例越大,应选择[K]。 首先,我们改造二维阵列nzShijuanTishu [j]的[k]的成一维数组nzTishu [](所述阵列的每个元件具有三个值中,下标j,下标k,它的值)。 然后没有排序数组nzTishu []。 如果nzTishu [0] .value的等于零,表示第i类已提取的所有问题,否则请从排序后的数组nzTishu []的第一个元素。
如果满足以下三个条件均满足,
(1)tnzTikuTishu [I] [J] [K]gt; 0,则表示在题库中还有需要抽取的题目,
(2)tnShijuanTishu [I] [J]gt; 0,表示第i类题型和第j个难度等级的题目还需要抽取,
(3)tzShijuanTishu [I] [K]gt; 0,表示第i类题型和第k个知识点的题目还需要抽取,
然后增加一个第i类题型,第j个难度等级和第k个知识点的题目(J = nzTishu [0] .Jrsquo; K = nzTishu [0] .Krsquo;)。否则选择下一个元素nzTishu [1]来处理。 如果在对所有元素处理过后没有满足这三个条件的题目,表示在题库中的题不能满足试卷的要求,组卷失败。
增加一个题目后,元素tnzShijuanTishu [I] [J] [K]、tnzTikuTishu [I] [J] [K]、tnShijuanTishu [I] [J]、tzShijuanTi
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[152215],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。