1. 引言
在我国,大部分学校已经开始实行利用计算机考试来替代传统的笔纸考试,学者们也针对在线考试进行了各种研究和实现 [1] [2] [3]。但现在的在线考试系统大多是针对课程整体的考试,或者是对组卷算法的研究 [4] [5],或者是对评判过程的研究 [6] [7] [8]。这些研究都是对某个或某类算法进行的,而面向整个教学过程的每个阶段的评价方面的研究以及针对课程进行阶段性测试及考核的系统并不多。因此,本文要研究的就是将在线考核分布到课程的整个学习过程中,针对每一个章节、针对每一个阶段进行考核和测试,教师可以在每一个阶段都能了解学生的学习状况,并根据上一阶段学习状况及效果及时调整后面的教学和学习,让学生能学一部分懂一部分,真正学懂学会,达到应有的能力水平。
2. 阶段化考核系统的功能分析及数据库结构分析
在平时的教学及考试中,大部分只有期末考试(部分课程有期中考试),缺乏对每章节的巩固及考核。而课后给学生布置作业的方式,不管是作业的审批还是未交人员的登记,都给老师带来了不少的工作量。通过阶段性考核,不仅可以省去繁杂的登记工作,还能实现无纸化的作业。作为阶段化考核系统,从题目内容,考试安排,考试实施,考卷批改到分数统计等所有的工作都需要做到简单,方便,易于操作。所以该系统应该做到:
1) 所有的考试数据需要一种方便的方式进行存储和管理,比如使用数据库技术用视图形式实现教考分离。
2) 在不改变传统考试基本步骤的条件下只要有浏览器就可以连接到考试服务器,考生可以在任何地方进行身份确认都能完成考试。
3) 考试的结果在提交试卷后就可以立即反馈给学生,让考生知道自己哪些知识掌握的不牢,需要进行二次的学习或复习。并且考试结果可以被保存下来供教师进行分析统计。
2.1. 阶段化考核系统的功能分析
系统包含学生用户、教师用户和管理员用户三类用户类型,各类用户的功能分析如图1所示。
学生登录系统后,首先可以将密码修改为自己易记且安全的形式,之后可以选择在线考试,其中包括章节测试和期中、期末考试。通过不同的选择,会分配不同的试卷。点击开始考试后,有时间的统计,可以让学生把握好做题的进度。最后,做完试卷点击提交,系统会自动阅卷,给出正确答案及参考分数。之后学生还可以进行成绩查询是来查询自己的分数,以及查询所有自己所参与的考试的详细情况。
教师登录系统后也可以修改密码,主要可以进行的操作有查询学生的考试成绩,查看学生试卷,在线阅卷等,其中在线阅卷主要是针对主观题目,老师可以针对系统自动评判后的结果进行修正。
管理员的功能权限主要是管理系统中个的信息,管理员登录后可以对不同类型的用户进行增删改查,也可以对题库中不同类型的题目进行增删改查。

Figure 1. Function analysis of stage assessment system
图1. 阶段化考核系统的功能分析图
2.2. 阶段化考核系统的数据库结构分析
数据库是系统的底层,负责存储数据。该系统的数据库中要存储用户信息、题库信息以及成绩信息。具体数据库设计如图2所示。

Figure 2. E-R diagram of system database
图2. 系统数据库E-R图
其中管理员用户、学生用户和教师用户都属于用户表,该表保存了这些用户的基本信息,属性有用户编号,用户姓名,用户密码和用户权限。
题目表示多个题目表构成,由于不同类型的题目存储的内容不同,因此建立了多张题目表,比如有单选题表、填空题表、判断题表、应用题表、编程题表等,它们保存的内容中都包含试题编号,试题难易,试题所属章节、题目分数等共同属性,但也有各种题目内容、格式等不同的属性。
学生答案表示指学生答题后记录的各类题目的答题情况表,包括单选题答案表、填空题答案表、判断题答案表、应用题答案表、编程题答案表等,以试卷编号、用户编号和题目编号等共同标识。
成绩表保存了学生考试得分记录,里面记录了学生编号,试卷编号,试卷难易程度,系统判卷得分,教师阅卷得分以及考试时间等信息。
3. 阶段化考核系统的核心功能设计
系统为阶段化考核系统,因此如何考核以及如何评分就成为了系统的核心功能。
3.1. 学生进行阶段性考核的功能流程设计
学生首先需要登录,登录后学生可以选择不同类型的试卷:章节考试,期中考试和期末考试,章节考试课程章节来分的小阶段考核,而期中考试和期末考试是学习中期和学习结束进行的大阶段考核。考试的难度分为初级,中级和高级三个等级。学生在设定了这些参数后选择开始考试,系统此时会根据参数自动生成一套试题,学生进入答题页面。一进入答题页面系统会自动倒计时,在页面的顶部显示还剩多长的时间。如果考生没在规定时间内完成答题,系统将强制提交学生的试卷。考生提交试卷后,系统会自动给出评分,之后在下一个页面将会列出题号,考生答案,正确答案及获得的分数,并将该试卷的所有内容存到数据库中,以供老师阅卷时调用。在线考核流程图如图3所示。

