刘城霞
(北京信息科技大学 计算机学院,北京 100101)
数据结构在线学习系统的考核中,不但要有对数据结构基本概念的考核,基于逻辑结构应用的考核,还要有对数据结构程序设计的考核,而基于网络去做这些考核存在许多问题,比如技术实现有困难或对答案的机器评价有歧义。如何做到真正的网上合理考核,是主要研究和探讨的内容。
随着网络教学平台的发展与推广,越来越多的学生和教育机构选择网络教学来完成知识的传递。比如美国很多大学运用网络完成了很多的在线教育任务,学生足不出户就可以完成全部的教学任务,对于留学生来说更是提供了很大的便利,也节省了许多支出。再比如,国内各个高校也都纷纷建立自己的在线教学体系,在专门的网站上开设各种课程学习。
在线教学中,如何正确有效地评价学生在线学习的效果尤为重要,正确地评价能促进学生学习积极性并将学生不足的地方指出,指导学生进一步地学习。目前评价学生学习效果主要通过在线考试来完成。在线考试与传统纸质考试比起来更灵活、更公平、更省资源、更高效。很多学者也在在线考试方面做了探索[1-2],但如何真正做到合理、有效、准确地考试并评价,要着重研究和探索。
在对数据结构的学习系统研究之后[3-5],如何对数据结构进行在线考试成为一个关键的问题。数据结构在线考试系统中题目如何划分,是首先要考虑的问题。传统的数据结构考试中,一般包括选择题、填空题、判断题、简答题、应用题、编程题、算法分析题等。而在线考试系统中,大致可以分为客观题和主观题两大类,见图1。其中客观题是答案确定且易于判断的题目,比如选择题、填空题、判断题;主观题是答案大意确定但具体文字描述不确定的题目,比如简答题、编程题、应用题及算法分析题。
客观题目非常适合计算机进行机考,很多在线考试试题中题目都是客观题,但对于数据结构课程来说,只有客观题远远不足以评价考生的真实水平,所以需要增加主观题帮助对考生进行全面评判。而主观题进行线上考试时会出现自动评判困难、需要人工复核等,这就使得线上考试的优势被磨灭了。如何正确地自动评价是在线考试迫切需要解决的问题。
图1 在线考试题目类型图
如何准确地评价学生的学习效果,需要作为数据结构在线考试系统重点考虑。评价体系主要涉及3个部分:①日常学习的评价②考试成绩的评价;③综合能力的评价。
日常学习包括学生对课程内容的学习,完成每章作业,进行章节测试等,对日常学习的评价主要在于作业的完成度及完成质量的评价、章节测试结果等。日常学习及评价过程如图2所示。
图2 日常学习及评价过程
当内容学习完成后去完成章节作业,作业完成后进行测试,测试通过后学生可以进入下一章节学习,否则需要重新进行本章节学习。测试题主要由客观题和答案固定的主观题构成,客观题目可直接给出成绩,答案固定的主观题可由答案对比结果给出参考成绩。
考试是指在线考试,在完成各章学习后,可以进行在线考试,考试题目包含上述主观题和客观题。对于客观题的评价只需要和答案进行对比即可。对于主观题的评价需要由3方面构成:①答案对比(如简答题、算法分析题);②运行结果对比(如编程题);③关键点匹配(如应用题、编程题、算法分析题)。具体可见图3。有的题目需要由2个或3个方面一起进行评价,综合给出最终题目成绩。另外设置申诉机制,如对评判结果有异议,可以提出申诉,申诉后由老师人工进行复核,以期更正自动评分中出现的错误。
图3 考试主观题的评价方法
综合能力的评价包含以上两种评价结果,主要评价学生综合运用知识的能力。这里综合能力评价会将前两种评价的结果进行综合,并且根据一定的分析给出一个综合分数。综合能力评价中还有一些开放性题目,这些开放性题目主要涉及实际工程应用中的问题,学生可以寻找资料后自由回答,没有标准的答案,由人工进行评价。开放性题目作为学生学习能力及创新能力的评价,提供学生自由选择,不作为考试成绩。见图4、图5所示。
图4 综合能力评价组成部分
数据结构在线考试系统主要涉及作业题、章节自测题及考试题目部分,开放性题目不作为考试系统的内容。该系统可以实现根据要求自动组卷及自动评分,如此既可以减少教师出题及阅卷的工作量,又可以让学生更加灵活的学习和考试。在学生某项知识较薄弱时还可以针对该薄弱知识点章节进行针对性的复习测试,提高学生学习的效果和效率。
系统中包括两类用户,教师和学生。基于此将系统分成两大模块:一个模块用于教师部分,教师主要负责进行个人信息及学生信息的管理,对题库、考试、成绩进行管理;另外一个模块用于学生部分,学生的主要功能就是进行在线考试和查询考试成绩等。
具体系统应该实现的功能:用户根据不同的身份登录到系统上,对于教师来说,可以进行如下管理工作。
(1)考试管理:教师可以添加考试,由教师规定考试所适用的班级、考试的日期和考试限时,教师还可以设置考试范围。
(2)试题管理:教师可以对题库中的试题进行基本的增删改查的操作:添加新的试题和删除旧的试题,其中试题类型包括程序题、填空题和选择题;对于不同类型的试题,教师可以设置除了题目、章节、难度、答案之外的备选项、关键字等不同的属性值。
(3)成绩管理:教师可以查看考生的所有考试成绩进行确认、调整及修改,并打印输出等。
(4)学生管理:教师可以对选课学生的资料进行添加、修改、删除,确认学生是否为选修该课程学生,确认学生是否有考试资格等。
对于学生身份来说,可以进行如下工作。
(1)在线考试:学生可以在教师规定的时间内进行在线考试。最晚不得超过开考时间后的半个小时。考试开始半个小时内,考生可以在确认交卷之前返回考试界面,重新点击考试更换试卷,但是考试时间不会延长。考试结束后,系统将进行在线阅卷。考生可在考试后立即知道考试结果。
(2)查询考试成绩:学生可以在线查询以前参加过的考试成绩,同一场考试多次参加只显示几次考试中的最高成绩。
考试系统需要自动地生成试卷,一般情况下由老师输入一些组卷参数, 系统根据这些参数抽出相应的试题, 组成能用来考试的试卷。定义这些参数以及对参数进行变换的算法, 我们称之为组卷策略。在考试系统中组卷效率和组卷质量主要取决于组卷策略,因此许多学者也对组卷策略进行了研究[6-9],这也是本项目中的一个重要内容。
目前,常用的组卷算法有随机法、回溯法、遗传算法和随机定位搜索法。文献[10]中也对这几种组卷算法进行了研究,本项目中对章节测试采用随机法进行组卷,而对最终的考试采用遗传算法进行组卷,最终实现了试题的生成。
1)随机法。
随机法是组卷算法中一个比较基础的算法,采用随机的题目抽取方法,抽出题目后,再判断题目的各项内容是否满足要求,满足则保留,不满足则舍弃。这其中可能存在抽取试题重复的情况,所以抽取完成后还需要验证组合的试卷是否存在题目重复问题。
随机法算法的基本过程是由计算机随机生成一个随机数r,这个随机数即题目编号ID,从数据库中取出题目ID为r的题目,判断该题目是否满足要求,若满足则放入试卷,否则重新产生随机数。不断从试卷表中抽取题目,直到达到试卷总题目数,即试卷生成完毕。算法流程图如图6所示。
图6 随机法组卷过程
2)遗传算法。
遗传算法是组卷算法中效果较好的算法,它采用遗传学原理对整套试卷题目进行变换,以得到效果最好的题目。遗传算法首先生成一个种群,种群中有固定个数的个体,个体即试卷,个体的基因即试题编号。再通过赌轮法把适应度值较高的个体选择出来,进行交叉和变异,即进行试题的交换和替换。流程图如图7所示。
遗传算法的基本操作主要包括:①初始化,随机生成满足“题目数量”和“题型”要求的一套考试试卷;②通过适应度函数计算出试卷的“难度系数”和“知识点分布”是否合理;③选择,通过赌轮法选择,适应度高的试卷更容易被选择;④交叉,随机选择类型、分值一样的题目进行交换,形成新的试卷;⑤变异是指改变试卷中的个别题目,从而形成新的试卷。
图7 遗传法组卷过程
老师登录系统后左侧会有教师的操作目录,包括教师信息管理、学生信息管理、题目管理、考试管理、组卷策略管理等,如题目的管理功能,老师可以进行题目的录入包括主观题和客观题的录入;题目内容的查看;题目内容的修改以及题目的删除等。再如组卷管理功能,老师可以录入组卷要求,也可以修改之前已有的组卷要求。根据组卷要求,生成试卷时采用随机法或者遗传算法,生成需要的试卷,供学生考试需要。学生登录后可以进行考试,考试后学生可以查看考试成绩,以及查看以往考试成绩。
经过学生进行模拟考试测试后,学生能够通过该考试系统的各级考试发现自己的不足之处并逐渐地改进。如编程题目在线考试部分,它相对于纸质的编程考试要求更高、更细,不再是静态地看语句,而是动态地执行,学生在此类考试时就会更注重代码的规范性和正确性。再如学生考试后系统会自动评分,包括日常学习的评分(通过章节测试完成)及考试的评分,系统会综合两类评分结果,给出学生的综合评分及学习重点的建议,这样可以让学生更有针对性地学习,取得更好的学习效果及考试结果。
笔者主要探索研究了如何有效地实现一个数据结构在线考试系统,老师可以在线管理考试,学生能够在线进行考试,并且对考试组卷策略进行了分析和选择,对考试评价方法进行了探索及分级综合,最终使学生能在在线学习后对其学习效果进行评价。