许秀云 姚冬 丁凰
摘 要:为了打破传统的师生问答式英语口语考试模式,设计了一种SSM架构的计算机英语口语测评平台。该平台应用JAVAWEB语言进行开发,服务器采用MySQL数据库创建,并结合了多媒体软件实现平台的功能。口语考试平台通过英语短文朗诵、回答问题、英语论述三个环节来评估考生的英语口语水平。平台功能主要依靠用户登录管理、学生管理、班级管理、题库管理、在线考试、阅卷管理、成绩预测、成绩查询等模块实现。所设计的英语口语考试平台功能完善,考试结果符合实际,对于释放教学资源、提高教学水平具有非常重要的意义。
关键词:在线考试;SSM框架;成绩预测;成绩管理
中图分类号:G 643
文献标志码:A
文章编号:1007-757X(2020)11-0147-03
Abstract:In order to break the traditional mode of teacher-student question and answer oral English test, this paper designs and proposes a computer oral English test platform based on SSM. The platform is based on Java Web language for application development. MySQL database is used to create the server, and multimedia software is used to realize the functions of the platform. The oral English test platform assesses the oral English level of the candidates through three links:reading English passages, answering questions and discussing. The functions of the platform mainly depend on the modules of user login management, student management, class management, question bank management, online examination, marking management, score prediction, score query, etc. The oral English test platform designed in this paper has perfect functions and practical test results, and is of great significance to release teaching resources and improve teaching level.
Key words:online examination;SSM framework;performance prediction;performance management
0 引言
目前学校英语教学的口语教学、训练、考试等项目都是通过教师与学生面对面的形式进行的,尤其是英语口语考试,师生一对一问答交流,学生成绩由教师主观判定,这种模式不仅极度消耗教师资源,也难以在成绩上保证评分标准的一致性。为了解决这些问题,本文以实现智能化口语考试为目标设计并提出了一种基于SSM(Spring+SpringMVC+MyBatis开源框架集)架构的计算机英语口语考试平台,并通过整体设计、关键功能模块设计过程完成了平台的设计, SSM框架作为标准MVC设计模式集成了多个开源框架,实现简单、功能全面,能够在全面实现设计目标的前提下极大地提升平台开发效率。平台包含学生管理、班级管理、题库管理、在线考试、阅卷管理、成绩预测、成绩查询等模块,能够在英语教学过程中大大降低口语教学资源的消耗,实现口语考试的智能化,保证口语考试的公平性。该系统开发周期为四个月,开发成本大致为5万元左右,其中本人负责系统总体设计和代码编写,课题组其他成员负责界面设计。开发完成后在网络教育學院进行为期三个月的运行测试,以验证系统应用效果。
1 平台总体设计
从功能需求的角度出发,英语考试平台通过应用层、逻辑层、数据层三个层级完成平台整体架构的搭建,其总体结构和内部工作流程,如图1所示。
应用层是平台与用户进行信息交互的窗口,在该层中教师、学生和管理员用户基于系统提供的功能进行相关操作,完成各自的任务。
应用层通过JSP、CSS以及超文本标记语言等技术呈现多视图客户端界面,基于JavaScript协议进行网络通信。
逻辑层用以接收用户的操作请求,并按照已有的业务规则对请求进行逻辑处理,将得到的结果发送给平台数据库,数据库按照要求返回的数据也要经逻辑层的转换才能在应用层得以显示。
数据层的主要功能是处理文件访问、内存数据访问、其它LDAP访问和数据库访问,通过创建SQL语句执行用户的操作请求。
用户进入平台后,操作请求VO被封装进一个HTTP协议数据包内,struts控制器接收到该请求后将其发送给业务控制器,业务控制器根据请求内容搜索对应的处理规则,对其进行定位并发送给数据库,数据库按照请求内容及控制器指定的规则选取数据,返回给逻辑层由其进行数据转换后经应用层向用户显示。
2 平台功能设计
2.1 功能模块设计
高中英语口语考试平台用户主要包括教师和学生两个部分,同时平台的维护和管理需要通过管理员用户进行,依据平台用户的各项功能需求,本平台可具体划分成用户登录管理、学生管理、班级管理、题库管理、在线考试、阅卷管理、成绩预测、成绩查询以及系统管理等功能模块。平台功能模块构成及归属关系,如图2所示。
2.2 平台关键功能设计
对于英语口语考试平台,在其多个功能模块中,学生管理、在线考试及成绩预测模块是整个平台设计的关键模块,这三个模块的功能完整性决定了平台的设计质量。
(1)学生管理模块设计
教师通过该模块将其所任教班级的所有学生信息录入到平台中,以便进行统一的管理。
学生信息的录入包括以下两种方式。
批量录入学生信息。教师在其客户端界面选择“批量录入学生信息”,界面会出现“学生列表模板”选项,点击下载该模板,在本地计算机中打开模板并按照表头内容逐项填写学生信息,完成后在客户端界面选择“导入学生列表”,将表格上传至平台服务器中存储。平台具备学生信息列表校验功能,如果教师导入的列表中填写内容有误,平台会通过界面进行提示并附加校验报告,教师按照报告中的标注做出修改即可。
逐人录入学生信息。教师可通过平台界面将每个学生的信息逐个录入平台数据库,录入信息包括学生的姓名、性别、学号等。
学生管理模块的工作流程,如图3所示。
(2)在线考试模块设计
学生通过其客户端界面在多个模拟考试选项中选择其一,点击对应的“考试”按钮进行模拟测验。考试正式开始前平台会通过界面提示学生进行试音,以保证硬件设备及软件程序都处于正常运行状态。戴上耳机,在客户端界面点击“测试耳机”选项,通过播放的音频质量判断耳机是否正常;点击“测试话筒”并读出平台所示短文,根据平台辨识的结果判断话筒是否正常。
试音结束即可进入模拟测验。学生用户可根据测验进行的具体情况选择“继续练习”以重新测验,或点击“返回”选择其它试卷。测验完成后,用户可通过平台界面查看成绩、得分项与失分项、参考答案等。
(3)成绩预测模块设计
平台的成绩预测功能是基于其所创建的DNN(Deep Neural Networks,深度神经网络)学习模型实现的,DNN模型中包含了三层神经网络,即输入层、隐藏层和输出层,层与层之间为全连接模式,通过前向传播算法基于上一层的输出结果来计算下一层的输出结果,如式(1)。
平台会将学生以往的多次测验和考试成绩保存并汇总成一个历史成绩数据集存储于数据库中,进行成绩预测时,平台调取出这个数据集并按照所设定的考试内容与特征将其转化为一个训练数据集,之后通过该数据集对DNN深度学习模型进行训练,即可得出针对用户所设定考试的成绩预测结果。
3 平台功能实现
3.1 学生管理功能的实现
如前文所述,学生信息录入可分为批量录入和逐个录入两种方式进行。若选择批量添加模式,需要首先下载学生列表模板,所有学生信息填写完成后再上传模板;若选择单个添加模式,则在录入界面直接填写信息,完成后点击“添加”即可完成信息录入。
教学过程中可能随时需要对学生的信息进行更改,包括学生姓名、性别、学号的变更或整条信息的删除等。可以通过学生列表选择目标学生,点击“编辑”修改已录入的学生信息。点击移除则可整条删除学生信息。
3.2 在线考试功能实现
试音完成后,学生点击“开始考试”即出现考试界面,界面左侧是要求学生朗读的英语短文,学生点击“录制”后开始朗读,根据实际情况选择是否中止录制,朗读完成后点击“停止”,继续点击“上传”即可将录音保存至平台服务器中,同时平台界面右侧会出现根据学生发音智能辨识的短文内容。
3.3 成绩预测功能实现
成绩预测功能通过创建DNN模型、建立历史成绩数据集、创建训练数据集、训练DNN模型、验证模型功能、加载模型、预测成绩七个环节完成。各环节执行代码如下。
1)创建DNN模型
inputs=Input(shape=(size,),dtype='float32')
dropout=Dropout(0)(inputs)
ouput=Dense(512,activation='relu')(dropout)
dropout=Dropout(0.15)(ouput)
ouput=Dense(256,activation='relu')(dropout)
ouputs=Dense(1)(ouput)
model=Model(input=inputs,output=ouputs)
2)建立历史成绩数据集
optimizer=Adam(1r=0.002,beta_1=0.9,beta_2=0.999,epsilon=1e-08)
model.compile(loss='mae',metrics=['mape','mae','acc'],optimizer=optimizer)
3)将历史成绩数据集转换为训练数据集
'g_dir='./logs',histogram_freq=0,write_graph=True,write_images=False,embeddings_freq=0,
s_layer_name=None,embeddings_metadata=None)
abels,batch_size=2000,epochs=1000,validation_data=(np.array)(eval_features),eval_labels),callback
4)通過训练数据集训练DNN模型
tensorboard-logdir=/logs
5)验证DNN模型功能
cost=model.evaluate(np.array(eval_features),eval_labels,batch_size=100)