程序设计课程云智能实训系统研究

2022-09-26 10:25朱雪梅李玮璇
科学技术创新 2022年26期
关键词:题库程序设计浏览器

朱雪梅,李玮璇

(广东女子职业技术学院,广东 广州 510000)

引言

目前,程序设计类课程根据线上腾讯课堂等教学经验[1]会出现老师讲解、学生操作难以同步解答的现象。传统教学常态是师生在实训课室,教师讲授理论并且操作演示,学生在实训平台操作练习,教师通过巡堂解答学生的疑难问题。由于多种因素影响,许多地区需要进行线上教学,教师和学生不能同空间沟通,导致教师辅导难,教学难点不能得以解决。因而,云实训平台应运而生[2],但是根据调研发现[3],目前市面上能辅助程序设计类课程教师的云实训平台都是需要定制开发,灵活性较差,教师不能针对课堂的学情动态化调整实训内容,更新重难点实训内容,不能对学生实训数据进行分析等。由此,为了实现线上教学学生不受限于时间空间,随时进行云端程序设计实训,并且得到智能化测评,教师能够随时根据学情灵活调整线上实训平台内容,能够对学生实训数据进行精准分析的目标,本研究研发了“程序设计课程云智能实训系统”,着重从系统功能、系统设计等方面进行阐述。

1 系统目标

程序设计云智能实训系统的目标是设计一个基于云端的程序设计虚拟实验室,该系统不限时间、空间和终端的限制,学生通过浏览器打开网址即可进行实训,该系统能对编程实验操作进行智能评价,并实时反馈评价结果;能后台监控所有实训数据,通过大数据挖掘,对学生实验数据进行分析,从而辅助教师调整教学。该系统从理论、方法、技术和系统实现具有一定的普适性,能够推广和应用到其他课程和领域。

2 系统功能模块

程序设计云智能实训系统主要包括实验智能测评、学习数据分析和互动学习3 个功能模块。其中,实验智能测评和学习数据分析是系统的核心功能模块。

2.1 实验智能测评模块

该模块根据功能需求包含实训题库、实验操作、实验智能化测评3 个子模块。实训题库模块是教师根据教学计划和重难点设计一些实训题目的学习资源题库,教师可以灵活设置,根据每个班级不同学情灵活更新和调整题库内容,也可以根据学生实训情况增加某类知识点的强化训练;实验操作是学生登录网站,根据学习计划以及自身能力选择不同知识点对应的题目进行编制程序代码,如有困难可以查询提示,完成后提交源程序;实验智能化测评是系统对学生提交的源程序检测评价,如果正确,反馈答对信息,并给予鼓励;如果出错则反馈运行错误信息, 并提示出错的地方,引导学生排查错误,实现智能化评价。

2.2 学习数据分析模块

该模块根据功能需求包含实训题库管理、学生数据记录、学生答题排名和学习数据分析4 个子模块。用户排名模块是根据学生学习数据情况,在每个班级下按照得分高低进行排名,也可以针对某道题查看最快答题的同学;实训题库管理是教师可以灵活新增、删减和设置题库内容,并且对题库的使用账户信息和权限进行管理;学生数据记录是对学生在题库里操作情况进行记录,答对情况、答错次数等;学习数据分析是该系统的核心,可以实时分析学生学习的数据,不仅答题情况的分析,还有所有学生操作记录的分析,如选择题目集中哪类知识点,某道题答错次数,获取提示的题目等,形成学生个人学习数据库和班级学情数据库,从而辅助教师调整教学策略。

2.3 互动学习模块

该模块根据功能需求包含在线答疑、讨论协作和常见问题3 个子模块。在线答疑是教师设置了问题交流窗口,学生遇到问题可以在线和教师进行沟通交流讨论;讨论协作模块是为小组讨论设置的,小组成员可以在线上实行任务分配,对工作任务遇到问题时可以进行沟通协作;常见问题模块是后台根据以往教学遇到的系统使用和题库问题进行了整理,用户直接可以查看解决大众问题,提高问题解决的效率。

系统前端使用业界流行的vue 框架开发,后端使用node 框架开发Web 服务器。底层使用selenium/phanthomjs/chrome 等浏览器框架技术运行上机代码,实现核心功能[4]。系统运行流程见图2。

图2 系统运行流程示意

3 系统设计与实现

3.1 系统结构

