APP下载

基于微信小程序的云计算学习平台开发

2023-09-15丁晓进朱晓荣

软件导刊 2023年9期
关键词:错题页面答题

丁晓进,朱晓荣

(南京邮电大学 通信与信息工程学院,江苏 南京 210003)

0 引言

云计算课程作为操作系统原理、数据库系统原理、Linux编程的后续课程,覆盖的专业知识点主要包括Google文件系统GFS、分布式数据处理MapReduce、分布式锁服务Chubby、分布式结构化数据表BigTable、Hadoop 开源云架构、虚拟化技术等[1-2]。然而,该课程授课学时仅为32 个学时,通常情况下需要授课教师引导学生自主学习,并及时掌握学生学习情况。

目前,由于缺乏专门针对云计算的学习平台,学生课后主要利用教材进行学习,并辅以网页、视频APP 查询资料,既使得学生难以有效评估自身学习效果,还难以激发学生学习兴趣。此外,学生与授课教师间缺乏有效的交互,导致教师无法及时掌握学生学习情况。

由于设计云计算学习平台既需要考虑学生利用Andriod、iOS、Windows 等系统进行学习的需求,又要基于Cordova[3-4]、Flutter[5-6]等跨系统开发框架,因此给平台设计造成了一定的困难。在传统小程序开发模式中,开发者不仅需要从小程序端额外引用软件开发工具包(Software Development Kit,SDK)请求后端,还需关注弹性伸缩、异地容灾、网络防护、安全加固等问题,这种前后端分离的模式需要在物理机托管、云主机、容器等方面投入较多人力资源,严重影响小程序的开发效率。然而,微信小程序在支持跨系统的同时,具有无需安装、在线升级维护等优点[7-8],极大降低了开发成本,使用者打开即用。云开发打通了微信生态,无需搭建服务器,提供了云数据库、云存储、云函数、云托管、云调用、微信支付、环境共享、内容管理等功能。

为此,本文利用云开发模式设计一个基于微信小程序的云计算学习平台,旨在有效激发学生学习兴趣、便于在生生、师生相互交互的同时提升学习平台的开发效率。

1 微信小程序开发框架

微信小程序目录结构包括小程序页面pages 和小程序app相关配置[9],如图1所示。

Fig.1 WeChat Mini program directory structure图1 微信小程序目录结构

图1 中,pages 包含.js 页面逻辑、.json 页面配置、.wxml页面结构、.wxss页面样式和通过其他小程序框架编译后的文件;app.js 为小程序的全局逻辑文件,可设置账号环境、检测更新、定义全局变量等功能;app.json 为小程序全局配置,不仅可定义相关pages 页面保存后所生成的page 结构,还可定义全局组件及tabBar;app.wxss 为小程序公共样式;utils 用于存放工具类;sitemap.json 配置是否允许被索引;project.config.json 为项目的配置文件。此外,还包括自定义的组件、引用的外部组件和云函数等。

Mpvue(Mini Program Vue)基于Vue.js 开发小程序前端框架,可在小程序环境中运行,形成了组件化开发能力,不仅能提升代码复用性,还可利用Vuex 数据管理方案构建复杂应用或将H5代码转化成小程序目标代码[10]。

2 基于微信小程序的云计算学习平台

设计云计算学习平台的核心是满足师生教与学的真实需求,具备跨系统、易用性和低成本等特性。由于微信小程序具有跨系统、即开即用等优点,本文基于微信小程序设计云计算学习平台。

2.1 平台功能

本文针对学习、答题和复习等环节的具体需求,基于微信小程序设计的云计算学习平台包括登录、答题、课件管理、教材管理、统计分析5 个主要模块,开发工具包括微信开发者工具稳定版1.05.2102020、TencentDB for MongoDB[11]、云数据库[12]、Serverless Cloud Function、云函数、Cloud Object Storage、云存储[13]、CloudBase CMS、内容管理系统、Vant-weapp、组件库、Mpvue、小程序框架[14,15],总体功能结构如图2 所示。用户登录后可选择教材、课件和答题模块进行学习,学习后还可进一步选择统计分析模块查询和分享自身学习情况,平台具体操作流程如图3所示。

