陳小奎,方賢文
(安徽理工大學(xué)理學(xué)院,安徽淮南 232001)
Android實(shí)訓(xùn)課程的設(shè)計(jì)與實(shí)施
陳小奎,方賢文
(安徽理工大學(xué)理學(xué)院,安徽淮南 232001)
本文針對(duì)軟件企業(yè)的用人需求,分析了當(dāng)前高校Android課程實(shí)踐教學(xué)中的不足,總結(jié)了實(shí)踐課程中出現(xiàn)的問題,探索出一些Android實(shí)訓(xùn)設(shè)計(jì)與實(shí)施方案,明確了實(shí)訓(xùn)目的,確定了實(shí)訓(xùn)目標(biāo)與技術(shù)要求的細(xì)節(jié),由指導(dǎo)教師擬定項(xiàng)目的案例并設(shè)計(jì)出具體功能模塊以及要求。在實(shí)訓(xùn)項(xiàng)目開展過程中,指導(dǎo)教師全程負(fù)責(zé)技術(shù)支持、過程監(jiān)督和評(píng)價(jià),并將實(shí)訓(xùn)項(xiàng)目開發(fā)過程分成三個(gè)階段,分配相應(yīng)的任務(wù)和評(píng)價(jià)分值,利用分階段驗(yàn)收的方法,規(guī)范化、標(biāo)準(zhǔn)化和工程化地管理學(xué)生的開發(fā)流程。實(shí)踐表明,貼近真實(shí)企業(yè)的項(xiàng)目實(shí)訓(xùn)開發(fā),能夠提高學(xué)生的實(shí)踐能力,使他們初步具備職業(yè)素養(yǎng),為今后就業(yè)奠定堅(jiān)實(shí)的基礎(chǔ)。
Android實(shí)訓(xùn);階段驗(yàn)收;案例設(shè)計(jì)
Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要應(yīng)用于移動(dòng)終端,如智能手機(jī)和平板電腦。2007年11月,Google聯(lián)合84家硬件制造商、軟件開發(fā)商及電信營運(yùn)商一起組建了開放手機(jī)聯(lián)盟,共同研發(fā)和改良Android系統(tǒng)。第一部Android系統(tǒng)的智能手機(jī)于2008年10月發(fā)布。2015年第四季度,Android系統(tǒng)手機(jī)的全球市場份額已經(jīng)達(dá)到84.7%[1]。目前,國內(nèi)高校紛紛開設(shè)了Android相關(guān)程序設(shè)計(jì)課程,培養(yǎng)市場急需的人才[2-5]。但Android課程涉及的知識(shí)結(jié)構(gòu)龐雜,編程難度較大,僅僅依靠理論課程加實(shí)驗(yàn)課的教學(xué)方案,學(xué)生往往只能掌握基本的控件知識(shí),無法融會(huì)貫通,很難開發(fā)出高水平軟件。本文以安徽理工大學(xué)信息與計(jì)算科學(xué)專業(yè)為例,通過總結(jié)近三年的Android綜合實(shí)訓(xùn)課程的經(jīng)驗(yàn)與教訓(xùn),探索該課程的設(shè)計(jì)與實(shí)施方案。
1.1 實(shí)訓(xùn)課程的教學(xué)目的
安徽理工大學(xué)信息與計(jì)算科學(xué)專業(yè)于2010年被遴選為國家級(jí)特色專業(yè)。該專業(yè)一直以計(jì)算機(jī)軟件開發(fā)為發(fā)展方向,注重學(xué)生綜合實(shí)踐能力的培養(yǎng),在本科階段的第六學(xué)期開設(shè)Android軟件開發(fā)綜合實(shí)訓(xùn)課程。該課程的教學(xué)設(shè)計(jì)以企業(yè)需求為導(dǎo)向,以項(xiàng)目案例開發(fā)為主線,以啟發(fā)式教學(xué)為引導(dǎo),以學(xué)生動(dòng)手實(shí)踐為主體,按企業(yè)級(jí)要求,分階段地完成軟件開發(fā)任務(wù),使學(xué)生積累真實(shí)的項(xiàng)目開發(fā)經(jīng)驗(yàn),最終達(dá)到提升學(xué)生能力的目的。
1.2 實(shí)訓(xùn)課程的目標(biāo)
Android實(shí)訓(xùn)課程旨在讓學(xué)生在實(shí)戰(zhàn)項(xiàng)目開發(fā)中理解軟件企業(yè)的開發(fā)流程,熟悉開發(fā)規(guī)范,掌握項(xiàng)目的設(shè)計(jì)、編碼、調(diào)試、測(cè)試和項(xiàng)目文檔的撰寫方法,達(dá)到將所學(xué)過的知識(shí)融會(huì)貫通的目標(biāo),培養(yǎng)學(xué)生團(tuán)隊(duì)協(xié)作能力與職業(yè)素養(yǎng)。
1.2.1 在實(shí)訓(xùn)過程中實(shí)現(xiàn)的知識(shí)目標(biāo)
(1)熟練使用XML語言編寫圖形化用戶界面;(2)掌握ViewPager控件實(shí)現(xiàn)界面的滑動(dòng)切換;(3)熟練使用Intent對(duì)象實(shí)現(xiàn)Activity間跳轉(zhuǎn)與傳遞數(shù)據(jù);(4)熟練使用一種云數(shù)據(jù)庫,這里建議使用Bmob云;(5)依據(jù)數(shù)據(jù)庫表建立面向?qū)ο竽P停?6)通過Android實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的添加、修改、刪除和查詢操作;(7)掌握項(xiàng)目的AndroidManifest.xml文件配置;(8)熟練使用一種軟件測(cè)試方法測(cè)試項(xiàng)目,修改Bug。
1.2.2 在實(shí)訓(xùn)中培養(yǎng)學(xué)生的能力目標(biāo)
(1)理解并學(xué)會(huì)使用面向?qū)ο蟮木幊趟枷耄?2)理解并掌握MVC分層思想,并能應(yīng)用在項(xiàng)目中;(3)能夠設(shè)計(jì)自定義的控件并使用;(4)通過查詢資料,學(xué)會(huì)使用第三方控件;(5)獨(dú)立閱讀英文API文檔,修改語法錯(cuò)誤;(6)規(guī)范地撰寫軟件開發(fā)文檔。
1.2.3 在團(tuán)隊(duì)合作開發(fā)中培養(yǎng)學(xué)生的情感態(tài)度價(jià)值觀目標(biāo)
(1)通過師生技術(shù)交流,鍛煉學(xué)生溝通與表達(dá)能力,提升學(xué)生自我認(rèn)知感和自信;(2)通過團(tuán)隊(duì)協(xié)作與任務(wù)分工,提高學(xué)生的責(zé)任感;(3)通過軟件測(cè)試與Bug修改,培養(yǎng)學(xué)生嚴(yán)謹(jǐn)求實(shí)的態(tài)度。
Android軟件開發(fā)所需要的基礎(chǔ)知識(shí)較多,需要有Java語言程序設(shè)計(jì)的基礎(chǔ),有面向?qū)ο筌浖_發(fā)思想,還要有XML語言和數(shù)據(jù)庫開發(fā)基礎(chǔ)。如果沒有這些支撐課程體系,盲目開展Android實(shí)訓(xùn),不但不能鍛煉學(xué)生的能力,反而會(huì)打擊他們的學(xué)習(xí)信心。在確定本科專業(yè)培養(yǎng)方案時(shí),需要先行開設(shè)如下各門課程或知識(shí)點(diǎn)。
2.1 Android實(shí)訓(xùn)的支撐課程
2.1.1 Java語言程序設(shè)計(jì)
Android軟件開發(fā)使用的是Eclipse集成開發(fā)環(huán)境,開發(fā)語言是Java,所以Java語言是Android開發(fā)的基礎(chǔ)。在實(shí)訓(xùn)課程中重點(diǎn)應(yīng)用繼承、接口、多態(tài)、集合、Java訪問數(shù)據(jù)庫等知識(shí)點(diǎn),以上內(nèi)容在先導(dǎo)性課程教學(xué)中必須要重點(diǎn)講解。
2.1.2 數(shù)據(jù)庫概論
項(xiàng)目開發(fā)離不開數(shù)據(jù)庫的支持,主要應(yīng)用到數(shù)據(jù)庫的四種基本操作以及數(shù)據(jù)表的關(guān)聯(lián)等。
2.1.3 軟件工程
軟件工程以系統(tǒng)性、規(guī)范化、可定量的過程化方法開發(fā)和維護(hù)軟件,同時(shí)在軟件說明書撰寫方面起理論指導(dǎo)作用。
2.2 Android實(shí)訓(xùn)的支撐知識(shí)點(diǎn)
2.2.1 面向?qū)ο笈cMVC分層思想
企業(yè)級(jí)的項(xiàng)目中框架的使用是非常普遍的,框架中最重要的是面向?qū)ο笏枷?。面向?qū)ο笏枷胍话阍贘ava或者C++課程中都會(huì)有所涉及,但是計(jì)算機(jī)二級(jí)考試更側(cè)重對(duì)Java基本輸入輸出、循環(huán)控制和數(shù)組的考查,導(dǎo)致學(xué)生學(xué)習(xí)方向的偏差,因此在教學(xué)活動(dòng)中需要進(jìn)行面向?qū)ο笏季S的啟發(fā)與引導(dǎo)。
MVC是模型(model)—視圖(view)—控制器(controller)的縮寫,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個(gè)部件里面,在改進(jìn)和個(gè)性化定制界面及用戶交互的同時(shí)不需要重新編寫業(yè)務(wù)邏輯。MVC分層是一切框架的思想來源,但在Java或C++的課程中少有提及,需要補(bǔ)充講解[6]。
2.2.2 XML語言
XML是可擴(kuò)展標(biāo)記語言,一般高校很少單獨(dú)開設(shè)這門課程。在Android實(shí)訓(xùn)中,只用XML編寫圖形化用戶界面,因此可對(duì)XML語言進(jìn)行初步講解。
2.2.3 軟件測(cè)試
軟件測(cè)試(software testing),描述一種用來促進(jìn)鑒定軟件的正確性、完整性、安全性的過程。在Android實(shí)訓(xùn)中主要采用黑盒測(cè)試,檢測(cè)Bug,以完善軟件。
具體支撐課程與知識(shí)點(diǎn)以及對(duì)實(shí)訓(xùn)的支撐度如表1所示。
表1 Android軟件開發(fā)綜合實(shí)訓(xùn)支撐體系一覽表
安徽理工大學(xué)信息與計(jì)算科學(xué)專業(yè)的實(shí)訓(xùn)開發(fā)課程已經(jīng)開展了多年,期間有很多失敗的教訓(xùn),比如三人一組自選題目開發(fā),有的學(xué)生自擬題目過于簡單,脫離實(shí)際,達(dá)不到鍛煉能力的目的;再如單人一組,全班做同一個(gè)項(xiàng)目,有些學(xué)生由于基礎(chǔ)差而無法完成,無法鍛煉學(xué)生的團(tuán)隊(duì)協(xié)作能力。為了提高實(shí)訓(xùn)課程教學(xué)質(zhì)量,可以借鑒企業(yè)項(xiàng)目開發(fā)經(jīng)驗(yàn),對(duì)Android實(shí)訓(xùn)課程要求學(xué)生6人一組,案例由指導(dǎo)教師設(shè)計(jì)。案例的設(shè)計(jì)要貼近校園生活,便于激發(fā)學(xué)生興趣,同時(shí)要兼顧軟件復(fù)雜度與課時(shí)量的匹配[7-8]。
3.1 案例的需求分析
以“校園一鍵通”為例,介紹案例的設(shè)計(jì)流程與技術(shù)標(biāo)準(zhǔn)。當(dāng)前校園生活的通信手段多樣,如電話、短信、QQ、微信、飛信等。校園中的聯(lián)絡(luò)主要體現(xiàn)在同學(xué)間一對(duì)一的交流;教師、輔導(dǎo)員與學(xué)生間的一對(duì)多的通知。面臨的問題如下:(1)輔導(dǎo)員、教師發(fā)通知時(shí)打電話耗時(shí)費(fèi)力,發(fā)飛信僅限移動(dòng)用戶免費(fèi),發(fā)QQ群、微信群可能被屏蔽或忽視;(2)同學(xué)間交流需要維護(hù)大量的QQ群、微信群,重要信息與閑聊信息混在一起。可見,需要一款專門的APP軟件一次性解決以上問題。
3.2 功能模塊設(shè)計(jì)
該案例項(xiàng)目為一個(gè)基于云數(shù)據(jù)庫的社交軟件,這里推薦使用Bmob云(官網(wǎng):www.bmob.cn)。整個(gè)功能模塊包含注冊(cè)、登錄、創(chuàng)建班級(jí)、加入班級(jí)、一對(duì)一通信和消息推送等功能。功能模塊如圖1所示。
圖1 系統(tǒng)功能模塊圖
系統(tǒng)中部分主要功能及要求:(1)注冊(cè)功能。用戶注冊(cè)時(shí)需要輸入用戶名、密碼、學(xué)校、學(xué)院、用戶類型(學(xué)生、教師、輔導(dǎo)員)、手機(jī)號(hào)碼。為了防止惡意注冊(cè),用戶注冊(cè)需通過手機(jī)短信驗(yàn)證,驗(yàn)證成功后方能注冊(cè);(2)登錄。主要驗(yàn)證用戶名和密碼,登錄后系統(tǒng)根據(jù)用戶類型跳轉(zhuǎn)到不同的界面;(3)創(chuàng)建班級(jí)。教師、輔導(dǎo)員有創(chuàng)建班級(jí)的權(quán)限,班級(jí)屬性包含學(xué)校、學(xué)院、專業(yè)、年級(jí)、班級(jí),教師和輔導(dǎo)員所創(chuàng)建的班級(jí)只能是本身所屬的學(xué)校及學(xué)院內(nèi)的班級(jí);(4)加入班級(jí)。學(xué)生用戶只有加入班級(jí)的權(quán)限,所加入的班級(jí)只能是本身所屬的學(xué)校、學(xué)院、專業(yè)、年級(jí)相同的班級(jí),并且只能加入一個(gè)班級(jí);(5)一對(duì)一通信。所有用戶可以在班級(jí)內(nèi)一對(duì)一發(fā)送消息,也可以調(diào)用Intent電話功能直接打電話;(6)消息推送。教師和輔導(dǎo)員可以使用消息推送功能將通知信息發(fā)送至學(xué)生手機(jī)。
4.1 指導(dǎo)教師負(fù)責(zé)制
將案例功能模塊和設(shè)計(jì)要求布置給學(xué)生后,由學(xué)生負(fù)責(zé)詳細(xì)設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、代碼編寫和項(xiàng)目文檔的撰寫。學(xué)生6人一組,雖然小組長負(fù)責(zé)項(xiàng)目管理,但是大多數(shù)學(xué)生尚不具備項(xiàng)目管理經(jīng)驗(yàn)和能力。在項(xiàng)目的開發(fā)過程中往往出現(xiàn)團(tuán)隊(duì)失控問題,成員間很難相互補(bǔ)充,開發(fā)進(jìn)度緩慢,以至于最后無法完成項(xiàng)目。經(jīng)過討論和探索,得出并實(shí)行了指導(dǎo)教師負(fù)責(zé)制。為了提高實(shí)訓(xùn)質(zhì)量,在實(shí)訓(xùn)課中每個(gè)班安排兩名指導(dǎo)教師。每位教師負(fù)責(zé)三個(gè)小組,對(duì)項(xiàng)目開發(fā)的全過程進(jìn)行啟發(fā)式教學(xué),并扮演三個(gè)角色:(1)技術(shù)支持工程師。在開發(fā)過程中學(xué)生會(huì)碰到很多技術(shù)難題,指導(dǎo)教師在實(shí)訓(xùn)課程中全程提供技術(shù)支持。在這個(gè)過程中,教師不但要解決問題,更要側(cè)重于啟發(fā)式教學(xué),注重學(xué)生自學(xué)能力的培養(yǎng);(2)項(xiàng)目經(jīng)理。學(xué)生開發(fā)項(xiàng)目中往往沒有工程管理意識(shí),想到哪就做到哪,無法控制進(jìn)度。指導(dǎo)教師需要規(guī)定開發(fā)階段,并督促學(xué)生按時(shí)完成;(3)客戶。學(xué)生開發(fā)項(xiàng)目的目的性很強(qiáng),所有代碼都是僅僅完成功能,健壯性很差,比如注冊(cè)用戶對(duì)用戶名合法性問題考慮較少。指導(dǎo)教師要扮演客戶,挑出問題,與學(xué)生爭論,讓學(xué)生完善項(xiàng)目,鍛煉學(xué)生的表述能力,培養(yǎng)他們的職業(yè)素養(yǎng)。
4.2 分階段達(dá)標(biāo)驗(yàn)收
軟件開發(fā)本身是非常復(fù)雜的過程,所以對(duì)開發(fā)進(jìn)度的控制與分階段交付是最后成功的保證。分階段驗(yàn)收主要有以下優(yōu)點(diǎn):(1)強(qiáng)化學(xué)生對(duì)軟件開發(fā)規(guī)范化、標(biāo)準(zhǔn)化和工程化的認(rèn)識(shí)和理解;(2)鍛煉學(xué)生團(tuán)隊(duì)協(xié)作能力,適應(yīng)協(xié)調(diào)工作機(jī)制;(3)培養(yǎng)流程化開發(fā)與項(xiàng)目分批交付的職業(yè)素養(yǎng)。
在Android實(shí)訓(xùn)的開發(fā)過程中建議分為三個(gè)階段開發(fā)和驗(yàn)收,如表2所示。學(xué)生最后的實(shí)訓(xùn)成績由三個(gè)階段的分?jǐn)?shù)相加求得。
表2 Android實(shí)訓(xùn)三個(gè)階段的成果驗(yàn)收表
經(jīng)過討論和探索,我們明確了Android實(shí)訓(xùn)課程的教學(xué)目的和目標(biāo)。指導(dǎo)教師精心設(shè)計(jì)案例的模塊以及功能,量化學(xué)生的設(shè)計(jì)任務(wù),嚴(yán)格地規(guī)范學(xué)生的開發(fā)過程;在開發(fā)過程中分三個(gè)階段驗(yàn)收和評(píng)價(jià)學(xué)生的成果,增強(qiáng)學(xué)生的工程化、標(biāo)準(zhǔn)化和規(guī)范化理念。通過實(shí)訓(xùn)課程的鍛煉,使學(xué)生初步具備企業(yè)所需要的工程能力。
[1]翟大昆,陳春茶.Android項(xiàng)目開發(fā)詳解[M].北京:機(jī)械工業(yè)出版社,2012(4):57-60.
[2]吳中博,袁磊,胡春陽.三階段軟件開發(fā)實(shí)訓(xùn)教學(xué)研究與實(shí)踐[J].現(xiàn)代計(jì)算機(jī),2015(5):17-20.
[3]肖蕾,鐘瑛,翁偉.軟件開發(fā)綜合實(shí)訓(xùn)課程的教學(xué)改革與實(shí)踐[J].計(jì)算機(jī)教育,2012(10):105-107.
[4]鄭根讓,朱建樓.計(jì)算機(jī)軟件專業(yè)實(shí)訓(xùn)的真實(shí)項(xiàng)目引入探索[J].職業(yè)教育研究,2009(6):109-110.
[5]張本成,龔偉.面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)改革探討[J].內(nèi)蒙古師范大學(xué)學(xué)報(bào):教育科學(xué)版,2008(1):134-136.
[6]候九陽,鄭國禹,趙福軍.計(jì)算機(jī)專業(yè)工程實(shí)訓(xùn)教學(xué)改革的探索與實(shí)踐[J].信息系統(tǒng)工程,2010(2):28-29.
[7]吳紹根.基于案例在線的軟件開發(fā)綜合實(shí)訓(xùn)項(xiàng)目設(shè)計(jì)[J].計(jì)算機(jī)教育,2009(7):104-106.
[8]曾明星,周清平,蔡國民.基于校園私有云的軟件工程實(shí)驗(yàn)實(shí)訓(xùn)綜合平臺(tái)研究與實(shí)踐[J].實(shí)驗(yàn)技術(shù)與管理,2015(4):161-164.
2016-08-23
安徽省質(zhì)量工程項(xiàng)目“安徽省信息技術(shù)基礎(chǔ)省級(jí)示范實(shí)驗(yàn)實(shí)訓(xùn)中心”(2013sxzx012);安徽省質(zhì)量工程項(xiàng)目“安徽省信息與計(jì)算科學(xué)省級(jí)專業(yè)綜合改革試點(diǎn)”(2014zy028);安徽省質(zhì)量工程項(xiàng)目“工科院校中理科專業(yè)學(xué)生創(chuàng)新能力培養(yǎng)的探索與實(shí)踐”(2015jyxm136);安徽省質(zhì)量工程項(xiàng)目“大學(xué)生移動(dòng)互聯(lián)網(wǎng)創(chuàng)客實(shí)驗(yàn)室”(2015ckjh015)。
陳小奎(1978- ),男,講師,碩士,從事計(jì)算機(jī)應(yīng)用研究。
G642
A
2095-7602(2017)02-0119-04