论文部分内容阅读
摘 要:在线测试是精品课程教学活动中的一个重要环节。为了建设好《多媒体CAI课件设计制作》精品课程,我们根据一种高效实用的自动组卷算法设计了一个基于Web 的网络在线测试系统。本文介绍了该系统实现的模块功能、体系结构及其关键技术。
关键词:精品课程 Web技术 在线测试 自动组卷算法
中图分类号:TP311.52 文献标识码:A 文章编号:1673-8454(2008)05-0059-03
精品课程是指在学校某专业中具有特色的专业核心课程。在线测试是精品课程教学活动中的重要环节。所以设计一种方便实用的在线测试系统是精品课程建设的关键。我校《多媒体CAI课件设计制作》2006年申建为省级精品课程,2007年申报国家级精品课程,我们将本系统作为该精品课程的重要组成部分。本文主要介绍该系统的功能、结构、实现的主要方法及新设计的一种高效自动组卷算法。
一、系统功能模块结构
根据《多媒体CAI课件设计制作》精品课程的特点,我们将在线测试系统分为两大模块,即教师模块与学生模块。教师模块包括试题管理、试卷管理、试卷批阅三个部分;学生模块包括在线练习、在线考试、成绩查询三个部分。用户登录功能由精品课程的主界面提供。在线测试系统与精品课程的其他模块共用用户数据。用教师账号进入网站教师主界面;用学生账号进入网站学生主界面。
系统的开发环境为:WindowsXP/IIS5.0/.NET Frame-Work1.1/Microsoft Access2000。系统的功能模块如图1所示。下面分别介绍各功能模块:
1.数据库设计
数据库是整个系统的基础和核心,是其它各部分的数据操作平台。一个设计合理、结构清晰的数据库能减少数据冗余、提高查询速度、方便更新修改、减轻程序的负担、提高程序的执行效率和稳定性。根据《多媒体CAI课件设计制作》精品课程的要求,本系统主要由以下几个表组成:用户表、试题表、试卷卡表、试卷表、试卷试题表等。
用户表用于保存用户的基本信息,其主要字段有:用户名、密码、权限,还可以根据具体情况添加字段(如学号、出生年月、真实姓名、手机号等);试题表用于保存教师录入的试题,其主要字段有:试题号、章节序号、试题类型、试题、答案、选项A~D、选项E、难度等级、图片路径、考试或练习选择;试卷卡表用于保存试卷中试题的要求,试卷按试卷卡的设置生成,具体字段为:编号、试卷编号、试题类型、难度级别、可信度级别;试卷表用于存放人工和随机生成的试卷,主要字段有:试卷编号、试卷名称、出题者、试卷出题方式、试卷范围、试卷测试时间、试卷是否打开、试卷总分值、试卷卡号;试卷试题表用于记录试卷的试题,如随机生成一份试卷,将组成这份试卷的试题编号保存到该表,具体字段有试题编号(长整型、外键,使用试卷时用于检索试题)。此表主要用于试卷检索试题。
2.数据库链接
系统采用ADO.NET技术链接数据库。ADO.NET添加了许多新的对象和程序化接口,如DataSet、DataAdapter、DataView、DataReader、DataSetCommand等,使得对数据库的操作更简单。本系统主要运用了DataSet、DataAdapter、DataReader三个控件。
(1)DataSet对象。它是ADO.NET的核心,专门用来处理从数据存储中读出的数据,并以离线方式存在于本地内存中。在DataSet中可包含一定数量的DataTable,且每个DataTable对应一个数据库的Table或View。一般来说,一个对应DataTable对象的数据表就是一组DataRow与DataCoumn的集合。DataTable会负责维护每一数据行,保留它的初始状态和当前的状态,以解决数据库的并发访问问题。ADO.NET的离线连接模式减少了对数据的压力。在系统中查询试题、试卷等信息基本上是由DataSet来保存记录的,然后绑定在DataGrid控件显示出来。
(2)DataReader对象。当以浏览的方式查看大量数据时,会占用大量内存,导致性能下降。因此,DotNET框架提供了DataReader对象,从数据库返回一个只读的、仅能向下滚动的流(Stream),而且当前内存中每次仅存在一条记录。本系统中生成练习题和试卷等页面均用DataReader来读取和操作数据。
(3)DataAdapter对象。ADD.NET通过DataAdapter对象建立、初始化数据表,从而与DataSet对象结合起来在内存中存放数据。DataAdapter对象能隐藏与Connection、Command对象沟通的细节。DataAdapter对象允许将DataSet对象中的数据保存到数据来源(Data Source),也可以从数据来源中提取数据。同理,也可对底层数据保存体进行数据的添加、删除或修改操作。本系统用其来完成数据的维护操作。
3.自动组卷算法
本系统采用了一个简单实现的自动组卷算法如图3所示。该算法简单、随机性强,使用效果较理想。从算法的实际运行来看,即便系统自身的设置、选题的算法等均正确无误,也可能使试卷生成失败(n-m<0时)。究其原因,是因为题库中,有能符合条件且可供选择的试题不足,从而造成系统无题可选。假如按要求须在指定章节中随机选取满足数量、分值、难度、可信度的试题,如挑选两道难度为A级、可信度为C级的试题。但由于题量不足,无法同时选中,就有可能组成不了一份符合要求的试卷而使组卷失败。
解决问题的根本办法是加大题库中的题量并提高题库的质和量,对题库设置要合理。但不是所有类型的试题都有大量有效的题目。因此设计试题的指标或属性不应分得太细或设置太多。统计表明,题库的试题不得少于每套试卷试题量的10倍(本系统设为20倍),否则很难组成不同形式的等值试卷。另外,还要注意题库的各组成部分的难度值也应保证适当的比例,一般地,一份试卷的试题其难度分布以15(难)∶55(中)∶30(易)较为科学,那么相应的题库各组成部分的难度分布也应以此为准。如果比例失调,也会影响组卷的顺利进行。
4.系统关键代码实现
在编写动态网页时,常常要将数据以不同的风格呈现出来,利用DataGrid Web控制很容易做到,且可分页显示。根据不同的数据在网页上显示不同内容的情况下(如试题类型在数据库是用数字表示的,但在网页上则用文字表示),可以格式化输出。用DataGrid显示数据时比表格少写许多代码。数据绑定是ASP.NET的一大特点。将内存中一定格式的数据绑定在ASP.NET控件中,然后显示出来,而不用手写代码。将试题信息装入DataSet对象后用DataGrid控件显示的代码如下:
String strConnection="Provider=Microsoft.Jet.OLEDB.4.0:";
String DataBase=Server.MapPath("md/menber.mdb");
StrConnection ="Data Source=" DataBase;
ObjConn=new OleDbConnection(strConnection);
//创建数据库链接对象
DSSQL=“select tq_id,chapter_name,tq_category,tq_title,tq_ifopen,
tq_level,tq_credit from tb_";
//SQL查询语句
OleDbDataAdapter objCmd;
//声明OleDbDataAdapter 对象用于执行SQL命令
objCmd=new OleDbDataAdapter( );
//创建新的OleDbDataAdapter对象
objCmd.TableMappings.Add("Talbe","tq");
objCmd.SekectCommand=new OleDbCommand(DSSQL,objConn);
objDS=new DataSet("tq");
//创建新的DataSet对象,保存查询结果
ObjCmd.Fill(objDS);
//把查询结果保存在objDS中
DG_Test.DataSource=new DataView(objDS.Tables["tq"]);
// DG_Test为显示查询结果的DataGrid 对象
DG_Test .DataBind( );
┋
用章节和题型来搜索试题,在题量多的情况下或忘记了试题所在的章节题型,要找到想要的试题是比较困难的。因此本系统在界面的右上角提供了模糊查询功能。通过输入关键字能快速找出符合要求的试题,这样提高了工作效率。本系统模糊查询是用SQL语句中Like方法实现的,它有一些局限性,无法像Google等搜索引擎那样可以分词查询。
三、结束语
在线测试系统解决了考生地理位置分散、出题和判卷繁琐、人工批卷有时出错且耗费时间的问题,这种基于Web的测试系统问题的提出、设计和开发都是基于网络的教学管理和应用的实际而进行的,在线测试不仅是精品课程的一个重要部分,而且在许多要考核的领域应用也越来越重要。
参考文献:
[1]何克抗.现代教育技术和优质网络辅助课程的设计开发[DB/OL].http://www.etc.edu.cn/cademist/hkk/xiandaijiaoji.htm,2006-02-20.
[2]刘繁华. 网络辅助课程的设计与开发[J].中国电化教育,2002(11):67-69.
[3]胡斌.在线考试系统的设计和实现[J].教育信息化,2006(2):43-45.
[4]汪锦龙.远程教育中的网上考试[J].计算机周刊,2000(48).
[5]陈志国,张瑾等.网上考试系统的设计与实现[J].河南大学学报,2003(3).
[6]廖信元.ASP.NET交互式Web数据库程序设计[M].北京:铁道出版社,2004.
[7]马娅婕等.多媒体网络教学系统在线考试题库的设计[J].计算机应用研究,2005,22(1):182-186.
关键词:精品课程 Web技术 在线测试 自动组卷算法
中图分类号:TP311.52 文献标识码:A 文章编号:1673-8454(2008)05-0059-03
精品课程是指在学校某专业中具有特色的专业核心课程。在线测试是精品课程教学活动中的重要环节。所以设计一种方便实用的在线测试系统是精品课程建设的关键。我校《多媒体CAI课件设计制作》2006年申建为省级精品课程,2007年申报国家级精品课程,我们将本系统作为该精品课程的重要组成部分。本文主要介绍该系统的功能、结构、实现的主要方法及新设计的一种高效自动组卷算法。
一、系统功能模块结构
根据《多媒体CAI课件设计制作》精品课程的特点,我们将在线测试系统分为两大模块,即教师模块与学生模块。教师模块包括试题管理、试卷管理、试卷批阅三个部分;学生模块包括在线练习、在线考试、成绩查询三个部分。用户登录功能由精品课程的主界面提供。在线测试系统与精品课程的其他模块共用用户数据。用教师账号进入网站教师主界面;用学生账号进入网站学生主界面。
系统的开发环境为:WindowsXP/IIS5.0/.NET Frame-Work1.1/Microsoft Access2000。系统的功能模块如图1所示。下面分别介绍各功能模块:
1.数据库设计
数据库是整个系统的基础和核心,是其它各部分的数据操作平台。一个设计合理、结构清晰的数据库能减少数据冗余、提高查询速度、方便更新修改、减轻程序的负担、提高程序的执行效率和稳定性。根据《多媒体CAI课件设计制作》精品课程的要求,本系统主要由以下几个表组成:用户表、试题表、试卷卡表、试卷表、试卷试题表等。
用户表用于保存用户的基本信息,其主要字段有:用户名、密码、权限,还可以根据具体情况添加字段(如学号、出生年月、真实姓名、手机号等);试题表用于保存教师录入的试题,其主要字段有:试题号、章节序号、试题类型、试题、答案、选项A~D、选项E、难度等级、图片路径、考试或练习选择;试卷卡表用于保存试卷中试题的要求,试卷按试卷卡的设置生成,具体字段为:编号、试卷编号、试题类型、难度级别、可信度级别;试卷表用于存放人工和随机生成的试卷,主要字段有:试卷编号、试卷名称、出题者、试卷出题方式、试卷范围、试卷测试时间、试卷是否打开、试卷总分值、试卷卡号;试卷试题表用于记录试卷的试题,如随机生成一份试卷,将组成这份试卷的试题编号保存到该表,具体字段有试题编号(长整型、外键,使用试卷时用于检索试题)。此表主要用于试卷检索试题。
2.数据库链接
系统采用ADO.NET技术链接数据库。ADO.NET添加了许多新的对象和程序化接口,如DataSet、DataAdapter、DataView、DataReader、DataSetCommand等,使得对数据库的操作更简单。本系统主要运用了DataSet、DataAdapter、DataReader三个控件。
(1)DataSet对象。它是ADO.NET的核心,专门用来处理从数据存储中读出的数据,并以离线方式存在于本地内存中。在DataSet中可包含一定数量的DataTable,且每个DataTable对应一个数据库的Table或View。一般来说,一个对应DataTable对象的数据表就是一组DataRow与DataCoumn的集合。DataTable会负责维护每一数据行,保留它的初始状态和当前的状态,以解决数据库的并发访问问题。ADO.NET的离线连接模式减少了对数据的压力。在系统中查询试题、试卷等信息基本上是由DataSet来保存记录的,然后绑定在DataGrid控件显示出来。
(2)DataReader对象。当以浏览的方式查看大量数据时,会占用大量内存,导致性能下降。因此,DotNET框架提供了DataReader对象,从数据库返回一个只读的、仅能向下滚动的流(Stream),而且当前内存中每次仅存在一条记录。本系统中生成练习题和试卷等页面均用DataReader来读取和操作数据。
(3)DataAdapter对象。ADD.NET通过DataAdapter对象建立、初始化数据表,从而与DataSet对象结合起来在内存中存放数据。DataAdapter对象能隐藏与Connection、Command对象沟通的细节。DataAdapter对象允许将DataSet对象中的数据保存到数据来源(Data Source),也可以从数据来源中提取数据。同理,也可对底层数据保存体进行数据的添加、删除或修改操作。本系统用其来完成数据的维护操作。
3.自动组卷算法
本系统采用了一个简单实现的自动组卷算法如图3所示。该算法简单、随机性强,使用效果较理想。从算法的实际运行来看,即便系统自身的设置、选题的算法等均正确无误,也可能使试卷生成失败(n-m<0时)。究其原因,是因为题库中,有能符合条件且可供选择的试题不足,从而造成系统无题可选。假如按要求须在指定章节中随机选取满足数量、分值、难度、可信度的试题,如挑选两道难度为A级、可信度为C级的试题。但由于题量不足,无法同时选中,就有可能组成不了一份符合要求的试卷而使组卷失败。
解决问题的根本办法是加大题库中的题量并提高题库的质和量,对题库设置要合理。但不是所有类型的试题都有大量有效的题目。因此设计试题的指标或属性不应分得太细或设置太多。统计表明,题库的试题不得少于每套试卷试题量的10倍(本系统设为20倍),否则很难组成不同形式的等值试卷。另外,还要注意题库的各组成部分的难度值也应保证适当的比例,一般地,一份试卷的试题其难度分布以15(难)∶55(中)∶30(易)较为科学,那么相应的题库各组成部分的难度分布也应以此为准。如果比例失调,也会影响组卷的顺利进行。
4.系统关键代码实现
在编写动态网页时,常常要将数据以不同的风格呈现出来,利用DataGrid Web控制很容易做到,且可分页显示。根据不同的数据在网页上显示不同内容的情况下(如试题类型在数据库是用数字表示的,但在网页上则用文字表示),可以格式化输出。用DataGrid显示数据时比表格少写许多代码。数据绑定是ASP.NET的一大特点。将内存中一定格式的数据绑定在ASP.NET控件中,然后显示出来,而不用手写代码。将试题信息装入DataSet对象后用DataGrid控件显示的代码如下:
String strConnection="Provider=Microsoft.Jet.OLEDB.4.0:";
String DataBase=Server.MapPath("md/menber.mdb");
StrConnection ="Data Source=" DataBase;
ObjConn=new OleDbConnection(strConnection);
//创建数据库链接对象
DSSQL=“select tq_id,chapter_name,tq_category,tq_title,tq_ifopen,
tq_level,tq_credit from tb_";
//SQL查询语句
OleDbDataAdapter objCmd;
//声明OleDbDataAdapter 对象用于执行SQL命令
objCmd=new OleDbDataAdapter( );
//创建新的OleDbDataAdapter对象
objCmd.TableMappings.Add("Talbe","tq");
objCmd.SekectCommand=new OleDbCommand(DSSQL,objConn);
objDS=new DataSet("tq");
//创建新的DataSet对象,保存查询结果
ObjCmd.Fill(objDS);
//把查询结果保存在objDS中
DG_Test.DataSource=new DataView(objDS.Tables["tq"]);
// DG_Test为显示查询结果的DataGrid 对象
DG_Test .DataBind( );
┋
用章节和题型来搜索试题,在题量多的情况下或忘记了试题所在的章节题型,要找到想要的试题是比较困难的。因此本系统在界面的右上角提供了模糊查询功能。通过输入关键字能快速找出符合要求的试题,这样提高了工作效率。本系统模糊查询是用SQL语句中Like方法实现的,它有一些局限性,无法像Google等搜索引擎那样可以分词查询。
三、结束语
在线测试系统解决了考生地理位置分散、出题和判卷繁琐、人工批卷有时出错且耗费时间的问题,这种基于Web的测试系统问题的提出、设计和开发都是基于网络的教学管理和应用的实际而进行的,在线测试不仅是精品课程的一个重要部分,而且在许多要考核的领域应用也越来越重要。
参考文献:
[1]何克抗.现代教育技术和优质网络辅助课程的设计开发[DB/OL].http://www.etc.edu.cn/cademist/hkk/xiandaijiaoji.htm,2006-02-20.
[2]刘繁华. 网络辅助课程的设计与开发[J].中国电化教育,2002(11):67-69.
[3]胡斌.在线考试系统的设计和实现[J].教育信息化,2006(2):43-45.
[4]汪锦龙.远程教育中的网上考试[J].计算机周刊,2000(48).
[5]陈志国,张瑾等.网上考试系统的设计与实现[J].河南大学学报,2003(3).
[6]廖信元.ASP.NET交互式Web数据库程序设计[M].北京:铁道出版社,2004.
[7]马娅婕等.多媒体网络教学系统在线考试题库的设计[J].计算机应用研究,2005,22(1):182-186.