亓祥元+嚴冬梅
摘 要: 設(shè)計和實現(xiàn)了基于Android平臺的課程學習系統(tǒng);采用軟件工程的方法,在需求分析的基礎(chǔ)上設(shè)計了系統(tǒng)總體架構(gòu)及功能,并使用Eclipse+ADT開發(fā)客戶端應用程序、MySQL進行數(shù)據(jù)庫管理、Spring+Hibernate+Apache等提供后臺服務和管理。該系統(tǒng)的設(shè)計與實現(xiàn)對移動學習的研究與應用具有參考價值。
關(guān)鍵詞: 移動學習; SPOC; Android; 移動應用程序
中圖分類號:TP319 文獻標志碼:A 文章編號:1006-8228(2016)06-48-04
Abstract: A curriculum learning system for Android is designed and implemented. Using the method of software engineering, on the basis of the requirement analysis, the overall structure and functions of the system are designed. Eclipse+ADT are used to develop the client application, MySQL to manage the database, and Spring+Hibernate+Apache to provide background service and management. The design and implementation of the system has a reference value for the research and application of mobile learning.
Key words: mobile learning; SPOC; Android; mobile application
0 引言
移動學習(Mobile Learning,簡稱M-Leaning)是指利用無線移動通信網(wǎng)絡(luò)技術(shù),以無線移動通信設(shè)備(如PAD、智能手機等)獲取教育信息、教育資源、教育服務的一種新型數(shù)字化學習形式[1]。
移動學習具有便攜性、碎片式、交互性、及時性、個性化學習的特點,可以做到anyone、anytime、anywhere地進行自由式學習,可以有效緩解傳統(tǒng)教育的課堂教學壓力。在高校的大學生中,幾乎每人都擁有一臺智能手機,使利用手機進行移動學習成為可能。
慕課(Massive Open Online Course,大型開放在線課程,簡稱MOOC)在我國的迅速推廣和成長,帶來了學習理念、學習方式的變革,但是,也存在著學分認證難、課程流失率高、學生管理欠缺等問題[2]。目前雖出現(xiàn)了各種在線學習平臺,如愛課程、網(wǎng)易等慕課平臺,但其發(fā)揮的作用有限,只是少數(shù)學生課余學習的平臺,不能為高校課程教學提供更有效的幫助。與幕課相比,SPOC(Small Private Online Courses,小型私密在線課程)更具吸引力,它既具有大規(guī)模在線開放課程的優(yōu)點,又能彌補傳統(tǒng)課堂教學的不足,充分利用先進的計算機技術(shù),幫助教師完成課程教學管理。
適用于高校課程教學的SPOC系統(tǒng),應包括教師使用的管理平臺和學生使用的學習平臺,其中的學習平臺又可以分為適用于PC網(wǎng)絡(luò)學習系統(tǒng)和適用于移動設(shè)備的移動學習系統(tǒng)。在眾多的移動平臺中,基于Linux的自由、開放源代碼的Android操作系統(tǒng)得到眾多運營商和設(shè)備商的全面支持。本文研究的高校課程移動學習系統(tǒng)正是基于Android平臺的SPOC移動客戶端應用系統(tǒng),其具有較高的應用價值。
1 需求分析
1.1 系統(tǒng)目標
基于Android平臺的高校移動學習系統(tǒng)的目標就是使學生可以利用Android手機隨時隨地地進行課程學習,并在學習過程中實現(xiàn)交流互動與知識分享。使用該移動學習系統(tǒng),學生可以瀏覽教師發(fā)布的公告、觀看課程視頻、下載課件等,可以在線完成教師布置的作業(yè)、在線進行測試,還可以針對自己的學習情況進行大量的在線練習,最終達到課程學習標準。
高校課程移動學習系統(tǒng)是高校課程教學的有效補充,有助于“教與學”并重。一方面,教師對課程的要求體現(xiàn)在課程作業(yè)、習題與教學進度的把握上,教師可以及時了解學生的學習狀況,并在課堂上進行針對性地講解輔導;另一方面,學生根據(jù)需要觀看視頻、課件,并通過習題測試及時掌握自身學習狀況,有的放矢地學習。
1.2 系統(tǒng)功能
該課程學習系統(tǒng)的主要功能包括:登錄管理、用戶管理、課程管理、課程學習、課程練習、成績查詢和課程論壇等功能。
⑴ 登錄管理主要包括學生登錄和忘記密碼處理,學生登錄之后才能使用該系統(tǒng)。
⑵ 用戶管理,主要指學生個人基本信息的維護,特別是學生要綁定手機或郵箱,以便將來可以找回密碼和接收系統(tǒng)的重要通知。
⑶ 課程管理,主要指查詢課程、申請課程、瀏覽已注冊課程(包括即將開始的、正在進行的和已經(jīng)完成的)、注銷尚未開課的課程。
⑷ 課程學習,是學習系統(tǒng)的核心,學生進行學習的方式包括觀看視頻、下載學習資料、完成作業(yè)、單元測試。整個課程的學習是在授課教師規(guī)定的章節(jié)和進度下進行的,充分體現(xiàn)出教師的教學思路和教學要求,同時,學習是在學生喜歡的時間、地點、方式下進行,又體現(xiàn)出自主學習的特點。
⑸ 課程練習,學生可以根據(jù)自身掌握知識的情況,有選擇性地進行大量的在線練習。因為可以實時得到反饋,所以可以幫助學生更好地找到薄弱環(huán)節(jié),更有針對性地學習。
⑹ 查詢成績,學生可以及時了解自己的學習進度和成績情況,對大局了如指掌。
⑺ 課程論壇,學生可以針對各章節(jié)的學習內(nèi)容、作業(yè)等提出問題,與教師和其他學生進行互動,回答他人的問題,分享自己的經(jīng)驗。
2 系統(tǒng)設(shè)計
2.1 基本架構(gòu)
基于Android平臺的移動學習系統(tǒng)包括服務器應用程序和客戶端應用程序兩部分。系統(tǒng)采用Client/Cloud總體架構(gòu),其拓撲結(jié)構(gòu)如圖1所示,該系統(tǒng)將支持基于Android的移動設(shè)備通過Wi-Fi或3G/4G無線網(wǎng)絡(luò)連接云服務器進行在線學習。
移動學習系統(tǒng)的客戶端主要包括Android智能手機以及Android平板電腦等基于Android操作系統(tǒng)的便攜式設(shè)備,用戶通過便攜的移動終端設(shè)備進行課程訪問和學習等。
移動學習系統(tǒng)的服務器主要由資源服務器和數(shù)據(jù)庫服務器兩部分組成。資源服務器用于存儲和管理課程學習資源以及處理在線的交互信息包括學生提問、老師答疑等。數(shù)據(jù)庫服務器的主要功能是存儲學生、課程、習題等信息。
系統(tǒng)采用HTTP協(xié)議進行通信,利用JSON格式傳輸數(shù)據(jù),客戶端利用HttpURLConnection或者HttpClient建立與服務器的連接,服務端通過Struts欄截客戶端URL請求,通過Http Post獲取參數(shù)、查詢數(shù)據(jù)庫,進而生成XML或JSON格式的數(shù)據(jù),通過Http Response返回給客戶端[3]。
2.2 系統(tǒng)邏輯結(jié)構(gòu)
本系統(tǒng)采用MVC框架(Model-View-Controller,即“模型-視圖-控制器”)[4]。
模型層主要負責業(yè)務流程的處理,包括基于HTTP的客戶端-服務器端的數(shù)據(jù)通信、JSON或XML的解析及與模型對象的轉(zhuǎn)換、資源緩存、本地數(shù)據(jù)的持久化等業(yè)務。
視圖層是平臺和用戶的交互界面,負責接收用戶輸入的請求,并顯示請求的響應結(jié)果。
控制層調(diào)度和控制模型層和表示層,實現(xiàn)業(yè)務流程的控制,主要業(yè)務功能模塊有:課程學習、視頻資源學習、資訊內(nèi)容、用戶信息和學習工具與支持等。
2.3 數(shù)據(jù)庫設(shè)計
該系統(tǒng)使用關(guān)系型數(shù)據(jù)庫MySQL,系統(tǒng)的主要ER圖2所示。數(shù)據(jù)庫的實際應用情況較復雜,例如習題按照類型分為單選題、多選題、判斷題、填空題等,篇幅所限,我們不全部呈現(xiàn)所有實體聯(lián)系,這里只呈現(xiàn)和移動客戶端關(guān)系比較密切的一部分。
2.4 界面流程設(shè)計
移動學習系統(tǒng)的界面流程設(shè)計如圖3所示。
3 系統(tǒng)實現(xiàn)
移動學習系統(tǒng)采用C/S架構(gòu),由客戶端和服務器端兩部分組成。
3.1 客戶端Android應用程序
Android程序中Activity作為其最基本的組成部分,幾乎每一個界面窗口都是一個Activity,在每個Activity中做好相應界面的布局,例如TextView、Button、ListView等基本控件在布局文件中的使用,同時用到布局的嵌套。例如在相對布局中可以嵌套線性布局,結(jié)合Weight等屬性,便可以控制各個控件的相對位置以及擺放位置,以保證用戶良好的視覺感受和體驗。
由于Activity的啟動需要一定的響應時間,所以在一個Android程序中使用過多的Activity勢必會影響其運行速度。為改善這一問題,可以結(jié)合Fragment來實現(xiàn)界面的分欄效果,即一個Activity對應幾個Fragment,每一個Fragment對應一個界面的布局以及不同數(shù)據(jù)的顯示。例如:在主頁和一些頁面中,界面底部對應“主頁、我的課程、用戶管理”這三個狀態(tài),如圖4(a)所示,當分別點擊時會出現(xiàn)該狀態(tài)下對應的數(shù)據(jù)查詢結(jié)果,同時用戶點擊過程中會出現(xiàn)顏色的改變和所在狀態(tài)的位置凸顯,表明用戶當前的狀態(tài)。
當進入一個課程的學習,利用SlideMenu來實現(xiàn)窗口的隱藏和顯現(xiàn)。該效果的實現(xiàn)是將SlideMenu作為一個自定義控件放入一個界面布局文件中,同時通過左上角圖片的點擊事件或左右手勢滑動控制該布局的顯示與隱藏。同理,在視頻播放列表和資料下載界面用兩個Fragment共用一個Activity。系統(tǒng)中的一些主要界面如圖4所示。
3.2 后臺服務器端的實現(xiàn)
客戶端應用程序通過Wifi或3G、4G等方式連接到Web服務端,通過接口獲得服務器端JSON數(shù)據(jù)格式的數(shù)據(jù),然后解析JSON數(shù)據(jù)并進行邏輯處理。為了實現(xiàn)手機通過Http協(xié)議請求數(shù)據(jù)的方法,應先在服務器發(fā)布其相關(guān)的服務,具體服務發(fā)布如下。①創(chuàng)建一個查詢結(jié)果的類,對應于查詢目標表,也可以利用Hibernate將數(shù)據(jù)庫中表進行反轉(zhuǎn),自動封裝為一個類。在該類中將各個字段信息封裝為屬性,并實現(xiàn)對每一個屬性的get和set方法。②創(chuàng)建一個關(guān)于數(shù)據(jù)庫查詢的類,在其中定義函數(shù),完成查詢數(shù)據(jù)庫的功能,并以List的形式返回查詢結(jié)果集。③創(chuàng)建一個父類是HttpServlet的servlet類,并實現(xiàn)其doGet或doPost方法。在方法中完成對服務器從數(shù)據(jù)庫中查詢到的數(shù)據(jù)按照JSON格式進行組織和傳輸。④部署到容器中,發(fā)布并進行網(wǎng)頁訪問測試,根據(jù)Http協(xié)議,測試時在瀏覽器中輸入地址與參數(shù)即可調(diào)用servlet服務。⑤將對應數(shù)據(jù)表中數(shù)據(jù)的查詢結(jié)果類導出為包。
Android應用程序中采用的是通過URL連接進行請求和輸入輸出的方式。
首先創(chuàng)建一個連接類,在其中實現(xiàn)一個httpPost方法。根據(jù)服務器ip地址、端口和服務器端設(shè)置的虛擬路徑設(shè)置URL,通過HttpURLConnection方式發(fā)送Http Post請求,通過HttpURLConnection類的一個實例設(shè)置連接參數(shù)和請求參數(shù),并且建立輸出流并寫入發(fā)送數(shù)據(jù),最后獲得響應流,并以string的形式作為函數(shù)的返回值返回。
然后創(chuàng)建一個與web服務端相同的查詢結(jié)果的類,并在接收到并解析JSON數(shù)據(jù)后,根據(jù)類的屬性按鍵取值循環(huán)地創(chuàng)建該類的實例并保存在一個List中。
最后創(chuàng)建一個父類為BaseAdapter的類,實現(xiàn)其中的getView方法,針對JSON中數(shù)據(jù)所封裝的List,循環(huán)地完成對自定義item中TextView控件的數(shù)據(jù)設(shè)置。
4 結(jié)束語
本文基于Android平臺設(shè)計與實現(xiàn)的學習系統(tǒng)可以廣泛應用于智能手機、平板電腦、PDA等便攜式設(shè)備。使用該系統(tǒng),學生可以在任何時間、地點,進行個性化的學習,對提高教學質(zhì)量有很大幫助。該系統(tǒng)是高校SPOC學習系統(tǒng)的移動端應用系統(tǒng),其處處體現(xiàn)出教師對于課程學習的要求和管理,后臺管理系統(tǒng)的設(shè)計與實現(xiàn)非常復雜,也是至關(guān)重要的。后續(xù)的研究還需要加強數(shù)據(jù)分析和數(shù)據(jù)挖掘,使教師掌握學生的學習習慣和學習規(guī)律,更好地組織學習資源,合理安排學習進度,實現(xiàn)更好的學習效果。
參考文獻(References):
[1] Aleksander Dye et al: Mobile Education-A glance at the
future[EB/OL].http://www.nettskolen.com/forskning/mobiie_education.pdf
[2] 蘇小紅等.基于MOOC+SPOC的混合式教學的探索與實踐[J].
中國大學教學,2015.7:60-65
[3] 李剛.輕量級Java EE企業(yè)應用實戰(zhàn):Struts2+Spring4+
Hibernate整合開發(fā)(第4版)[M].電子工業(yè)出版社,2014.
[4] [美]戴克(Paul Deck)著,林儀明,崔毅譯.Spring MVC學習指
南[M].人民郵電出版社,2015.