程序设计课程云智能实训系统采用B/S 模式开发,运用了3 层服务体系,分别是表示层、业务逻辑层以及数据访问层,见图1。表示层,系统通过Web 浏览器将业务逻辑层的数据按一定格式和界面呈现给用户,并与用户进行交互。业务逻辑层,相当于系统的Web 服务器,将表示层传递过来的用户请求,进行解析、分拆、重组,形成数据访问需求,传递给数据访问层。同时,对来自数据访问层的数据进行梳理、汇合。数据访问层,采用MySQL 网络开源数据库作为数据存储数据库,主要负责将业务逻辑层传递过来的数据请求,通过网络的方式从数据文件中进行检索,并返回数据结查。数据访问层主要起到存储数据、数据查询、数据安全和数据分流的重要作用,数据库的建立能更好的实现数据的统一性、完整性和持久化。

图1 系统结构

3.2 系统流程设计

学生激活程序设计云智能实训系统,进行选题写代码,浏览器前端把上机代码通过axios 异步技术发送到服务器端,服务器端收到浏览器请求后,使用浏览器模拟器运行用户编写的上机代码,根据代码运行的输出及产生的作用,综合从数据库中加载的测试及结果数据,进行人工智能评价。结果以json 接口的形式封装返回给浏览器;另一边老师也可以通过管理员端口查询到分析结果,随时了解学生的学习情况。此外,系统还设计了问题提示功能,学生碰到困难点可以通过分值来换取提示,服务器会向数据库发送请求查询学生是否有足够的分值,如果有提示以json 接口的形式封装返回给浏览器,反则会提示无法获取。

3.3 系统软件模型设计

系统前端通过vue、element-ui 框架实现,学生在对浏览器进行操作时,浏览器将请求通过json 封装把数据发送至业务服务层,业务服务层通过数据存取层得到后端数据源的数据支持[5]。软件模型图见图3。

图3 系统软件模型

3.4 系统功能结构设计

3.4.1 服务端系统功能

a.身份判断。用户在系统登录的时候,后台会通过MySQL 数据库存储的数据判断用户是学生(s)还是管理员(a),完成后将结果返回给浏览器。b.智能评价。学生在系统提交题目代码后,服务器会使用PhantomJS浏览器模拟器运行学生编写的上机代码,根据代码运行的输出及产生的作用,综合从MySQL 数据库中加载的测试数据,结果以json 接口的形式封装返回给浏览器。c.用户注册。学生通过Web 浏览器填写个人信息,如姓名、学号、专业班级以及登录密码,完成后将数据交给MySQL 数据库保存管理。d.修改个人信息。

3.4.2 网页端的主要功能

a.用户注册登录系统。b.浏览练习题目,预览知识点。c.查看做题记录,通过之前的记录了解自己的做题思路。d.通过查看自己在班级的排名,激发学生的竞争心理。e.了解自己的学习情况,系统统计分析近期学习数据。f.修改个人信息。

3.5 系统实现的关键技术

3.5.1 数据加密技术提高安全性

由于JavaScript 程序设计云智能实训系统需要在学生登录后才能使用,如学生上机途中离开别人可以通过操作后台截取登录密码。所以对于网页来说数据加密的工作是非常重要的,它能有效防范他人窃取信息和使用。云智能实训系统主要采用MD5 进行数据加密处理,当学生要进入系统点击登录时,服务器接收到数据后对登录密码进行加密处理后再跟存放在数据库里的数据做对比,如果数据相同则证明密码正确。

3.5.2 实验结果智能评价技术

应用前端自动化测试技术,利用黑盒测试原理,对学生上机编程结果进行量化,对程序结果进行智能评价和实时反馈,提高学生的上机实验效率。

3.6 系统代码实现

我们在系统使用浏览器模拟器开发了人工智能评价系统。智能评价关键代码如下:

如果学生实训操作题没有运行错误,并且输出结果与标准结果匹配一致,则反馈正确,否则反馈结果错误,见图4。

图4 智能评价界面

4 结论

本研究针对程序设计类课程线上实训教学辅导效率低的弊端,开发设计了“程序设计课程云智能实训系统”,该实训平台系统不限时间、空间和终端的受限,网页端即可进行实训并得到智能化辅导。该系统能够推广到编程类的各个专业课程,普适性较高,有效解决目前线上实训教学的困难。

猜你喜欢
题库程序设计浏览器
基于OBE的Java程序设计个性化教学研究
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
医学专业“Python程序设计”课程教学改革总结与思考
“整式的乘法与因式分解”优题库
微软发布新Edge浏览器预览版下载换装Chrome内核
脑力急旋风
猿题库技术压阵 深耕 K12在线教育市场
猿题库
浏览器