Figure 3. Flow chart of stage assessment of students
图3. 学生进行阶段化考核流程图
其中试卷的组卷是由确定的参数下系统自动生成的,目前生成的是随机提取的固定数量的题目,有关组卷算法的研究请见论文 [9] [10]。
3.2. 教师阅卷功能的设计
学生交卷后,系统会给一个自动评判的分数,但针对主观题(应用题、编程题)系统是按照关键字匹配给的分数,这个分数不一定准确,需要老师再进行校正。教师登录后,可以查询学生成绩并修正阅卷。教师选择考生成绩查询,可以根据学生的学号来查询指定学生的成绩,也可以选择查询所有学生的成绩,学生成绩表中记录了学生的学号,试卷的详细信息以及考试的时间,并在最后一项有阅卷的按钮。教师可以根据考试的时间来判断哪些试卷是需要批改的。选择阅卷,系统会根据学生答题情况自动生成该学生的试卷,试卷详细列出了试卷的所有题目,考生答案,参考答案以及系统自动评分给出的分数。教师可以修改这些分数,修改后点击提交后系统会重新统计考生得到的分数,并更新成绩数据库,返回到查询成绩页面。具体流程如图4所示。
教师的阅卷过程中主要是对学生答卷的修正,如果自动评分没有问题也可以不进行修正。这一环节保证的是每次考核对学生都是公正的。

Figure 4. Flow chart of teacher marking
图4. 教师阅卷流程图
系统还有一些其他功能,比如题库管理功能,主要是由管理员进行不同题型的添加、修改、删除等。用户管理功能,可以对用户进行权限设置及添加、删除等管理。学生的成绩查询功能,可以看到学生自己所有考核的记录及考核的详细情况。
查看考生成绩,分为学生自己查询成绩,和教师管理员查看成绩。学生自己查看,只要选择“成绩查询”,就能看到自己的所有考试记录,考试记录按照时间先后排列。教师查看学生成绩,可以查看所有的学生成绩,也可以选择输入学号查看某一个学生的成绩,由于,试卷的类型是多样的,也有不同的考试记录,考试时间,因此成绩查询可以根据考试的时间排序,考试的类型排序和学生学号排序。
4. 阶段化考核系统的的测试
4.1. 学生功能的测试
学生成功登录后,进入学生操作主界面,选择在线考核,就能进入考核选择(章节、期中、期末三种),并进行考核参数设置。如图5所示。

Figure 5. Test paper parameter setting interface
图5. 试卷参数设置界面
之后系统就会自动生成一套试卷,同时开始考核倒计时。考核时间固定为90分钟,当时间为0时,系统会自动提交试卷。当然学生也可以在完成后手动提交试卷。如图6所示。
学生提交试卷后系统会自动评分显示正确答案,并保存该试卷。如图7所示。
如果学生希望查询所有考核考试的结果,可以选择“成绩查询”,就能查询到自己参与的所有考核及每场考核的成绩。如图8所示。

Figure 6. Chapter assessment interface (part)
图6. 章节阶段性考核界面(截断)

Figure 7. Assessment result interface (part)
图7. 考核结果界面(截断)
4.2. 教师功能测试
教师登录后,可以选择成绩查询,可以根据学生学号来查询学生的成绩,以可以直接查看所有人的成绩,并且在每条记录后面可以选择阅卷。如图9所示。

Figure 9. Results list in time order (part)
图9. 按时间排序的成绩列表(部分)
这里图9中显示的为按时间排序的所有学生成绩,教师也可以选择按学号排序或者按章节排序进行显示。如果教师想要阅卷,可以点击后面的阅卷按钮,系统会调出这个学生的考核试卷及答题的信息,界面会显示每道题学生所得的分数,对于那些主观题,教师可以去修改分数,给出一个合理的分数。阅卷完成后提交,系统就会自动统计这些分数,并更新成绩数据库。
5. 总结与展望
阶段化考核系统是一个辅助教学的考核系统,它可以满足平时考核的需要,能让学生根据自己的考核结果找到自己薄弱的环境,进而进行自主的学习。也可以用该考核系统代替平时作业,每章结束后把章节考核作为章节作业,既能节省教师登记作业、评判作业的时间,又能让学生之间不能相互抄袭,而且对自己会做与不会做的题目一目了然。通过前期教师、学生们的使用情况和反馈得到,该系统能够有效的减少教师评阅及统计数据的工作量,并且让学生能通过阶段测试及时的了解自己的弱项在哪里,及时查漏补缺,从而增加学生学习的兴趣,更好的进行下一步的学习。
当然该系统还有许多不足之处,比如组卷原理比较简单,后续可以增加更好的组卷算法进行题目选择。再比如系统界面还过于简单,而且B/S架构用在手机上不够方便,后续还会进一步开发安卓端的阶段化考核系统,以适应手机的普遍性和考核的灵活性。
基金项目
本文得到北京信息科技大学教改项目“基于OBE的数据库教学改革方法(2018JGYB19)”及“基于OBE的数据结构教学方法改革(2020JGYB21)”资助。