肖祥林 周春容 萬 錚
(四川交通職業(yè)技術(shù)學(xué)院信息工程系 四川 成都 611130)
隨著移動終端的迅速發(fā)展,預(yù)計2017年移動用戶將趕超PC用戶,智能手機App已經(jīng)成為移動互聯(lián)網(wǎng)的重要入口之一[6]。由于移動終端設(shè)備智能化、便捷化、多樣化和4G移動通信技術(shù)的移動化、寬帶化、IP化、融合化以及移動通信資費的下調(diào),越來越多的人喜歡通過手機、Pad等移動終端利用零碎的時間隨時隨地聊天、玩游戲、購物、看視頻、收發(fā)郵件等,而不再是單一地通過PC端訪問Internet資源進(jìn)行工作、學(xué)習(xí)、娛樂[20]。目前我國移動App在交友、購物、娛樂等方面取得了很大的突破,積攢了大量的用戶,比如看薦App,一個基于用戶個性化推薦的閱讀平臺,上線不到1個月就擁有了10多萬的下載量。購物App中通過記錄瀏覽的商品和商品的關(guān)聯(lián)規(guī)則進(jìn)行個性化推薦,促進(jìn)商品銷售。而教育App的應(yīng)用面卻相對較窄,主要集中在幼教、中小學(xué)教育、語言學(xué)習(xí)類,比如:天天練App、小勾學(xué)習(xí)圈App等主要是針對中小學(xué)學(xué)生的個性特點,以學(xué)科分類,采用游戲、視頻、打擂臺的形式提高孩子們的學(xué)習(xí)興趣[5]。
微型課程簡稱微課,它有別于傳統(tǒng)課程按照章節(jié)來組織課程內(nèi)容,它是由一個學(xué)科所包含獨立的主題(知識點)組成,主題之間相對獨立,沒有很強的連貫性[5]。學(xué)生在學(xué)習(xí)微課時可以根據(jù)學(xué)生的興趣愛好以及自身對知識點的掌握程度,個性化地選擇對哪個主題的學(xué)習(xí)。目前微型課程的展示平臺大多都是通過課程網(wǎng)站展示,比如學(xué)堂在線等,而根據(jù)學(xué)生興趣愛好的個性化推薦學(xué)習(xí)平臺目前的研究較少。本文結(jié)合微型課程的特點設(shè)計并開發(fā)一款適用于多終端的微型課程平臺,以滿足用戶可以通過PC端、智能手機、Pad等多種設(shè)備隨時隨地地自主學(xué)習(xí)。
該系統(tǒng)主要解決師生可以利用手機、Pad、PC等多種終端設(shè)備隨時隨地訪問該系統(tǒng)實現(xiàn)以下功能:
(1) 對感興趣的課程知識點的學(xué)習(xí)。
(2) 學(xué)習(xí)效果的評估測試。
(3) 和其他實踐共同體相互交流。
(4) 實現(xiàn)個性化推薦學(xué)習(xí)。
通過在師生中做網(wǎng)絡(luò)問卷調(diào)查、會談、專家論證分析等多種形式充分了解系統(tǒng)需求,得出系統(tǒng)的邏輯模型。經(jīng)過需求分析得知,系統(tǒng)分為4類用戶:管理員、教師、學(xué)生和匿名用戶,各類用戶的功能需求如表1所示。

表1 系統(tǒng)用戶功能表

續(xù)表1
為了增強系統(tǒng)的可擴展性、達(dá)到高內(nèi)聚低耦合的系統(tǒng)設(shè)計目標(biāo),系統(tǒng)按照Web層、服務(wù)層和持久層設(shè)計。持久層通過封裝DAO操作實現(xiàn)和數(shù)據(jù)庫的交互,服務(wù)層通過調(diào)用持久層的DAO方法來實現(xiàn)業(yè)務(wù)邏輯,Web層通過調(diào)用服務(wù)層的服務(wù)來完成各模塊的功能。系統(tǒng)架構(gòu)如圖1所示。

圖1 系統(tǒng)體系結(jié)構(gòu)圖
微型課程平臺分為服務(wù)器端和客戶端,服務(wù)器端主要由完成用戶管理、課程管理、專業(yè)管理、作業(yè)管理、進(jìn)度管理等功能。客戶端主要包括課程搜索、課程學(xué)習(xí)、完成作業(yè)、完成測試、推薦學(xué)習(xí)、提問等功能,系統(tǒng)詳細(xì)功能模塊劃分如圖2所示。

