劉學(xué)楓++范圣強(qiáng)
摘要:隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的蓬勃發(fā)展,高校教學(xué)信息化的建設(shè)也在不斷地進(jìn)步。但是對于課堂教學(xué)的管理來說,現(xiàn)有的教學(xué)模式仍然存在教學(xué)效率低下的問題。該文將闡述如何設(shè)計(jì)和實(shí)現(xiàn)一套能使課堂教學(xué)向數(shù)字化、無紙化、智能化和綜合化方向發(fā)展的基于iOS平臺(tái)的智慧課堂管理系統(tǒng)。該系統(tǒng)采用MVVM設(shè)計(jì)模式,利用WebServe協(xié)議和Core Data技術(shù),實(shí)現(xiàn)在線考試、教學(xué)資源管理、考勤簽到等功能,極大地提高了課堂教學(xué)效率。
關(guān)鍵詞:iOS;在線考試;課堂教學(xué);簽到
中圖分類號:TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號:1009-3044(2016)17-0066-03
盡管當(dāng)前已經(jīng)存在許多方便課堂管理的軟件,且這些軟件都在一定程度上發(fā)揮著現(xiàn)代互聯(lián)網(wǎng)技術(shù)的優(yōu)勢,但課堂教學(xué)在模式上仍然是分離的。譬如,在考試時(shí),教師需要事先在電腦上編輯試卷然后打印,學(xué)生答題后的試卷需要大量的人力進(jìn)行批改、登記分?jǐn)?shù)從而得到學(xué)生的平均分?jǐn)?shù)、成績排名等統(tǒng)計(jì)數(shù)據(jù);在分發(fā)教學(xué)資源時(shí),往往需要教師或者班級管理人員事先打印多份教學(xué)資源進(jìn)行分發(fā)或者通過QQ、微信等群組分發(fā);而進(jìn)行簽到時(shí),則需要教師事先準(zhǔn)備花名冊。諸如此類的教學(xué)活動(dòng),不但需要耗費(fèi)教師大量的精力,造成紙張資源的浪費(fèi),與當(dāng)前互聯(lián)網(wǎng)時(shí)代所要求的電子化的趨勢格格不入,而且在這種教學(xué)模式下,各種課堂活動(dòng)相對分散,完成不同的活動(dòng)需要不同的前期準(zhǔn)備。種種這般工作都大大地降低了課堂教學(xué)的效率。
本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于iOS平臺(tái)的集中化處理課前、課中和課后各個(gè)階段的所有教學(xué)活動(dòng)的系統(tǒng),旨在為教師提供一個(gè)一體化的課堂管理軟件,同時(shí)增加教師與學(xué)生之間的教學(xué)互動(dòng),提高課堂教學(xué)效率。
1 智慧課堂系統(tǒng)設(shè)計(jì)
1.1 系統(tǒng)功能需求
本系統(tǒng)的用戶主要分為教師和學(xué)生,因此系統(tǒng)的功能需求是從教師和學(xué)生兩個(gè)角色中分析。對于教師而言,系統(tǒng)要求具備試卷編輯和管理、分?jǐn)?shù)統(tǒng)計(jì)和分析、幻燈片演示、課程資源管理以及學(xué)生簽到等功能。而于學(xué)生而言,系統(tǒng)則具備測試、課程資源下載功能。
1.2 系統(tǒng)功能設(shè)計(jì)
由系統(tǒng)功能需求的結(jié)果出發(fā),基于iOS平臺(tái)的智慧課堂按功能設(shè)計(jì)劃分為三大功能模塊:考試模塊、教學(xué)資源管理模塊和簽到模塊。其中教學(xué)資源管理模塊中的幻燈片演示,將通過蘋果公司的AirPlay技術(shù)實(shí)現(xiàn)多屏互動(dòng),從而使教師的移動(dòng)范圍從講臺(tái)擴(kuò)大到整個(gè)課室中,增強(qiáng)與學(xué)生之間的互動(dòng)。系統(tǒng)總體功能結(jié)構(gòu)如圖1所示。
同時(shí),為了在更大程度上為教師和學(xué)生提供便利性,在本系統(tǒng)的設(shè)計(jì)中將不需要進(jìn)行用戶管理,由教師所持有的iOS平臺(tái)下的移動(dòng)設(shè)備作為唯一標(biāo)識(shí)并在該移動(dòng)設(shè)備上搭建服務(wù)器和數(shù)據(jù)庫,實(shí)現(xiàn)三大功能模塊。同時(shí),考慮到學(xué)生所持有的設(shè)備各不相同,要求學(xué)生統(tǒng)一使用iOS平臺(tái)的設(shè)備是不現(xiàn)實(shí)的,為此需要對學(xué)生的功能需求進(jìn)行跨平臺(tái)設(shè)計(jì),采用Web技術(shù)實(shí)現(xiàn)學(xué)生的功能需求。即是說,學(xué)生通過Web輸入教師從本系統(tǒng)發(fā)布的試卷或教學(xué)資源而生成的獨(dú)一的網(wǎng)絡(luò)地址,來進(jìn)行在線答題或資源下載等操作。
2 智慧課堂系統(tǒng)具體實(shí)現(xiàn)及關(guān)鍵技術(shù)
智慧課堂系統(tǒng)是基于Swift語言開發(fā)的,通過ReactiveCocoa實(shí)現(xiàn)了MVVM設(shè)計(jì)模式,采用Core Data技術(shù)搭建本地?cái)?shù)據(jù)庫,同時(shí)根據(jù)GCDWebServer網(wǎng)絡(luò)協(xié)議將移動(dòng)設(shè)備作為一個(gè)小型移動(dòng)服務(wù)器。而學(xué)生的功能需求設(shè)計(jì)框架則采用HTML+CSS+JavaScript的方法呈現(xiàn)。
2.1 MVVM設(shè)計(jì)模式
MVVM設(shè)計(jì)模式,又稱Model-View-ViewModel模式,是微軟WPF和Silverlight架構(gòu)師John Gossman于2005年提出的[1]。該設(shè)計(jì)模式與經(jīng)典的MVC模式一樣,將數(shù)據(jù)層,業(yè)務(wù)邏輯層以及表現(xiàn)層區(qū)分開來,但MVVM相比MVC來說,由于MVVM重新對數(shù)據(jù)進(jìn)行了再封裝,僅提供簡單有效的和數(shù)據(jù)交互的接口,降低了直接的耦合,從而提高了軟件的可測試性[2]。同時(shí),在iOS平臺(tái)上,MVVM設(shè)計(jì)模式結(jié)合ReactiveCocoa庫將會(huì)使得系統(tǒng)的開發(fā)事半功倍[3]。
2.2 數(shù)據(jù)庫實(shí)現(xiàn)
本系統(tǒng)的數(shù)據(jù)庫是基于Core Data框架搭建的。Core Data是一個(gè)模型層的技術(shù),能建立代表程序狀態(tài)的模型層,而且它不僅是一個(gè)加載、保存數(shù)據(jù)的框架,還能和內(nèi)存中的數(shù)據(jù)很好的共事[4]。Core Data對象圖如圖2所示,系統(tǒng)的E-R圖如圖3所示。
連接數(shù)據(jù)庫核心代碼如下:
2.3 服務(wù)器實(shí)現(xiàn)
學(xué)生的需求功能由于跨平臺(tái)的考慮以及所有的課堂行為都需要教師實(shí)時(shí)的發(fā)布,所以部署在網(wǎng)頁端,而沒有獨(dú)立開發(fā)APP。直接把教師所使用的設(shè)備作為服務(wù)器發(fā)布服務(wù),而不需要另外租借服務(wù)器。GCDWebServer是一個(gè)iOS上比較流行的、輕量級、基于GCD的服務(wù)器框架,該框架擁有設(shè)計(jì)良好的API,不依賴任何第三方庫,同時(shí)基于GCD事件驅(qū)動(dòng),滿足高性能和高并發(fā)要求。
2.4 PPT逐頁播放
在iOS上一直沒有逐頁播放PPT的API,只能通過UIWebView或者QuickLook框架將PPT展示成一張長圖片,長圖片的方式只能用來預(yù)覽,不方便教師進(jìn)行課堂展示、進(jìn)行筆跡標(biāo)注等。研究UIWebView源碼后發(fā)現(xiàn)可以內(nèi)嵌JavaScript代碼的方式進(jìn)行逐頁截取,關(guān)鍵代碼如下:
3 結(jié)束語
本系統(tǒng)的三大模塊能夠基本滿足課堂教學(xué)的各個(gè)階段,課前可以制作試卷、上傳或下載課堂教學(xué)資源;課中可以通過多屏互動(dòng)演示幻燈片;課后還可以進(jìn)行簽到考勤和成績統(tǒng)計(jì)分析。本系統(tǒng)下一步將對各個(gè)功能模塊進(jìn)行優(yōu)化和擴(kuò)充需求,增加課堂實(shí)時(shí)反饋系統(tǒng)、簡化試卷的編輯等。
參考文獻(xiàn):
[1] John Gossman Introduction to Model/View/ViewModel pattern for building WPF apps.[EB/OL] https://blogs.msdn.microsoft.com/johngossman/2005/10/08/introduction-to-modelviewviewmodel-pattern-for-building-wpf-apps/ 2005.10
[2] 劉立. MVVM模式分析與應(yīng)用[J]. 微型電腦應(yīng)用,2012(12):57-60.
[3] Ash Furrow Model-View-ViewModel for iOS[EB/OL] http://www.teehanlax.com/blog/model-view-viewmodel-for-ios/ .
[4] Daniel Eggert Core Data Overview[EB/OL] https://www.objc.io/issues/4-core-data/core-data-overview/ .