徐新愛 邱宏偉
摘要:Android課程學習系統(tǒng)有助于學生利用碎片化的時間進行自主學習,在一定程度上減小課堂教學負擔。文章以數(shù)據(jù)結構課程為例,開發(fā)了基于Android的課程學習系統(tǒng)。該系統(tǒng)采用C/S模型,以Java編程語言和Android studio工具來設計并開發(fā),服務器端以騰訊云提供的云服務器為基礎,利用My SQL數(shù)據(jù)庫存儲,Spring+Hibemate+Apache框架開發(fā)服務端程序,從需求分析、概要分析、詳細設計與實現(xiàn)做了詳細介紹,對移動學習系統(tǒng)的設計與應用具有一定的參考價值。
關鍵詞:數(shù)據(jù)結構;Android;云平臺;學習系統(tǒng)
中圖分類號:TP311
文獻標識碼:A
文章編號:1009-3044(2020)03-0101-03
1 背景
隨著計算機技術、網(wǎng)絡技術和通信技術的迅速發(fā)展,信息技術環(huán)境下的學習方式發(fā)生了重大變革,移動學習成為當前的研究熱點[1]。移動學習(Mobile Leaming,簡稱M-Leaning)是指利用無線移動通信網(wǎng)絡技術,以無線移動通信設備(如PAD、智能手機等)獲取教育信息、教育資源、教育服務的一種新型數(shù)字化學習形式[2]。其能夠有效改善傳統(tǒng)教學內容和教學時間死板等問題,促進學生自主和個性化學習[3-5]。移動學習平臺的存儲依“云”平臺而建。云服務器(Elastic Compute Service,簡稱ECS)是一種處理能力可彈性伸縮的計算服務f6]。目前,利用各大科技廠商提供的相關云服務來開發(fā)應用已經(jīng)非常常見。其中包括基于云平臺的課程資源提供平臺,如騰訊微云、網(wǎng)易公開課、中國大學MOOC平臺、國家精品課程資源共享平臺等都提供良好的課程資源進行共享,且能提供良好的云存儲服務[7]。
數(shù)據(jù)結構課程是計算機類專業(yè)的核心基礎課程,其在整個人才培養(yǎng)方案中承擔著重要角色,但所涉及的內容抽象、算法多、課時少等,尤其是課外實踐方面,由于學生主動學習能力不強,遇到問題無法及時解決而放棄,老師也無從針對性進行指導,看不到學生課外對此門課程的學習情況等,教學效果往往難以如愿,造成后續(xù)一系列相關課程學習出現(xiàn)問題。上課過程中經(jīng)常出現(xiàn)老師費勁地教,學生吃力地學的現(xiàn)象[8]。而移動學習具有便攜性、碎片式、交互性、及時性、個性化學習的特點,可以做到anyone、anytime、anvwhere地進行自由式學習,可以有效緩解傳統(tǒng)教育的課堂教學壓力。[9]
綜合移動平臺的優(yōu)勢以及當前數(shù)據(jù)結構課程教學過程中的問題,研究的主要內容集中在將移動互聯(lián)網(wǎng)技術融人教學中,完成教師和學生、學生和學生之間的問題答疑、討論,學生還可以通過視頻自主學習、完成作業(yè)等。[10]在眾多的移動平臺中,基于Linux的自由、開放源代碼的Android操作系統(tǒng)得到眾多運營商和設備商的全面支持。[11]本系統(tǒng)主要用到的Java技術包括Apache框架技術、Spring技術和Hibernate技術[12-3],采用MVC框架(Model-View-Controller,即“模型一視圖一控制器”)[14]。
2 系統(tǒng)需求分析
系統(tǒng)需求分析是對用戶需求所做的調查與分析,是系統(tǒng)設計、開發(fā)和維護的依據(jù)。[15]系統(tǒng)采用C/S架構。C/S架構是指軟件體系的客戶機/服務器結構。具體而言,將部分任務轉移到客戶端進行處理,從而減小服務器的負荷,平衡資源并保證數(shù)據(jù)的一致性和完整性。[16] C/S架構分為客戶端(用戶使用)、TCP/IP網(wǎng)絡以及服務器端(后臺),具有服務器端壓力小、儲數(shù)據(jù)及管理過程透明等優(yōu)點。[17]
2.1 客戶端功能需求
客戶端作為用戶進行相關操作的直接途徑,考慮到用戶的計算機水平參差不齊,對于所有提供的功能,需要為用戶提供對應易于操作的可視化界面。客戶端功能架構如圖1所示。
客戶端提供的功能主要有:
1)提供《數(shù)據(jù)結構》課程的相關知識點(圖文、算法實現(xiàn)代碼、算法實現(xiàn)動畫等)展示功能;
2)提供用戶通過郵箱注冊和用戶的信息修改功能;
3)通過接入第三方賬戶的SDK來提供第三方賬戶(QQ、微信)登錄和第三方賬戶綁定郵箱賬號的功能;
4)提供用戶發(fā)布文章和修改本人已發(fā)布的文章信息等的可視化界面接口;
5)提供用戶查看、評論、收藏、點贊、回復等查看和指正文章信息操作的可視化界面;
6)提供用戶其他操作的可視化界面。
2.2 服務端功能需求
服務端作為客戶端數(shù)據(jù)的提供者,同時也作為用戶數(shù)據(jù)的儲存者,一方面需要和客戶端進行對接,監(jiān)聽客戶端的相關請求并進行處理,處理完成之后將對應結果返回給客戶端.另一方面需要將客戶端傳人數(shù)據(jù)經(jīng)過處理后儲存到儲存介質中。服務端功能架構如圖2所示。
服務端提供的功能主要有:
1)創(chuàng)建用戶系統(tǒng),儲存不同類型(郵箱、QQ、微信)用戶的相關信息并支持用戶相關信息的修改;
2)創(chuàng)建社區(qū)文章管理系統(tǒng),管理所有用戶發(fā)布的文章和相關(點贊,評論等)信息;
3)監(jiān)聽客戶端請求,根據(jù)客戶端傳遞過來的信息來進行對應的處理;
4)提供相關的數(shù)據(jù)獲取(用戶信息、文章信息)接口來為客戶端提供用于展示的數(shù)據(jù)源;
5)提供相關的數(shù)據(jù)修改(用戶信息等)接口來為客戶端提供修改數(shù)據(jù)的功能;
6)提供其他的獲取和操作數(shù)據(jù)的功能。
3 概要設計與分析
客戶端程序和服務端程序之間通過計算機網(wǎng)絡進行數(shù)據(jù)交換,采用計算機網(wǎng)絡中應用層HTTP協(xié)議作為網(wǎng)絡協(xié)議,還需要一個完善的數(shù)據(jù)內容格式約定,這樣才能保證客戶端和云服務器都能夠“聽懂對方說的話”。目前,主流的客戶端與云服務器的文本數(shù)據(jù)交換格式有JSON和XML兩種,當傳送相同的數(shù)據(jù)時,使用JSON格式進行數(shù)據(jù)包裝所占用的體積比使用XML格式所占用的體積要小,同時在進行數(shù)據(jù)解析時,JSON格式的解析速度也會更快捷,對機器比較友好。而相對于JSON來說,XML格式的數(shù)據(jù)的可讀性會比較強,對人比較友好。由于客戶端與云服務器之間的數(shù)據(jù)傳輸和解析對效率要求較高,因此,采用JSON作為客戶端和云服務器之間的數(shù)據(jù)內容格式。
3.1 數(shù)據(jù)庫設計
根據(jù)功能需求,服務端數(shù)據(jù)庫需要建立兩類數(shù)據(jù)表來保存相關信息,分別為用戶信息表和文章信息表。其中用戶信息表用來保存用戶賬戶的信息,包含三個表,分別儲存郵箱賬戶信息、QQ賬戶登錄信息和微信賬戶登錄信息。
文章信息包括文章信息和該文章的評論信息兩部分,因此這部分需要兩個表:文章信息表和評論信息。文章信息表結構包括:文章ID、文章標題、文章內容URL、文章類別(文章/問題)、文章作者的郵箱賬戶ID、文章發(fā)布時間、文章最后修改的時間、文章的瀏覽量、文章所屬的領域、文章的被收藏數(shù)、文章得到的點贊數(shù)、文章的評論ID數(shù)組、文章狀態(tài)(是否可顯示)等,評論信息表結構包括:評論ID、評論內容、評論所屬的文章ID、評論用戶ID、評論發(fā)布時間、評論的父評論f當前評論回復的評論)ID、評論能否顯示等。
3.2 實體類設計
根據(jù)系統(tǒng)功能需求及數(shù)據(jù)庫表的設計,定義基礎的用戶信息類(BasicUserlnfo)、郵箱賬戶信息類(EmaiILoginUserlnfo)、QQ賬戶信息類(QQLoginUserlnfo)、文章信息類(Articlelnfo)和評論信息類(Commentlnfo等實體類作為數(shù)據(jù)模型,同時,定義以下功能模塊函數(shù):
1)用戶登錄:public Result login(String input,String pass-word);
2)用戶注冊:public Result register(String password,Stringemail);
3)發(fā)布文章:public Result insertArticle(Articlelnfo,String,String);
4)獲取社區(qū)文章:public Result allArticle(ArticleResult arti-clelnfo);
5)查看文章內容:getArticleContent(String)。
4 詳細設計與實現(xiàn)
4.1 課程資源模塊設計與實現(xiàn)
追求實用是移動學習資源的最顯著特點[18]。因此,將數(shù)據(jù)結構課程資源以可視化界面的形式展示出來是客戶端的核心功能之一,為了實現(xiàn)這個功能,需要自主編寫自定義結構的數(shù)據(jù)結構課程資源,主要內容包括:資源版本信息、資源文件URL和資源更新時間信息。
課程資源信息為xml格式文本,程序在進入主界面之后,會從云服務器中獲取該課程資源信息并解析。解析成功后通過Android系統(tǒng)UI框架在主界面展示。當用戶單擊某門課程時,首先會檢測本機是否存在課程資源文件,如果存在,則進入該課程所包含的章節(jié)目錄界面,否則下載課程資源文件,完成之后再進入章節(jié)目錄。
對于章節(jié),其資源文件存在一個名為contents.xml的文件,標識了該章節(jié)中所有的小節(jié)資源。客戶端在讀取并解析某個小節(jié)信息時會尋找對應的小節(jié)內容文件并解析。單擊章節(jié)時會解析章節(jié)信息中的第一個小節(jié)內容,完成后以圖形界面的形式展示,可以通過單擊標題右邊按鈕來選取小節(jié)顯示。
4.2 登錄功能設計與實現(xiàn)
當客戶端程序未檢測到登錄信息或者登錄信息過期時,會跳轉至登錄界面。用戶可以輸入賬戶和密碼進行登錄,單擊登錄按鈕之后會將數(shù)據(jù)打包發(fā)送給云服務器驗證賬號密碼信息是否合法(賬戶是否存在、賬戶密碼是否匹配),如圖3所示。
4.3 注冊功能設計與實現(xiàn)
在登錄界面可以單擊“去注冊”按鈕進入注冊界面,在注冊界面需要輸入賬戶、密碼和確認密碼信息來完成注冊。如圖4所示。
4.4 發(fā)布文章功能設計
如果當前用戶是使用郵箱賬戶登錄,則用戶在主頁界面可以單擊底層中間的按鈕來發(fā)布文章。用戶在編輯完成后單擊右上角的“發(fā)布”按鈕時客戶端先會將文章中的圖片上傳到云服務器上,發(fā)布文章流程如圖5所示。
5 結束語
針對數(shù)據(jù)結構課程線下教學過程中出現(xiàn)的問題,開發(fā)了基于Android系統(tǒng)的課程學習系統(tǒng)。本系統(tǒng)采用C/S架構,專用于課程的教學,具有注冊登錄、通知公告、課程信息發(fā)布、教學資源展示等功能。在接下來的工作中,我們將不僅僅采用基于自組織和自調節(jié)的社區(qū)結構[19]的推薦算法,構建個性化學習模型,更會關注用戶使用移動終端設備產(chǎn)生大量數(shù)據(jù),促使進一步研究大數(shù)據(jù)挖掘技術,讓系統(tǒng)更具有智能陛、交互性和完整性。
參考文獻:
[1]劉建設,李青,劉金梅,移動學習研究現(xiàn)狀綜述[J].電化教育研究,2007,28(7):21-25,36.
[2] Aleksander Dye et al:Mobile Education-A glance at thefuture[EB/OL]. http://www. nettskolen. com/forskning/mobiie_educa-tion.pdf.
[3] Troussas C,Virvou M, Alepis E.Collaborative learning: groupinteraction in an intelligent mobile-assisted multiple languagelearning system[J]. Informatics in Education. 2014, 13(2):279-292.
[4] Guo M, Qian K,Yang M, et al.Android- based mobile senso-ry system labware for embedded sys-tem education[C]// IEEE,International Conference on Advanced Leaming Technologies.IEEE, 2013: 118-119.
[5]楊威.基于android移動智能終端的教學信息平臺開發(fā)與研究[D].哈爾濱:哈爾濱工程大學,2015.
[6]胡珊.基于云計算技術構建教學云平臺[J]河北:當代教育實踐與教學研究,2017(3):1-4.
[7]駱金維.基于云平臺的高職院校課程資源共享系統(tǒng)設計與實現(xiàn)[D].廣州:華南理工大學,2018.
[8]吳桂芹,數(shù)據(jù)結構教學思考與改革實踐[J].新西部,2018(33):143-144.
[9][11]亓祥元,嚴冬梅,基于Android的高校課程學習系統(tǒng)設計與實現(xiàn)[J].計算機時代,2016(6):48-51.55.
[10]劉帥,李建偉,勾學榮,互動式移動學習系統(tǒng)的設計與開發(fā)[J].北京郵電大學學報:社會科學版,2014,16(6):111-116.
[12]郭霖,第一行代碼-Android[M].2版,北京:人民郵電出版社,2016.
[13]劉望舒.Android進階解密[M].北京:電子工業(yè)出版社,2018.
[14] Paul Deck. Spring MVC學習指南[M].林儀明,崔毅,譯.北京:人民郵電出版社,2015.
[15]季益龍,張閃閃,趙俞凌.基于微課程的自主學習系統(tǒng)設計與實現(xiàn)——以計算機編程類課程為例[J].中國教育信息化,2015(21):88-91.
[16]張雪亞,基于C-B/S混合架構的試題庫系統(tǒng)設計[J].電子科技,2013,26(5):43-46.
[17]朱佳雯.基于Android的移動教學系統(tǒng)的設計與實現(xiàn)[J].電子設計工程,2018,26(23):65-70.
[18]顧小清,顧鳳佳,微型學習策略:設計移動學習[J].中國電化教育,2008(3):17-21.
[19] Tumer P J,Jennings N R.Improving the scalability of multi-agent systems[M]//Infrastructure for Agents, Multi-Agent Sys-tems. and Scalable Multi-Agent Systems. Berlin, Heidelberg:Springer Berlin Heidelberg, 2001: 246-262.