成 军, 袁利永
(浙江师范大学 a.信息传播实验教学中心; b.行知学院,浙江 金华 321004)
·计算机技术应用·
基于C/S在线自动评判系统的设计与实现
成 军a, 袁利永b
(浙江师范大学 a.信息传播实验教学中心; b.行知学院,浙江 金华 321004)
VB程序设计的实验教学过程中,学生的动手编程能力的培养是尤为重要的一个环节,学生必须通过大量的编程实践,才能更好地理解程序概念和掌握VB编程方法。目前,绝大多数高校仍然采用人工方式对学生的VB上机实验作品进行评判,存在工作量大、反馈不及时等问题。针对VB上机实验教学中尚存不足,提出了基于C/S架构的VB上机实验在线评判系统设计方案。首先分析了系统功能需求,提出了系统设计方案,然后介绍网络通信、VB程序自动评判等关键模块的实现方法,最后简要介绍了该系统在VB上机实验教学中的应用情况。
VB程序设计; 实验教学; 自动评判; 自动阅卷
尽管VB作为程序设计语言已经有了20多年的历史,已经不算先进,但作为非计算机专业学生的计算机程序设计教学语言,VB有着独特的优势,例如:面向对象、事件驱动、简单易用的集成化开发环境、语言的简单易学性等,因此,很多高校一直把VB作为非计算机专业学生的计算机程序设计教学语言。需要特别指出的是,在最新版浙江省普通高校招生考试改革方案中,信息技术和通用技术作为技术科目已经和传统的“理、化、生、政、史、地”一起成为7选3科目,而信息技术的加试模块部分就是VB程序设计[1],这足以显示VB在计算机教学语言中的重要地位。因此,VB课程将在很长一段时间内在高校及中小学计算机教学中扮演十分重要的角色。
VB程序设计十分重视学生的动手编程能力的培养,学生必须通过大量的编程实践,才能较好地理解程序概念和掌握VB编程方法。为了能够及时反馈学生的学习掌握情况,必须及时地对学生提交的实验作品进行评判[2-3]。随着高校学习评价改进的推进,“分散考试,以练代考”等形式的形成、课程考核方法越来越受到人们的重视[4]。然而绝大多数高校仍然采用人工方式对学生的VB上机实验作品进行评判,这不但大大增加了教师的工作量,也无法保证评价的及时性和客观性。
目前,国内对VB程序的自动评判开展了一些研究[5-8],例如:上海大学郑衍衡教授、南京理工大学唐振民教授等,他们带领其研究生对相关问题开展了一些研究,提出了一些十分有价值的方法。另外,还有一些学校和研究机构已经开发出了相应的考试系统并应用到相关的等级考试中,取得了不错的效果[9-13]。然而,现有的研究主要集中在自动评判的技术实现层面,而对系统的整体缺乏研究,系统通用性较差。另外,现有系统的评判得分点划分较粗,往往只是针对整个作品给出一个二值评价,阅卷结果不够人性化。此外,目前已有的VB程序自动评判系统都是基于单机模式,或集成于某项考试的综合阅卷系统中,而用于实验教学的VB上机实验在线评判系统或平台却尚未出现。因此,设计和开发VB上机实验在线评判系统显得十分迫切。
1.1系统要求
VB上机实验在线评判系统主要用于实验教学过程中学生实验作品的自动评判[14],主要用户为高校或中学师生。目标是实现VB上机实验作品的自动评判,使课程考核和实验评价更加科学与合理,同时把任课教师从繁重的重复性体力劳动中解放出来,真正体现以人为本。因此,VB上机实验在线评判系统必须满足如下系统要求:
(1) 实用性。系统能够实现VB上机实验作品的客观评价,能够实现各类题型、多种答案的合理评判。
(2) 健壮性。系统能够克服用户程序可能出现的各种错误,防止出现系统崩溃、系统死机等情况,能对语法错误、运行时错误及死循环进行有效处理。
(3) 开放性。系统应具有一定的开放性,在无需修改系统设计的条件下,教师可以方便地增加、修改试题和评判标准。
1.2功能设计
VB上机实验在线评判系统功能设计框图如图1所示。
图1 系统功能模块设计
教师端包含的功能模块主要包括:实验内容管理、阅卷描述管理、课程学生管理、实验任务发布、学生成绩查看等。实验内容管理模块主要实现VB课程实验内容的增加、删除、修改等操作功能,实验内容包括实验目的、实验要求、实验步骤、实验素材等信息。为了实现系统的开放性,设计了一套实验作品阅卷信息描述和执行系统,阅卷描述管理模块主要对用于实验作品自动评判的阅卷信息进行描述和测试。课程学生管理模块主要实现对VB教学班、教学班学生信息管理等功能。实验任务发布模块用于教师根据课堂教学进度把相关的实验内容作为实验任务进行发布,实验任务发布后,学生才可以在客户端查看相关实验内容和要求等信息。学生成绩查看模块主要用于教师查看和统计学生的实验完成进度、实验成绩等信息。
学生端包含的功能模块主要包括:实验任务获取查看、实验作品在线评判、实验成绩提交确认、历次实验成绩查看等。学生通过实验任务获取查看模块查看教师发布的实验任务,并根据实验任务中描述中的实验目的、要求、步骤和提供的素材完成实验操作。然后,学生使用实验作品在线评判模块来在线评判自己的实验作品,系统根据相应实验任务的阅卷描述对学生提交的作品进行自动评判,并将成绩和阅卷详细信息反馈给学生。若对自己的实验作品成绩不够满意,学生可以继续对实验作品进行修改和完善,并再次提交系统进行自动评判。如果学生对自己的实验作品成绩表示满意,则可以通过实验成绩提交确认模块向系统确认自己完成了当前实验,并提交相应实验作品的成绩和阅卷信息。另外,学生可以通过成绩查看模块查看历次实验任务的成绩,以及自己的成绩在整个教学班中所处的位置。
1.3模块设计
图2描述了VB上机实验在线评判系统的软件模块设计。
本系统采用C/S架构,由学生(客户)端和教师(服务)端两部分组成[15]。客户端主要有学生用户操作接口模块、网络通信模块、实验作品自动评判模块组成,服务端主要由教师用户操作接口模块、网络通信模块和数据访问模块组成。网络通信模块、VB实验作品自动评判模块是本系统的两大核心模块,下面重点介绍这两个模块的设计方案。
图2 系统软件模块设计
1.3.1网络通信模块设计
网络通信模块是负责客户端与服务器端之间的数据通信。为了保证网络数据通信的可靠性,本系统的网络通信采用TCP/IP技术作为底层实现技术。网络通信模块设计的核心是客户端与服务端的应用层通信协议设计,通过对VB上机实验在线评判系统的业务分析,设计了如表1所示的通信协议。
表1 应用层通信协议
1.3.2VB实验作品自动评判模块设计
VB实验作品自动评判模块负责对学生完成的实验作品进行自动评判。本系统主要根据VB窗体文件内容进行控件增删、属性设置、程序填空、程序改错、程序功能等实验操作的自动评判。下面介绍针对不同实验操作的自动评判机制。
(1) 控件增删、属性设置的评判方法。VB窗口的所有控件信息都是以文本形式保存在窗体文件(*.frm)中,通过对窗体文件文本内容的搜索获得当前窗体所有控件的列表,然后在控件列表中进行检索操作来评判学生是否已经完成了控件的增加或删除。针对属性设置操作,首先从窗体文件中提取出指定控件的所有信息,然后从控件信息中提取指定属性的属性值,最后判断获取的属性值是否满足操作要求。
(2) 程序填空、程序改错的评判方法。首先在窗体文件中搜索填空项或改错项所在的事件过程,然后在该事件过程中提取出填空项或改错项的内容,最后对填空项或改错项内容进行评判。由于填空项或改错项的答案是VB语句或表达式,其答案存在很多种可能的写法,采用字符串匹配的评判方法无法覆盖所有可能的答案。本系统采用表达式求解和语句运行的方法对填空项或改错项的答案进行评判。
(3) 程序功能的评判方法。在VB程序设计中,体现程序功能的事件过程往往采用控件属性来实现数据输入和结果输出。基于这一特点,本文提出了基于黑盒测试思想的程序功能评判方法,其基本流程如图3所示。基本过程如下:首先根据评阅要求在VB源程序中嵌入程序功能评判辅助代码;其次编译VB源程序;然后调用编译所得的可执行文件;最后分析监测输出文件进行动态功能评阅。其中,程序功能评判辅助代码的基本结构如图4所示。
图3 程序功能评判基本流程
图4 程序功能评判辅助代码基本结构
本系统采用VB语言实现,数据库采用Microsoft Access2007,网络通信采用Winsock控件。下面主要介绍网络通信模块、自动评判模块的关键实现。
2.1网络通信模块的实现
为了实现客户端与服务端的多对一通信,客户端使用一个Winsock控件,而服务端采用了多个Winsock控件组成的控件数组,其中第1个Winsock控件称为主Winsock,其他Winsock控件称为从Winsock,主Winsock负责侦听,从Winsock负责与客户端具体通信。由表1中设计的应用层通信协议可知,网络通信都是由客户端发起,最后也由客户端结束。因此,本系统设计了如图5所示的通信基本流程。
由图5可见,当客户端需要与服务端进行通信时,客户端Winsock向服务端主Winsock发出连接请求;服务端主Winsock侦听到连接请求后,指定一个从Winsock控件与客户端Winsock建立连接;当客户端Winsock收到连接成功消息后,向服务端发送相关信息;服务端接收到信息后对信息进行处理,并向客户端发送反馈信息;客户端收到服务端的反馈信息后关闭连接;服务端从Winsock收到连接关闭消息后,关闭当前连接并释放相关资源。基于上述网络通信基本过程和原理,本系统实现了表1中设计的所有应用层通信协议,具体细节不再赘述。
2.2自动评判模块的实现
自动评判模块的关键是程序填空(改错)题和程序功能的自动评判。程序填空(改错)题的自动评判采用表达式求解和语句运行实现。为了方便地求解VB表达式和运行VB语句,本系统采用了微软的Script Control控件,该控件是一个功能完善的脚本解释和运行引擎,它提供VBScript和Jscript(TM)两种Script引擎,能够实现VB表达式的求解和VB语句的运行。具体实现方法在前期研究工作[16]中作了介绍,在此不再赘述。
图5 网络通信基本流程
程序功能自动评判实现机制如图6所示。首先在学生实验程序(窗体文件)中嵌入自动评判辅助代码,然而编译并运行学生实验程序,最后分析学生实验程序运行结果文件中的数据完成评分操作。为了防止学生实验程序中可能存在的死循环等异常,本系统采用了基于定时器的学生实验程序运行监测与异常中止机制。
图6 程序功能自动评判实现机制
VB自动评判辅助代码嵌入方法如图7所示。首先根据自动评判阅卷描述信息构造CheckRunFunction过程,然后在窗体的Load事件过程中插入对CheckRunFunction过程的调用,调用结束后自动关闭当前学生实验程序。
2.3系统界面
VB上机实验在线评判系统采用VB6.0中文版开发,系统主要界面如图8和图9所示。
图7 VB自动评判辅助代码嵌入方法
图8 服务器主界面图
图9 客户端自动评判界面
本文介绍了基于C/S架构的VB上机实验在线评判系统的设计与实现。目前该系统已经在本校的VB 程序设计基础实验教学进行了试用,已经能够实现十几个实验任务的在线自动评判。该系统的应用把教师从大量重复性劳动中解放出来,从而有更多精力用于对学生进行针对性地指导,提高了学生分析问题、解决问题的能力,提高了教学质量。当然,目前的VB上机实验在线评判系统仍然存在一些问题,如界面不够友好,数据分析功能不足等,我们将不断对该系统进行优化完善。
[1] 浙江省深化高校考试招生制度综合改革试点方案[EB/OL].浙江省教育厅浙政发〔2014〕37号,(2014-9-19),http://www.zjedu.gov.cn/news/26772.html.
[2] 何文广,周 珂,熊刚强.程序设计课程实验教学改革与实践[J].实验室研究与探索,2016,35(6):163-165.
[3] 丁 蓉,朱 琳.“VB程序设计”课程的创新性实验教学[J].实验技术与管理,2012,29(8):163-165.
[4] 杜承达(译).形成性评价(Formative Assessment)的本质及其对教与学的影响[J].考试研究,2010,6(1):4-18.
[5] 段汉周,凌 捷,郑衍衡.VB程序设计考核自动评阅系统中若干问题的研究[J].计算机工程,2001,27(4):167-168.
[6] 刘 双.VB程序设计题自动评阅技术的研究与实现[D].沈阳:沈阳工业大学,2006.
[7] 盛英洁.VB程序员考核自动阅卷系统的设计与实现[D].南京:南京理工大学,2003.
[8] 白金凤.VB程序设计试题自动阅卷系统的设计与实现[D].长春: 吉林大学, 2014.
[9] 乔少杰,杨 燕,葛永明,等.基于B/S架构的多用户在线程序评判系统设计与实现[J].计算机工程与科学, 2011, 30(A1): 58-61.
[10] 黄 琼,刘 辉,廖家平.基于C/S的Office在线考试管理系统的设计与实现[J].实验室研究与探索,2007,26(12):313-315.
[11] 蒋 芸,周惟公,王亚芳.实验物理考试与自动判卷系统的应用[J].实验室研究与探索,2010,29( 10) :282-283.
[12] 刘 楠,孙国道,田贤忠.ACM在线评判系统设计与实现[J].计算机时代,2010(2):34-38.
[13] 陈湘骥,徐东风,杨秋妹.在线评判在C 语言课程设计教学中的应用[J].计算机教育,2010(3):97-100.
[14] 倪 晟,金炳尧,王璟瑶.实验教学信息化体系建设的探索与实践[J].实验室研究与探索,2013,32( 6) :117-120.
[15] 侯淑英.B/ S 模式和C/ S 模式优势比较[J].沈阳教育学院学报.2007,9(2):98-100.
[16] 袁利永,刘日仙.Script Control在自动阅卷系统中的应用研究[J].计算机工程与设计, 2010, 31(19): 4316-4319.
DesignandImplementationofOnlineAutomaticEvaluationSystemBasedonC/S
CHENGJuna,YUANLiyongb
(a.Experimental Teaching Center for Media and Communication Studies; b.Xingzhi College, Zhejiang Normal University, Jinhua 321004,Zhejiang, China)
In the experimental teaching of VB programming, training students’ ability of programming is a very important part.And students must pass a lot of programming practice in order to better understand the concept of programming and master VB programming capabilities.At present, the vast majority of colleges and universities still use artificial methods to evaluate the students’ VB experimental work on the computers, and there are many problems such as large workload, delayed feedback.Aiming at the problems of large workload and short of feedback in the experimental teaching of VB, this paper puts forward a design scheme of online experiment system based on C / S structure.First of all, the system functional requirements are analyzed, and the design scheme of the system is put forward.Then it introduces the implementation of key modules of network communication, VB automatic evaluation etc.Finally, the application of the system in VB experiment teaching is briefly introduced.
VB programming; experimental teaching; automatic evaluation; automatic marking
TP 311.1
A
1006-7167(2017)10-0140-05
2017-01-09
成 军(1977-),男,浙江义乌人,硕士,实验师,研究方向:实验教学信息化、实验室管理。Tel.:0579-82298787,13566997796; E-mail: chengj@zjnu.cn