圖2 多終端微型課程系統(tǒng)功能模塊劃分
根據(jù)需求分析,微型課程平臺涉及到用戶、用戶狀態(tài)、用戶角色、課程、課程分類、知識點、作業(yè)、問題、分?jǐn)?shù)、日志等10多個實體。用戶表包括用戶ID、帳號、密碼、真實姓名、電話號碼、郵箱、性別、創(chuàng)建時間、最后登錄時間等信息;用戶角色表包括用戶角色I(xiàn)D、角色名、創(chuàng)建時間等信息;用戶狀態(tài)表包括用戶狀態(tài)ID、狀態(tài)名稱等信息;課程表包括課程ID、課程名稱、課程描述、封面圖、創(chuàng)建時間、課程分類ID等信息;課程分類表包括課程分類ID、分類名稱等信息;知識點表包括知識點ID、主題、內(nèi)容、章節(jié)ID、視頻文件地址、創(chuàng)建時間、修改時間等信息;問題表包括問題ID、標(biāo)題、詳細(xì)信息、答案、知識點ID、用戶ID、知識點ID、創(chuàng)建時間、回復(fù)時間等信息。該系統(tǒng)主要實體之間的關(guān)系如圖3所示。

圖3 微型課程平臺主要實體關(guān)系圖
目前開發(fā)移動App有三種選擇:一是運用移動操作系統(tǒng)支持的開發(fā)工具和開發(fā)語言調(diào)用移動操作系統(tǒng)原生API編寫移動App,這種方式具有界面美觀、程序運行性能高,不足之處:開發(fā)工作量大,需要為每個操作系統(tǒng)開發(fā)對應(yīng)的App,對開發(fā)者的要求較高。第二種方式是采用HTML5+CSS3+JavaScript編寫HTML5應(yīng)用程序,這種方式可以實現(xiàn)“一次編寫,到處運行”,不足之處是在離線儲存的安全性、對原生設(shè)備的訪問欠佳。第三種方式是利用混合式開發(fā)框架實現(xiàn)跨平臺開發(fā),這種方式具有原生開發(fā)和HTML 5開發(fā)的優(yōu)點,其中IONIC、Mobile Angular UI、Intel XDK、Appcelerator Titanium、Sencha Touch、Kendo UI和PhoneGap是目前主流的混合式開發(fā)平臺[3]。
多終端微型課程學(xué)習(xí)平臺構(gòu)建分兩步:第一步是開發(fā)微型課程平臺Web服務(wù)器端,第二步是開發(fā)移動App實現(xiàn)通過智能手機、Pad等手持設(shè)備訪問微型課程平臺。Web服務(wù)器端采用:Spring框架和MySQL數(shù)據(jù)庫,運用目前最成熟的PhoneGap混合開發(fā)框架開發(fā)移動App端。
3.1.1 Spring框架
Spring框架是分層的JavaEE應(yīng)用一站式開發(fā)的輕量級開源框架,以IOC和AOP為內(nèi)核,提供了表現(xiàn)層的SpringMVC和持久層Spring JDBC以及業(yè)務(wù)層事務(wù)管理等眾多企業(yè)及應(yīng)用技術(shù),目前已成為應(yīng)用最廣泛的Java EE企業(yè)應(yīng)用開源框架[13]。
3.1.2 PhoneGap框架
PhoneGap框架是一個基于HTML5、CSS3和JavaScript的快速開發(fā)平臺[12],能做到一次開發(fā)適用于多個平臺,該技術(shù)幾乎覆蓋了市場上主流的智能終端操作系統(tǒng)[10]。該框架是目前混合開發(fā)中應(yīng)用最廣泛的,該框架最大的優(yōu)點是:內(nèi)置的WebView瀏覽器可以方便地用HTML5和CSS3頁面布局,WebView提供Web和設(shè)備本地API雙向通信的能力。其跨平臺的特性主要是PhoneGap為不同平臺的WebView做了封裝和擴展,屏蔽了不同平臺的差異,使得開發(fā)人員可以在該框架中運用JavaScript訪問本地設(shè)備的API[11]。
3.1.3 個性化推薦算法
微課個性化推薦主要目的是引導(dǎo)用戶選擇最需要的學(xué)習(xí)內(nèi)容,以便達(dá)到更好的學(xué)習(xí)效果。而在個性化推薦算法中,常用協(xié)同過濾(CF)推薦算法、基于內(nèi)容的推薦算法以及情景感知推薦算法等。這些算法在相應(yīng)的知識領(lǐng)域都有不錯的效果,而對于微課程的推薦除了包括評分、內(nèi)容相關(guān)度、用戶推薦度,還有更多的是關(guān)聯(lián)在于用戶模型、知識特點、知識模型等方面。所以,把幾種推薦系統(tǒng)算法做成一個集合,為微型課程用戶提供個性化的推薦,模型結(jié)構(gòu)如圖4所示。