Fig.2 Platform functional architecture图2 平台功能架构

Fig.3 Platform operation process图3 平台操作流程

2.2 数据库设计

本文开发的学习平台涉及的数据表包括学生集合(students)、用户信息(profiles)、考试信息(exam)、考试内容(questions)、教材集合(textbook)、作业集合(homework)、学生答题记录(historys)、学生作业作答信息(homeworkcomment)、学生错题记录(notes)共9 张表。具体开发时,可在云开发控制台创建数据表集合,也可在CMS 内容管理系统中可视化创建[16,17]。例如,学生作业作答信息(homework-comment)表所需字段包括记录id(系统自动生成)、用户id、创建时间、更新时间、作业id、作业评分、作业内容、用户名、作业对应章节等字段。

3 云计算学习平台

3.1 登录模块

为了提升用户体验,让用户产生归属感,设计了主题明确的欢迎界面,并插入校验功能,即非规定用户名单内的用户无法进入学习平台。其中,欢迎界面获取、校验用户的微信授权信息,合法用户可直接进入小程序并提醒登录用户使用小程序,非法用户进入将提醒管理员;登录界面获取用户微信授权信息,用户未登录时提示用户登录,登录后显示用户头像、名字,已登录过的用户可自动登录,系统将获取用户唯一标识并保存。

程序开发时,在微信开发者工具的Pages 中新建Start页面,并在Start.wxml、Start.wxss 设计界面样式。具体而言,在Start.js 生命周期onLoad 函数中调用onQuery()、on-GetOpenid()函数,并在用户点击立即进入按钮后绑定go-Home()函数。其中,onQuery 函数用于查询Profiles 数据库,并将结果按照Openid 和对应的userInfo 分组保存在全局变量中,以便后期生成排行榜时获得用户信息;onGetOpenid 函数用于调用登录Login 云函数,以获取用户Openid并将其保存到全局变量中;goHome 函数用于获取用户授权信息,并根据授权名单校验用户信息并给予提示,合法用户可进入小程序,否则无法进入。

3.2 答题模块

答题模块包括模拟考试和课后作业子模块。模拟考试子模块中,学生在规定时间内答题,一旦时间结束后系统自动交卷并记录作答信息,以便学生后期寻找未作答的题目,交卷后学生可选择查看分数排行榜、错题或重做,还可将成绩一键发送给授课教师;学生可在课后作业子模块中完成课后作业。区别于常见的小程序,本文设计的学生答题模块设计倒计时、答题自动批改和提交等功能,不仅能提升学生作题效率,还便于学生在答题后进行针对性复习,以激发学生学习兴趣。倒计时功能实现逻辑如下:

输入:倒计时数值,即总分钟数minute。

答题自动批改和提交功能流程图如图4 所示,学生答题时可自动批改并统计答题情况,在学生完成答题后立即将大体情况呈现给学生,学生既可选择查看错题及解析,也可选择重新作答。

Fig.4 Platform question answering process图4 平台答题流程

答题模块具体开发时,在微信开发者工具Pages 中定义了Home、Exam、ExamHome、ExamResult 共4 个页面。其中,Home 页面中onLoad 生命周期函数获取全局变量Openid,调用Query()函数查询试题信息,每道试题绑定Go()函数跳转到ExamHome 页面;Exam 业面主要包括倒计时、单选、多选、自动滑动下一题、结果记录、交卷等功能;ExamResult 页面在微信公众平台订阅消息模块配置完善模板消息内容,将模板Id 配置到SendMessage 云函数和小程序对应字段,并联调小程序和云函数对应的模板字段内容,一旦学生发送消息,授课教师将收到微信推送的模板消息。

