任凱+林佳文+高正+顧雋逸+陸偉乾
摘 要: CDIO代表構(gòu)思(Conceive)、設(shè)計(jì)(Design)、實(shí)現(xiàn)(Implement)和運(yùn)作(Operate),是“做中學(xué)”和“基于項(xiàng)目教育和學(xué)習(xí)”的集中概括和抽象表達(dá),是目前進(jìn)行的工程教育改革戰(zhàn)略之一。以iOS和Android為主要代表的移動(dòng)開(kāi)發(fā)人才需求增長(zhǎng)迅猛,同時(shí),這2個(gè)平臺(tái)的開(kāi)發(fā)技術(shù)本身也在不斷發(fā)展中,造成學(xué)習(xí)的困難性。本文以高校的移動(dòng)開(kāi)發(fā)教學(xué)為主要研究對(duì)象,運(yùn)用CDIO教育模式對(duì)移動(dòng)開(kāi)發(fā)課程的教與學(xué)進(jìn)行探討,為高校建設(shè)一個(gè)專門學(xué)習(xí)iOS和Android知識(shí)的平臺(tái),通過(guò)這個(gè)平臺(tái)提高移動(dòng)開(kāi)發(fā)的教學(xué)效果。
關(guān)鍵詞: 移動(dòng)開(kāi)發(fā)學(xué)習(xí)平臺(tái); CDIO; iOS開(kāi)發(fā)學(xué)習(xí); Android開(kāi)發(fā)學(xué)習(xí)
中圖分類號(hào):TP393
文獻(xiàn)標(biāo)志碼:A
文章編號(hào):2095-2163(2017)02-0139-03
Abstract:CDIO (means Conceive, Design, Implement and Operate), is the concentration of generalization and abstract expression of "learning by doing" and "project-based education and learning", which is recognized as the most extensive influenced and most widely accepted engineering education model. At the same time, the talent demand of iOS and Android development, the main representative of mobile development, is growing rapidly. However, both development platforms are constantly developing. This brings great difficulties to mobile technology study. This paper takes the mobile development of colleges and universities as the main research object, and discusses teaching and learning of the mobile development course using the CDIO education model. Furthermore, the paper builds a special learning platform of iOS and Android knowledge, by which the teaching effect of mobile development can be improved.
Keywords:mobile development learning platform; CDIO; iOS development learning; Android development learning
0 引 言
2013年12月我國(guó)電信產(chǎn)業(yè)正式宣布進(jìn)入4G時(shí)代,隨著移動(dòng)通信技術(shù)的優(yōu)化升級(jí),以手機(jī)和平板電腦為主要代表的移動(dòng)終端設(shè)備也發(fā)展迅速,其中以Android和iOS平臺(tái)尤為突出,最近新有統(tǒng)計(jì)顯示,Android和iOS市場(chǎng)占有率合計(jì)達(dá)到98.4%,已經(jīng)呈現(xiàn)統(tǒng)領(lǐng)瓜分智能手機(jī)市場(chǎng)之態(tài)勢(shì)。與此同時(shí),移動(dòng)互聯(lián)網(wǎng)與各行各業(yè)加快融合,人才需求增長(zhǎng)迅猛[1],其中移動(dòng)開(kāi)發(fā)人才需求則更見(jiàn)顯著增幅。高等學(xué)校作為移動(dòng)開(kāi)發(fā)人才培養(yǎng)的主力軍,面臨著新的挑戰(zhàn),因此需要進(jìn)一步重視高校教學(xué)活動(dòng)的研究開(kāi)展。但是,Android API和iOS開(kāi)發(fā)API在持續(xù)更新中,新舊版本之間差異頗大,現(xiàn)有教材和參考書(shū)籍與產(chǎn)業(yè)發(fā)展之間難達(dá)協(xié)調(diào)同步,網(wǎng)絡(luò)資料過(guò)時(shí)、繁雜,這些因素都給移動(dòng)開(kāi)發(fā)課程教授帶來(lái)困難。
另一方面,經(jīng)過(guò)多年移動(dòng)開(kāi)發(fā)教學(xué)實(shí)踐的考察探討可知,當(dāng)前有一部分大學(xué)生暴露出如下的學(xué)習(xí)行為特點(diǎn):普遍具有較強(qiáng)的求知欲,但有些基礎(chǔ)理論掌握薄弱,動(dòng)手能力不強(qiáng),遇到困難容易退縮,這些特點(diǎn)使得傳統(tǒng)的教學(xué)方式不再適用于這一群體。
CDIO是近年來(lái)已獲國(guó)際公認(rèn)的工程教育與人才培養(yǎng)模式,并且現(xiàn)已發(fā)展成為計(jì)算機(jī)實(shí)踐教學(xué)改革的有效途徑之一[2-4]。為了更加切實(shí)高效地培養(yǎng)移動(dòng)平臺(tái)開(kāi)發(fā)領(lǐng)域的專門人才,本文即在參考借鑒已然推出平臺(tái)[4-7]的基礎(chǔ)上,設(shè)計(jì)構(gòu)建了一個(gè)圍繞CDIO模式、且基于Web和Android的移動(dòng)開(kāi)發(fā)學(xué)習(xí)平臺(tái)。該平臺(tái)可以通過(guò)教師發(fā)布最新的移動(dòng)開(kāi)發(fā)教學(xué)視頻,使教學(xué)視頻和課程之間的內(nèi)容聯(lián)系更緊密、銜接更順暢。利用該平臺(tái),學(xué)生可根據(jù)任課教師發(fā)布的視頻邊做邊練,在不斷的練習(xí)中掌握移動(dòng)開(kāi)發(fā)技能,從而真正解決計(jì)算機(jī)專業(yè)本科教學(xué)(包括實(shí)驗(yàn)課程、畢業(yè)設(shè)計(jì)、實(shí)習(xí))課時(shí)緊張的問(wèn)題。
1 系統(tǒng)實(shí)現(xiàn)背景
1.1 Android開(kāi)發(fā)教學(xué)面臨的難題
Android從2007年實(shí)現(xiàn)首版發(fā)布以來(lái),不同版本的市場(chǎng)占有率時(shí)有變化,而應(yīng)用程序接口也在不同版本中常態(tài)性發(fā)生著迭代更替。所以,去年的代碼在新的API中可能就不能運(yùn)行通過(guò),這種更新卻由于成本問(wèn)題難于在教科書(shū)中展現(xiàn)和呈現(xiàn)。
Android開(kāi)發(fā)使用Java語(yǔ)言,在2015年前則是以Eclipse為集成開(kāi)發(fā)環(huán)境,贏得了一批Java程序員的歡迎。隨著新的API的出現(xiàn),Android平臺(tái)不斷增加新功能,Eclipse在滿足新需求上即陸續(xù)遭遇瓶頸。考慮到提高開(kāi)發(fā)環(huán)境易用性的效果目的,2013年5月Google在I/O大會(huì)上推出了新的開(kāi)發(fā)工具Android Studio。在2015年底Google官方宣布將不再對(duì)Eclipse環(huán)境追加技術(shù)維護(hù)。截止發(fā)稿日期為止,Android Studio總共發(fā)布了3個(gè)大版本,每個(gè)版本都會(huì)產(chǎn)生較大變化,這就給學(xué)生學(xué)習(xí)Android編程帶來(lái)了困難。至此,研究給出了有關(guān)Android Studio和Eclipse的優(yōu)缺點(diǎn)對(duì)照比較,具體如表1所示。
1.2 iOS開(kāi)發(fā)教學(xué)面臨的難題
蘋(píng)果手機(jī)和平板電腦應(yīng)用程序的開(kāi)發(fā)必須有賴于XCode開(kāi)發(fā)環(huán)境的設(shè)定支持,XCode開(kāi)發(fā)環(huán)境則必須依托蘋(píng)果操作系統(tǒng),并且不同的XCode版本和蘋(píng)果的操作系統(tǒng)是一一對(duì)應(yīng)的。2014年以前蘋(píng)果官方主要使用Objective-C編寫(xiě)iOS和蘋(píng)果操作系統(tǒng)下的應(yīng)用程序,2014年蘋(píng)果于WWDC(Worldwide Developers Conference,蘋(píng)果開(kāi)發(fā)者大會(huì))發(fā)布了新開(kāi)發(fā)語(yǔ)言Swift,旨在使編程更趨簡(jiǎn)單、靈活、有趣,最終目的是讓Swift編程更加通用、更加多樣化—除了蘋(píng)果平臺(tái)的應(yīng)用,開(kāi)發(fā)者也可以在其它項(xiàng)目中使用這個(gè)編程語(yǔ)言。目前,國(guó)內(nèi)大部分蘋(píng)果應(yīng)用程序的開(kāi)發(fā)都是使用Objective-C,但是使用Swift開(kāi)發(fā)已是大勢(shì)所趨,國(guó)外很多企業(yè)已經(jīng)轉(zhuǎn)向使用Swift作為主要開(kāi)發(fā)語(yǔ)言,國(guó)內(nèi)很多企業(yè)也開(kāi)始為新語(yǔ)言集聚儲(chǔ)備人才。圖1即是全球著名軟件評(píng)價(jià)公司TIOBE公布的3種計(jì)算機(jī)語(yǔ)言市場(chǎng)占有率動(dòng)態(tài)圖。
2 系統(tǒng)實(shí)現(xiàn)
2.1 系統(tǒng)架構(gòu)與功能
該平臺(tái)由Web子系統(tǒng)和Android子系統(tǒng)構(gòu)成,功能上2個(gè)子系統(tǒng)大致相同。Web子系統(tǒng)采用Spring MVC和Struct2的Java EE軟件架構(gòu),后臺(tái)使用MySQL數(shù)據(jù)。Android子系統(tǒng)通過(guò)發(fā)送HTTP請(qǐng)求到Web服務(wù)器,Web服務(wù)器返回JSON格式數(shù)據(jù),Android客戶端通過(guò)解析JSON數(shù)據(jù)展示信息。整體的系統(tǒng)架構(gòu)如圖2所示。
平臺(tái)的設(shè)計(jì)中是使用學(xué)號(hào)或工號(hào)實(shí)現(xiàn)登錄。教師可以查看/修改個(gè)人信息、導(dǎo)入學(xué)生名單、發(fā)布視頻和作業(yè)、設(shè)置視頻瀏覽權(quán)限、下載/檢查學(xué)生作業(yè)、查看留言等。學(xué)生則根據(jù)學(xué)號(hào)和手機(jī)號(hào)進(jìn)行注冊(cè),登錄后可以收看視頻完成同步作業(yè)、上傳作業(yè)、對(duì)視頻進(jìn)行評(píng)分、在線留言、瀏覽學(xué)習(xí)歷史等。系統(tǒng)管理定期將評(píng)分較低、過(guò)時(shí)的視頻下架并且通知上傳人。系統(tǒng)的功能模塊劃分即如圖3所示。
2.2 核心模塊的實(shí)現(xiàn)
Android子系統(tǒng)主要是數(shù)據(jù)的展示,該系統(tǒng)除了使用SharedPreferences保存少量數(shù)據(jù)外,大部分?jǐn)?shù)據(jù)是通過(guò)和服務(wù)器交互得到。以學(xué)生獲取課程信息為例,核心代碼如下:
String url = NetUtils.SERVER_URL_COURSE_SERVLET + "&action=getCourse";
String webContent = web.getWebContent(url);
courseData=(CourseData) JsonUtil.json ToObject(webContent, GetCourseDto.class );
服務(wù)器端獲取客戶端發(fā)送的請(qǐng)求后,從數(shù)據(jù)庫(kù)中查出數(shù)據(jù)并發(fā)送JSON格式的數(shù)據(jù),核心代碼如下:
if(action!=null &&action.equals("getCourse")) {
CourseData cd=new CourseData();
List
status =ConstantsUtil.SUCCESS;
cd.setResult(result);
cd.setStatus(status);
out.print(JsonUtils.objectToJson(dto));
}
觀看視頻是系統(tǒng)的關(guān)鍵設(shè)計(jì)功能。學(xué)生登錄后點(diǎn)擊視頻,客戶端收到消息后向數(shù)據(jù)庫(kù)查詢學(xué)生的權(quán)限信息,如果該學(xué)生有權(quán)限觀看該視頻,則查詢視頻信息表中視頻存放路徑,發(fā)送該鏈接給客戶端觀看,圖4是整個(gè)過(guò)程的時(shí)序圖。
[LL]Web頁(yè)面服務(wù)器端播放視頻的代碼如下所示:
document.getElementById("gocourse").className="videoitem";
var myVideo = document.getElementById("myvideo");
myVideo.currentvideo = 0;
myVideo.addEventListener("ended",
function() {
myVideo.src =" $[WT5”BZ]{videoUrl} ";
if (myVideo.paused)
myVideo.play();
else
myVideo.pause();
});
3 結(jié)束語(yǔ)
本文研究論述了基于CDIO模式的移動(dòng)開(kāi)發(fā)學(xué)習(xí)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)。該平臺(tái)Web子系統(tǒng)部署在標(biāo)準(zhǔn)的Web容器中可以實(shí)現(xiàn)全部功能,Android子系統(tǒng)已通過(guò)模擬器和真機(jī)測(cè)試。下一步需要解決的即是如何在大用戶量情況下實(shí)現(xiàn)視頻下載觀看的速度流暢問(wèn)題。
該平臺(tái)是對(duì)我國(guó)高校移動(dòng)開(kāi)發(fā)課程CDIO工程教育模式的豐富和發(fā)展,對(duì)在信息快速發(fā)展的大背景下,如何在移動(dòng)開(kāi)發(fā)課程中優(yōu)化展開(kāi)CDIO的工程教育模式具有重要的研究推動(dòng)意義。
參考文獻(xiàn):
[1]盧迪. 移動(dòng)互聯(lián)網(wǎng)人才需求及高校移動(dòng)互聯(lián)網(wǎng)人才培養(yǎng)現(xiàn)狀分析[J]. 現(xiàn)代傳播(中國(guó)傳媒大學(xué)學(xué)報(bào)),2015(6):141-146.
[2] 陳衛(wèi)民. 基于CDIO的Android教學(xué)改革探索[J]. 當(dāng)代教育實(shí)踐與教學(xué)研究,2015(6):27.
[3] 王向輝,崔巍,徐俊麗. 基于CDIO的數(shù)據(jù)庫(kù)課程教學(xué)改革方案研究[J]. 計(jì)算機(jī)教育,2011(2):38-41.
[4] 查建中. 論“做中學(xué)”戰(zhàn)略下的CDIO模式[J]. 高等工程教育研究,2008(3):1-6,9.
[5] 劉帥. 基于視頻課程的移動(dòng)學(xué)習(xí)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)[D]. 北京:北京郵電大學(xué), 2015.
[6] 劉政利. 基于iOS的移動(dòng)學(xué)習(xí)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[D]. 鄭州:鄭州大學(xué), 2014.
[7] 段學(xué)東,何九周. 基于敏捷思想的iOS平臺(tái)軟件的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)技術(shù)與發(fā)展,2012,22(9):53-58.
[8] 康全禮,陸小華,熊光晶. CDIO大綱與工程創(chuàng)新型人才培養(yǎng)[J]. 高等教育研究學(xué)報(bào),2008,31(4):15-18.