李霞
(南京师范大学泰州学院信息工程学院,泰州225300)
计算机基础是面向非计算机专业大学生的公共课,其教学内容包括理论和实践。实践部分主要包括Windows和Office软件的操作。理论部分主要包括:计算机信息技术、计算机组成原理、操作系统、计算机网络、多媒体以及数据库方面的基础知识。实践部分有着较强的可操作性、实用性,学生掌握良好[1-5]。理论部分涉及较多的原理和概念,需要记忆的知识点较多,学生不重视,会觉得枯燥,从而导致学习效果不理想,但计算机理论可以培养学生的抽象思维能力和分析问题能力,对学生的信息素养有着举足轻重的作用,所以设计了基于微信小程序的计算机基础测试系统。该系统可以辅助学生利用碎片化的时间对所学理论知识进行巩固,加深理解,从而更好地掌握所学知识。
微信小程序采用MINA应用框架。框架主要包含:页面视图层和应用逻辑层。页面视图层由wxml与wxss文件组成,处理事务交给AppService应用逻辑层处理,视图层和逻辑层通过JSBridge实现通信。MINA框架封装了文件系统、网络通信、任务管理等基础功能,对上层提供JavaScript API,开发者可以使用微信客户端提供的各种功能,快速构建应用[6-10]。
Bmob是广州市闭幕网络科技有限公司推出的一个全方位一体化的后端服务平台,它提供实时数据和文件存储。通过该平台可以轻松搭建应用数据库,并提供可视化的云端数据表设计界面,能存储String(字符串)、Number(数值,包括整数和浮点数)、Boolean(布尔值)、Date(日期)、File(文件)、Geopoint(地址位置)、Array(数组)、Object(对象)等多种不同类型的数据。在Bmob后端服务云平台上,开发者注册账号后,可以创建多个云端数据库,下载对应版本的SDK并将其嵌入到开发者的移动应用程序中,就可以对云端数据库进行增、删、改、查等操作[11-15]。
计算机基础测试系统主要是帮助学生进行理论知识的学习与掌握,系统通过tabBar进行功能的切换。该系统主要包括登录模块、学习模块、测试模块。
(1)学习模块:学生默认进入学习模块,该模块无需登录就可以根据相应章节查看习题,该模块显示题目以及参考答案和解析。
(2)登录模块:当学生需要进行测试时,需要进行登录[16-17]。输入学号、密码,选择院系,进入考试模式,登录时将输入的信息与Bmob云端数据进行匹配,如果输入有误则进行相应的提示,如果正确,则进入考试模式。
(3)测试模块:学生进入考试模式后,系统从Bmob云端题库中随机抽取试卷。测试过程中,学生可以标注不确定的题目,便于后续复查。当考试时间到或者学生提交试卷后,将测试结果反馈给学生,并将成绩记录到云端成绩表中。
系统数据存储在Bmob云端,减少了开发成本,提高了开发效率。为了使Bmob后端云和小程序建立连接,在微信小程序中需要给Bmob后端云授权,同时在Bmob后端云要配置小程序的AppID和AppSecret。
学生进入测试模式时需进行登录验证,学生信息存储在学生信息表中,如表1所示。测试模块的试卷,存储在题库表中,如表2所示。学生交卷后的成绩要写入学生成绩表中,如表3所示。存储学生所在院系的信息表如表4所示。学习模块中的题库表与测试部分题库表结构类似,就不再列出。
表1 学生信息表(stud)
表2 题库表(tiku)
表3 学生成绩表(stuscore)
表4 学生院系表(dep)
当学生需要测试学习情况时,需要进行登录,输入正确的学号和密码,选择对应院系[18-19]。登录界面如图1所示。界面上方用view组件显示文本,中间用form、input、picker组件用来实现输入学号、密码以及院系的选择,下面用两个button组件显示登录和重置,两个button对应的form-type分别是submit和reset。通过对form表单绑定formsubmit和formreset事件用来监听登录和重置。
图1登录界面
当点击登录时,获取input组件中的学号、密码和院系,与Bmob云端数据比较,如果账号、密码、院系匹配则跳转到考试页面。要访问Bmob云,首先需要下载安装BmobSDK,该项目将“bmob-min.js”和“underscore.js”放到utils目录中,在登录页面对应的js文件中通过var Bmob=require("../../utils/bmob.js")进行初始化,同时需要在app.js中通过Application ID和REST APIKey进行全局初始化,初始化代码如下:
点击登录时,通过Query()方法分别从stud表和dep表中获取学生记录集和院系记录集,通过equalTo()方法判断字段是否相等,find()方法查找记录,如果查询结果记录条数大于0并且院系匹配,则进入考试,否则进行相应的提示。实现代码如下:
考试界面综合运用了view、text、button、radiogroup、radio组件,通过flex布局以及条件渲染实现。考试界面如图2所示。当点击“退出”则退出考试,返回到登录界面。通过“标记”按钮可以标记不太确定的题目,使题目呈红色高亮显示,便于复查。通过“上一题”和“下一题”进行题目的切换,通过“交卷”提交试卷,交卷后可以查看答案以及知道得分情况。
图2正式考试界面
3.2.1计时模块
当进入考试界面时,在页面加载的onLoad()方法中需要获取数据库中的试卷。获取从登录页面传递的学号、院系、考试时间。根据获取时间实现计时功能,每一秒更新一次时间。获取的时间是以秒为单位,通过公式转换成相应的时、分、秒,便于界面显示。计时代码如下所示:
3.2.2题目显示
试卷的产生,是通过产生随机数的方式,从20套试卷中抽取一套。根据产生的随机试卷编号调用find()方法从试题库中获取题目,先将试卷内容存入本地testdetail[]数组中,然后再通过setData()方法更新界面中显示的题号、题目内容以及选项。
3.2.3交卷实现
当点击“交卷”按钮,在界面中通过条件渲染改变“交卷”按钮的状态,避免重复提交,然后将学生的答案与标准答案进行比较,计算得分。一套试卷共50道题,每道题2分,最后通过wx.showModal()方法展示结果。判断代码如下:
为了方便教师进行学生学习记录以及得分的统计,从而有针对性地开展课堂教学,以及开展对教学的多元化评价,需要将学生的每次的时间、学号、试卷编号、得分等保存到数据库中。通过调用save()方法将测试结果保存到stuscore表中。插入的分记录的代码如下:
微信小程序具有无需下载和安装的轻量化特征,可自动适配iOS系统和Android系统,充分发挥了移动互联网时代入口轻量化的优势。学生在使用过程中无需考虑手机系统问题,借助微信平台,使用非常方便[20]。基与微信小程序的计算机基础测试系统方便学生利用碎片化的时间进行理论知识的学习与测试,强化理论知识的理解,同时也提高了学生的学习积极性,理论知识的掌握情况有了很大的改善,整体提高了大学计算机基础的学习效率。