謝作如 李琦
在上課過程中,要了解學(xué)生的學(xué)習(xí)掌握情況,教師通常用提問的方式,讓學(xué)生舉手反饋。但是,用舉手的方式來統(tǒng)計結(jié)果顯然不夠精確,而且只能用于判斷題。在一些智慧課堂中,教師常常會借助可以在線統(tǒng)計結(jié)果的答題系統(tǒng),設(shè)計以選擇題為主的課堂練習(xí),學(xué)生則使用平板電腦、手機(jī)之類的智能終端,及時反饋練習(xí)的結(jié)果。
因為課堂管理的問題,學(xué)生人手一臺平板電腦或者手機(jī),對許多學(xué)校來說還很難普及,比較常見的做法是購買手持式課堂答題器。其實,利用創(chuàng)客空間中的開源硬件,可以自主開發(fā)一個簡單的課堂答題器,用低成本的方式實現(xiàn)課堂練習(xí)的實時反饋。
● 技術(shù)分析
課堂答題器是一個典型的信息系統(tǒng)。從原理上看,課堂答題器一般由答題終端、服務(wù)器和結(jié)果統(tǒng)計模塊三大部分組成。答題終端接受學(xué)生輸入的答案,并將身份標(biāo)識信息和答案發(fā)送給服務(wù)器;服務(wù)器負(fù)責(zé)接收數(shù)據(jù),處理后存入數(shù)據(jù)庫;統(tǒng)計結(jié)果模塊以圖示的形式呈現(xiàn)答題的統(tǒng)計結(jié)果,供教師訪問查看。系統(tǒng)工作流程如圖1所示。
筆者在編寫浙江教育出版社出版的教育《開源硬件項目設(shè)計》時,曾經(jīng)用micro:bit設(shè)計了一個類似的課堂答題器。因為micro:bit不支持Wi-Fi,所以只能利用無線廣播技術(shù),在服務(wù)器上增加一塊micro:bit作為信息接收機(jī),再通過串口采集數(shù)據(jù)到數(shù)據(jù)庫,過程有點(diǎn)復(fù)雜。在掌控板發(fā)布后,筆者修改了代碼,直接在服務(wù)器上運(yùn)行Web服務(wù),掌控板通過Wi-Fi提交答題結(jié)果,少了一個環(huán)節(jié),操作就簡潔多了。
用Python的Flask框架編寫一個Web服務(wù)器并不復(fù)雜。在數(shù)據(jù)庫方面,自然選擇了Python內(nèi)置的Sqlite。而這個數(shù)據(jù)庫僅僅用于存儲數(shù)據(jù),一個表(STU_ANS)、兩個字段就可以了,如下頁圖2所示。其中STU用來存儲學(xué)生標(biāo)識信息,ANS存儲答案。
● 硬件搭建
因為micro:bit的輸入按鈕只有A和B,作為課堂終端總感覺捉襟見肘。為了能夠正確輸入,筆者借鑒了空調(diào)遙控器的控制方式,即用一個按鈕來循環(huán)切換答案,另一個按鈕表示確定。
當(dāng)更換為掌控板后,這個問題就不復(fù)存在了:掌控板有6個觸摸鍵,可以組合出很復(fù)雜的操作。答題終端只需一塊掌控板和供電底板,不需要外接任何電子模塊。筆者在網(wǎng)上找了一下,發(fā)現(xiàn)盛思設(shè)計的掌控寶、桃李科教設(shè)計的百靈鴿等擴(kuò)展板,采用的是堆疊式設(shè)計,方便手持操作和隨身攜帶,很適合作為答題終端。如圖3所示,就是加了硅膠外套的掌控寶,看起來很有產(chǎn)品的“質(zhì)感”。
● 代碼編寫
在課堂答題器項目中,軟件設(shè)計是重點(diǎn),大部分功能都需要軟件來支撐。要考慮多終端的區(qū)分,還要用友好的界面呈現(xiàn)答題統(tǒng)計結(jié)果等。
1.多終端區(qū)分的功能設(shè)計
“多終端區(qū)分”顯然是一個重要的功能需求,因為要記錄每一位學(xué)生的答題情況。實現(xiàn)用戶身份標(biāo)識的方式很多。例如,獲取某一設(shè)備的序列號,并將序列號作為唯一標(biāo)識;給設(shè)備進(jìn)行編號,保證編號是不重復(fù)的,便可以作為標(biāo)識;使用設(shè)備的IP地址,用IP地址作為唯一標(biāo)識等。
如果使用的終端很多,采用IP地址作為唯一標(biāo)識的方式比較合適,因為這樣做不需要給每一個掌控板燒錄不一樣的固件,只需要在路由器上給掌控板的MAC地址分配固定IP。而如果只有十來個終端,直接編號再刷寫固件也很方便。
2.Web服務(wù)器代碼編寫
Web服務(wù)器需要提供多個接口,每一個接口都是一個唯一的URL,如接收答題數(shù)據(jù)、返回統(tǒng)計結(jié)果等。返回數(shù)據(jù)采用標(biāo)準(zhǔn)的Json格式,具體規(guī)劃如下表所示。
統(tǒng)計結(jié)果的算法比較簡單,只要不斷累加即可,參考代碼如下頁圖5所示。
因為代碼較長,這里就不再提供具體的Python代碼。如有需要,請訪問GitHub:https://github.com/xiezuoru/xzrbook。
3.掌控板的代碼編寫
掌控板的代碼并不長,核心功能是連上Wi-Fi,然后在OLED上顯示操作提示。通過觸摸鍵更新答案,按下B鍵則提交答案到服務(wù)器。不得不說,使用MicroPython的urequests庫實現(xiàn)HTTP協(xié)議的網(wǎng)頁訪問操作非常簡單。核心代碼如下頁圖6所示。
● 產(chǎn)品測試
將掌控板的代碼下載到掌控板上后,開始測試這個答題系統(tǒng)。首先要運(yùn)行Web服務(wù),界面如下頁圖7所示。
打開掌控板的電源開關(guān),等待數(shù)秒后,掌控板連上Wi-Fi,其OLED屏幕上會顯示操作信息。選擇答案后提交,顯示信息如下頁圖8所示。
打開瀏覽器,訪問http://127.0.0.1:8080,即可看到一個簡單的結(jié)果統(tǒng)計網(wǎng)頁,如下頁圖9所示。
為了方便教師上課管理,筆者還特意設(shè)計了一個簡單的網(wǎng)頁,用瀏覽器打開后,就能設(shè)置正確答案,查看答題情況,或者清除當(dāng)前答題記錄,如圖10所示。
筆者曾經(jīng)在一堂小規(guī)模的公開課中,使用過這個課堂答題器。無論是從性能的穩(wěn)定還是使用的便捷方面去比較,它和購買的課堂答題器產(chǎn)品差別并不大。部分學(xué)生了解了運(yùn)行原理后,還提出一些很不錯的想法,如將題目內(nèi)容直接發(fā)送到掌控板上通過OLED顯示屏顯示出來,答題結(jié)束后告訴學(xué)生是否正確。當(dāng)學(xué)生掌握了開源硬件的基本操作后,就多了一個能實現(xiàn)創(chuàng)意的工具。智慧校園和智慧課堂,都將成為學(xué)生發(fā)揮創(chuàng)意的技術(shù)實踐場,這正是我們努力的方向。