李霞
(南京師范大學泰州學院信息工程學院,泰州225300)
計算機基礎是面向非計算機專業(yè)大學生的公共課,其教學內容包括理論和實踐。實踐部分主要包括Windows和Office軟件的操作。理論部分主要包括:計算機信息技術、計算機組成原理、操作系統(tǒng)、計算機網絡、多媒體以及數據庫方面的基礎知識。實踐部分有著較強的可操作性、實用性,學生掌握良好[1-5]。理論部分涉及較多的原理和概念,需要記憶的知識點較多,學生不重視,會覺得枯燥,從而導致學習效果不理想,但計算機理論可以培養(yǎng)學生的抽象思維能力和分析問題能力,對學生的信息素養(yǎng)有著舉足輕重的作用,所以設計了基于微信小程序的計算機基礎測試系統(tǒng)。該系統(tǒng)可以輔助學生利用碎片化的時間對所學理論知識進行鞏固,加深理解,從而更好地掌握所學知識。
微信小程序采用MINA應用框架??蚣苤饕喉撁嬉晥D層和應用邏輯層。頁面視圖層由wxml與wxss文件組成,處理事務交給AppService應用邏輯層處理,視圖層和邏輯層通過JSBridge實現(xiàn)通信。MINA框架封裝了文件系統(tǒng)、網絡通信、任務管理等基礎功能,對上層提供JavaScript API,開發(fā)者可以使用微信客戶端提供的各種功能,快速構建應用[6-10]。
Bmob是廣州市閉幕網絡科技有限公司推出的一個全方位一體化的后端服務平臺,它提供實時數據和文件存儲。通過該平臺可以輕松搭建應用數據庫,并提供可視化的云端數據表設計界面,能存儲String(字符串)、Number(數值,包括整數和浮點數)、Boolean(布爾值)、Date(日期)、File(文件)、Geopoint(地址位置)、Array(數組)、Object(對象)等多種不同類型的數據。在Bmob后端服務云平臺上,開發(fā)者注冊賬號后,可以創(chuàng)建多個云端數據庫,下載對應版本的SDK并將其嵌入到開發(fā)者的移動應用程序中,就可以對云端數據庫進行增、刪、改、查等操作[11-15]。
計算機基礎測試系統(tǒng)主要是幫助學生進行理論知識的學習與掌握,系統(tǒng)通過tabBar進行功能的切換。該系統(tǒng)主要包括登錄模塊、學習模塊、測試模塊。
(1)學習模塊:學生默認進入學習模塊,該模塊無需登錄就可以根據相應章節(jié)查看習題,該模塊顯示題目以及參考答案和解析。
(2)登錄模塊:當學生需要進行測試時,需要進行登錄[16-17]。輸入學號、密碼,選擇院系,進入考試模式,登錄時將輸入的信息與Bmob云端數據進行匹配,如果輸入有誤則進行相應的提示,如果正確,則進入考試模式。
(3)測試模塊:學生進入考試模式后,系統(tǒng)從Bmob云端題庫中隨機抽取試卷。測試過程中,學生可以標注不確定的題目,便于后續(xù)復查。當考試時間到或者學生提交試卷后,將測試結果反饋給學生,并將成績記錄到云端成績表中。
系統(tǒng)數據存儲在Bmob云端,減少了開發(fā)成本,提高了開發(fā)效率。為了使Bmob后端云和小程序建立連接,在微信小程序中需要給Bmob后端云授權,同時在Bmob后端云要配置小程序的AppID和AppSecret。
學生進入測試模式時需進行登錄驗證,學生信息存儲在學生信息表中,如表1所示。測試模塊的試卷,存儲在題庫表中,如表2所示。學生交卷后的成績要寫入學生成績表中,如表3所示。存儲學生所在院系的信息表如表4所示。學習模塊中的題庫表與測試部分題庫表結構類似,就不再列出。
表1 學生信息表(stud)
表2 題庫表(tiku)
表3 學生成績表(stuscore)
表4 學生院系表(dep)
當學生需要測試學習情況時,需要進行登錄,輸入正確的學號和密碼,選擇對應院系[18-19]。登錄界面如圖1所示。界面上方用view組件顯示文本,中間用form、input、picker組件用來實現(xiàn)輸入學號、密碼以及院系的選擇,下面用兩個button組件顯示登錄和重置,兩個button對應的form-type分別是submit和reset。通過對form表單綁定formsubmit和formreset事件用來監(jiān)聽登錄和重置。
圖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并且院系匹配,則進入考試,否則進行相應的提示。實現(xiàn)代碼如下:
考試界面綜合運用了view、text、button、radiogroup、radio組件,通過flex布局以及條件渲染實現(xiàn)。考試界面如圖2所示。當點擊“退出”則退出考試,返回到登錄界面。通過“標記”按鈕可以標記不太確定的題目,使題目呈紅色高亮顯示,便于復查。通過“上一題”和“下一題”進行題目的切換,通過“交卷”提交試卷,交卷后可以查看答案以及知道得分情況。
圖2正式考試界面
3.2.1計時模塊
當進入考試界面時,在頁面加載的onLoad()方法中需要獲取數據庫中的試卷。獲取從登錄頁面?zhèn)鬟f的學號、院系、考試時間。根據獲取時間實現(xiàn)計時功能,每一秒更新一次時間。獲取的時間是以秒為單位,通過公式轉換成相應的時、分、秒,便于界面顯示。計時代碼如下所示:
3.2.2題目顯示
試卷的產生,是通過產生隨機數的方式,從20套試卷中抽取一套。根據產生的隨機試卷編號調用find()方法從試題庫中獲取題目,先將試卷內容存入本地testdetail[]數組中,然后再通過setData()方法更新界面中顯示的題號、題目內容以及選項。
3.2.3交卷實現(xiàn)
當點擊“交卷”按鈕,在界面中通過條件渲染改變“交卷”按鈕的狀態(tài),避免重復提交,然后將學生的答案與標準答案進行比較,計算得分。一套試卷共50道題,每道題2分,最后通過wx.showModal()方法展示結果。判斷代碼如下:
為了方便教師進行學生學習記錄以及得分的統(tǒng)計,從而有針對性地開展課堂教學,以及開展對教學的多元化評價,需要將學生的每次的時間、學號、試卷編號、得分等保存到數據庫中。通過調用save()方法將測試結果保存到stuscore表中。插入的分記錄的代碼如下:
微信小程序具有無需下載和安裝的輕量化特征,可自動適配iOS系統(tǒng)和Android系統(tǒng),充分發(fā)揮了移動互聯(lián)網時代入口輕量化的優(yōu)勢。學生在使用過程中無需考慮手機系統(tǒng)問題,借助微信平臺,使用非常方便[20]?;c微信小程序的計算機基礎測試系統(tǒng)方便學生利用碎片化的時間進行理論知識的學習與測試,強化理論知識的理解,同時也提高了學生的學習積極性,理論知識的掌握情況有了很大的改善,整體提高了大學計算機基礎的學習效率。