3.3 课件管理模块

目前,高校课件通常为各学科代表收集后发布在班级群,很少分类、章节、目录的管理课件,造成学生搜寻课件的时间成本较高、体验较差。本文设计的学习平台利用云存储方法存储、管理课件,教师可通过CMS 内容管理系统上传、下架课件,以便于学生在小程序端实时查看每章节对应的课件,文件类型支持WORD、PDF、PPT 等多种格式。

具体开发时,在Pages文件夹新建BookShelf页面,主要功能为打开、查看文件,核心代码如下:

3.4 教材管理模块

本文设计的学习平台提供了教材管理,学生上课或课后均可打开平台中的教材进行学习,便于学生日常学习。相类似的,教材管理也通过CMS 内容管理系统进行小程序的数据交互,支持文件类型也一致。开发时,在Pages 文件夹新建Book 页面,主要功能与课件管理一致,但采用的布局和查询数据库不同,具体差异如下:

3.5 统计分析模块

为了让教师更好的掌握学生学习状况或让学生了解自身学习情况,本文设计的学习平台基于数据库记录的答题、作业信息实现了统计分析模块。通过该模块教师可发现学生学习中存在的问题,方便因材施教和针对性地调整教学内容;学生也可查看错题和排名,将学习情况分享到朋友圈。

具体开发时,需在Pages 文件下新建History、Note 页面,分别对应成绩记录和错题记录。成绩记录包含答题时间、答题得分和答题用时,点击记录将显示本次答题中错误的题目列表,若无错题则提示返回。错题记录中分为答题模式和背题模式,复用了答题模块组件。

4 实施效果

学习平台开发完成后,可在微信开发者工具中点击上传按钮,填写版本号和项目备注即可完成上传,待官方人员审核通过后即可进行发布。为验证平台运行的稳定性,在选修本课程的2021-2022 学年第1 学期184 名学生中试用所设计的学习平台,经测试各项功能均正常。

为进一步评估学习平台在学生学习云计算课程方面的实际效果,将2020-2021 学年第1 学期选修本课程的149名学生的学习效果作为对照组进行比较。具体的,通过问卷调查2020-2021 学年第1 学期、2021-2022 学年第1 学期学生的课堂、课后学习兴趣,并结合期末考试不及格率进行深入分析。

调查结果表明,该课程的学生学习兴趣由45%提升到84%,原因是学习平台的教材学习、课件学习、在线习题和错题查看等模块为学生学习提供了极大的便利。此外,师生间快速交互、学习排行榜查看、朋友圈分享等功能模块能显著提升学生学习兴趣。一旦学生学习兴趣提升,不仅会在课程学习中投入更多时间,还能明显提升学习效率。实验表明,该课程的及格率由22%降到4%左右。

综上,实践结果证实了所设计的平台能切实提升学生学习兴趣和效果,降低学生的不及格率。

5 结语

本文基于热门的微信小程序开发了一个云计算学习平台,并将其应用于云计算课程的学习过程中,支持学生通过安卓手机、苹果手机、电脑等工具进行访问,既让学生能够课后自主学习、完成相关答题,还生成了相关排行榜,允许学生将学习记录分享到朋友圈。通过这些功能为生生、师生之间营造出良好的互动交流氛围。

实践结果表明,分析学生学习记录可有效指导云计算授课教师进行更具针对性的教学安排,一方面能提升学生学习质量,另一方面改善了学生学习体验,对提升教学质量具有一定的积极作用。

然而,平台设计还在不断更新迭代中,技术领域还有许多内容亟待革新。总体而言,平台后期应用范围将逐步扩大,功能也会逐步健全,具有更加广阔的发展空间。

猜你喜欢

错题页面答题
刷新生活的页面
邀你来答题
邀你来答题
邀你来答题
邀你来答题
笑笑的错题
聚焦数列中的易错题
网站结构在SEO中的研究与应用
浅析ASP.NET页面导航技术