圖4 個性化推薦算法集合模型
假設(shè)目前有n個用戶對m微課進(jìn)行評分。為區(qū)分用戶和微課程,用戶以u、υ表示,i、j、k表示課程,用戶υ對微課程i的推薦結(jié)果記為res(v,i),而影響res(v,i)的條件有以下因素:n之間的相似度;用戶n對課程m的評分個數(shù);評分重疊數(shù);用戶υ對課程k的評分ru,k等。由CF方法演變?yōu)椋?/p>
(1)
式中:Pv,u為n之間的相似度,Bu,i為用戶評分向量,hyv,u為權(quán)重因子,由wf1和wf2構(gòu)成。
hyv,u=wf1+wf2
(2)
(3)
(4)
(5)
式中:cov代表是基于內(nèi)容的推薦度,公式為:
(6)
式中:A為常量值。
式(1)中Bu,i為:
(7)
用戶u對課程i已做評分,則評分向量Bu,i的值為ru,k,若未評分,則采用其他推薦算法結(jié)果cu,k作為評分向量。
3.2.1 推薦結(jié)果計算
結(jié)合上述公式,取推薦排名前3的作為推薦結(jié)果,Res(v,i)為輸出值。
for i=1: size (Bu,i,1)
C=0;
for j=1:size(Bu,i,2)
C=C+1;
Rec (i , j)=C
end
end
for k=1:size(Bu,i,1)
//*取用戶數(shù)
for m=1:size (Bu,i,2)
//*取項目數(shù)
for n=1:[size Bu,i,2)-1]
if Bu,i(k,n) temp=Bu,i(k,n); Bu,i(k,n)=Bu,i[k,(n+1)]; Bu,i[k,(n+1)]=temp; temp=Rec(k,n); Bu,i(k,n)=Bu,i[k,(n+1)]; Bu,i[k,(n+1)]=temp; end end end end RANK=3; Res(v,i)=Rec; Res(v,i) [ : , (RANK+1):n]=[]; 3.2.2 微課管理頁面實現(xiàn) 課程管理包括課程添加課程信息、編輯課程信息、查看課程信息和審核課程信息等功能。實現(xiàn)該功能用到的主要接口、類和頁面有:Web層用到:microcourse.controller包下的uIniServlet類、CourseController類;服務(wù)層用到:microcourse.service包下的接口:ICourseService和microcourse.service包下的CourseServiceImpl類;持久層用到:microcourse.pojo包下的Course類、CourseCategory類、CourseState類和microcourse.dao包下的CourseDao類、CourseCategoryDao類和CourseStateDao類;頁面主要有:course-add.jsp、course-edit.jsp、course-list.jsp等。 核心代碼如下: /** * @Title: addCourse * @Description: TODO 添加課程 * @param course 課程信息 * @param userId 用戶Id * @return * @throws Exception */ @Override Public boolean addCourse(Course course,Integer userId) throws Exception { if(course!=null&&course.getName()!=null && !course.getName().equals("") && userId!=null){ course.setUserId(userId); course.setUpdateTime(System.currentTimeMillis()); course.setCreateTime(System.currentTimeMillis()); course.setStateId(DatabaseConstant.COURSE_STATE_ID_VERIFY); //上傳圖片 if(course.getUploadFile()!=null){ String fileName = FileUtils.saveFile(course.getUploadFile(), ProjectConstant.FOLDER_COURSE_PICFILE,null); course.setPicFile(fileName); } return mCourseMapper.addCourse(course)>0?true:false; } return false; } 其中添加課程信息的界面如圖5所示。 圖5 添加課程信息界面 用戶管理功能包括查看所有用戶列表、修改用戶信息、搜索用戶、刪除用戶信息和批量刪除用戶、設(shè)置用戶狀態(tài)等功能。為了簡化權(quán)限的管理,系統(tǒng)采用基于角色的訪問控制(RBAC)[11]。實現(xiàn)該功能用到的主要接口、類和頁面有:Web層用到:microcourse.controller包下的UserController類;服務(wù)層用到:microcourse.service包下的接口:IUserService和microcourse.service.impl包下的UserImpl類;持久層用到:microcourse.pojo包下的User類、UserRole類、UserState類和microcourse.dao包下的UserDao類、UserRoleDao類和UserStateDao;頁面主要有:user-info.jsp、user-login.jsp、user-password.jsp等。 本文運用HTML5、Java Web、Css3和PhoneGap框架應(yīng)用混合編程的方式設(shè)計一款多終端的微型課程學(xué)習(xí)平臺。該系統(tǒng)既可以在PC端通過瀏覽器訪問系統(tǒng),也可以通過手機、PAD等移動終端訪問系統(tǒng),師生利用碎片時間隨時、隨地通過微型課程平臺完成學(xué)習(xí),該系統(tǒng)的投入使用受到了廣大師生的一致好評。 [1] Deng Y,Cheng X H.System design of mobile cross-domain single sign-on[J].Computer Engineering & Design,2010,31(8):1667-1672. [2] 李順忠.基于SOA架構(gòu)的多認(rèn)證方式統(tǒng)一認(rèn)證平臺[D].解放軍信息工程大學(xué),2011. [3] 刁仁宏,陳運,鄭豐華.基于SAML的WEB單點登錄系統(tǒng)安全模型設(shè)計[J].微計算機信息,2009,25(21):75-77. [4] 田輝,胡靜,張平.基于多終端協(xié)同的業(yè)務(wù)流控制[J].中興通訊技術(shù),2016,18(23):16-19,27. [5] 王超超.學(xué)前教育專業(yè)微型課程學(xué)習(xí)平臺設(shè)計初探[J].河南廣播電視大學(xué)學(xué)報,2015,28(1):109-112. [6] 馬玉慧,趙樂,李南南,等.新型移動學(xué)習(xí)資源——教育APP發(fā)展模式探究[J].中國電化教育,2016(4):64-70. [7] 張永諾,孫華,孫子恒.移動APP的應(yīng)用與發(fā)展[J].電腦知識與技術(shù),2016,12(2):86-87. [8] 黃景修,劉清堂,吳林靜.一種面向多終端服務(wù)的學(xué)術(shù)會議管理系統(tǒng)設(shè)計與實現(xiàn)[J].計算機應(yīng)用與軟件,2016,33(7):68-71,101. [9] 孟青春,吳穎川,劉志勤,等.基于移動終端的多終端單點登錄研究與設(shè)計[J].計算機工程與設(shè)計,2014,35(5):1537-1541. [10] 杜帥,鄂海紅,許可.混合移動應(yīng)用開發(fā)模式的新策略[J].軟件,2015,36(6):12-17. [11] 徐隆龍,李瑩,白靜.移動混合開發(fā)框架[J].計算機系統(tǒng)應(yīng)用,2014,23(12):54-59. [12] 陳星,楊春花,吳文峰.基于PhoneGap的移動OA辦公系統(tǒng)[J].齊魯工業(yè)大學(xué)學(xué)報,2015,29(1):60-65. [13] 周春容,肖祥林,楊樺.Java Web通用用戶權(quán)限管理框架設(shè)計與實現(xiàn)[J].計算機與現(xiàn)代化,2014(3):177-179,196. [14] 齊利利.基于手持終端的微學(xué)習(xí)活動設(shè)計研究[D].武漢:華中師范大學(xué),2012. [15] 鄭世玨,陶立秋,魯岳,等.微型課件在IOS移動學(xué)習(xí)平臺上的設(shè)計與應(yīng)用[J].微型機與應(yīng)用,2014,33(20):4-6. [16] 柯清超,姜淑杰,尤歡歡.企業(yè)微型學(xué)習(xí)設(shè)計與評價研究現(xiàn)代遠(yuǎn)程教育研[J].現(xiàn)代遠(yuǎn)程教育研究,2010(5):65-70. [17] 李舒愫.微型學(xué)習(xí)資源的設(shè)計與共建及其系統(tǒng)原型[D].上海:華東師范大學(xué),2010. [18] 李玲,胡衛(wèi)星,蔣梅梅.教育型移動APP的教學(xué)應(yīng)用模式研究[J].中國信息技術(shù)教育,2015(12):34-35. [19] 呂冬梅.4G環(huán)境下的移動APP在圖書館中的應(yīng)用[J].科技視界,2015(8):121-122. [20] 李青,王濤.基于平板電腦的學(xué)習(xí)資源設(shè)計框架和要點分析[J].遠(yuǎn)程教育雜志,2012(5):35-41.
3.3 用戶管理功能實現(xiàn)
4 結(jié) 語