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