宋喜佳 楊亮 劉偉 馮學(xué)妮
摘要:針對(duì)Android應(yīng)用程序開發(fā)課程中存在的問(wèn)題,以“聽得懂、學(xué)得活、做得出”為教學(xué)目標(biāo),遵循CDIO理念,提出基于多個(gè)小案例和一個(gè)綜合項(xiàng)目驅(qū)動(dòng)的Android課程教學(xué)改革方法 介紹選擇項(xiàng)目的基本原則,項(xiàng)目的迭代開發(fā)方法以及對(duì)學(xué)生作品進(jìn)行差別化考核等具體的教學(xué)實(shí)施過(guò)程
關(guān)鍵詞:CDIO;項(xiàng)目驅(qū)動(dòng);迭代開發(fā);Android
0.引言
隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的快速發(fā)展以及Android操作系統(tǒng)在智能終端市場(chǎng)的日益興盛,越來(lái)越多的高校和培訓(xùn)機(jī)構(gòu)開設(shè)了與Android系統(tǒng)相關(guān)的課程,這對(duì)該技術(shù)在我國(guó)的快速普及發(fā)揮了重要作用、同時(shí)有效填補(bǔ)了Android技術(shù)人才市場(chǎng)目前存在的巨大缺口。
Android應(yīng)用程序開發(fā)作為一門新興課程,其教學(xué)方法的研究和實(shí)踐還處于探索階段。由于立足于“應(yīng)用程序開發(fā)”,教學(xué)目標(biāo)主要是講授調(diào)用Android操作系統(tǒng)應(yīng)用框架層提供的API及相關(guān)Java類庫(kù)的方法,培養(yǎng)學(xué)生開發(fā)Android應(yīng)用程序和實(shí)際工程項(xiàng)目的能力。從授課的內(nèi)容來(lái)講,難度不是很大,但是問(wèn)題在于學(xué)生“聽得懂”只是教學(xué)目標(biāo)的“第1步”,Android作為一門極其注重動(dòng)手實(shí)踐能力的課程,如何“學(xué)得活、做得出”才是難點(diǎn)所在。傳統(tǒng)的“老師講,學(xué)生聽”的教學(xué)方法能夠較好地達(dá)到“第1步”,但是在加深學(xué)生對(duì)知識(shí)的理解,靈活應(yīng)用方面則效果較差,即使配合實(shí)驗(yàn)課,也因?yàn)閷W(xué)時(shí)限制和教學(xué)進(jìn)度安排等因素,導(dǎo)致學(xué)生只能完成一些簡(jiǎn)單的原理驗(yàn)證性實(shí)驗(yàn),這對(duì)提高學(xué)生動(dòng)手實(shí)踐能力的作用不是很大。為達(dá)到“學(xué)得會(huì)、學(xué)得活、做得出”的教學(xué)目標(biāo),我們引入了CDIO工程教育理念,以眾多小案例和一個(gè)綜合性較強(qiáng)的任務(wù)為項(xiàng)目進(jìn)行授課,讓學(xué)生以一種主動(dòng)的、實(shí)踐的、課程之間有機(jī)聯(lián)系的方式來(lái)學(xué)習(xí)工程
1、CDIO工程教育模式概述
CDIO工程教育模式是由麻省理工學(xué)院、瑞典查爾摩斯工業(yè)大學(xué)、林雪平大學(xué)、瑞典皇家工學(xué)院共同創(chuàng)立的,是一個(gè)國(guó)際性的、廣泛、較全面和系統(tǒng)的工程教育改革模式,最早在2005年由汕頭大學(xué)、清華大學(xué)等引入國(guó)內(nèi),并迅速引起強(qiáng)烈反響。
CDIO是構(gòu)思(Conceive)、設(shè)計(jì)(Design)、實(shí)施( Implement)、運(yùn)作(Operate)4個(gè)英文單詞的縮寫。其中,“構(gòu)思”指明確客戶需求,考慮技術(shù)、企業(yè)戰(zhàn)略和制度等因素,不斷改進(jìn)概念、技術(shù)和商業(yè)計(jì)劃;“設(shè)計(jì)”值指定開發(fā)的產(chǎn)品系統(tǒng)所需要的各種計(jì)劃、圖紙和算法;“實(shí)施”指把設(shè)計(jì)轉(zhuǎn)變?yōu)楫a(chǎn)品的過(guò)程,包括硬件制造、軟件編程、測(cè)試、檢查和驗(yàn)證;“運(yùn)行”指對(duì)產(chǎn)品系統(tǒng)的維護(hù)和淘汰等。CDIO模式以產(chǎn)品、生產(chǎn)流程和系統(tǒng)從研發(fā)到運(yùn)行的生命周期為載體,通過(guò)系統(tǒng)的產(chǎn)品設(shè)計(jì)培養(yǎng)學(xué)生專業(yè)技術(shù)知識(shí)、個(gè)人能力、職業(yè)能力和態(tài)度、團(tuán)隊(duì)工作和交流能力,培養(yǎng)在企業(yè)和社會(huì)環(huán)境下對(duì)產(chǎn)品系統(tǒng)進(jìn)行構(gòu)思、設(shè)計(jì)、實(shí)施、運(yùn)行的能力等綜合素質(zhì)。
2、課程改革
2.1總體思路
遵循CDIO教育理念,以眾多小案例和一個(gè)綜合性較強(qiáng)的工程項(xiàng)目為主線,將學(xué)生應(yīng)該掌握的專業(yè)知識(shí)、技能和職業(yè)素質(zhì)融入到整個(gè)教學(xué)過(guò)程中,課程改革的總體思路如下。
1)選擇合適的項(xiàng)目。
選擇項(xiàng)目遵循以下原則:(1)項(xiàng)目來(lái)源要實(shí)時(shí)、實(shí)際,以此來(lái)保證所學(xué)技術(shù)的先進(jìn)性和實(shí)用性;(2)項(xiàng)目規(guī)模大小要適度,所涉及的知識(shí)點(diǎn)要與教學(xué)大綱的內(nèi)容盡量吻合;(3)項(xiàng)目中涉及的各功能邏輯耦合度要低,便于按照各知識(shí)點(diǎn)進(jìn)行子項(xiàng)目劃分,子項(xiàng)目以容易找到相似案例為宜,以利于教學(xué)和實(shí)踐;(4)項(xiàng)目應(yīng)具有擴(kuò)展性,便于學(xué)生進(jìn)行功能擴(kuò)展和技術(shù)知識(shí)創(chuàng)新。
2)選取合適的教材。
鑒于Android應(yīng)用開發(fā)過(guò)程中會(huì)涉及大量知識(shí),如多媒體、數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)編程等,顯然任何一本Android相關(guān)教材都無(wú)法完整覆蓋全部知識(shí)。因此,建議選擇王向輝等編著的《Android應(yīng)用程序開發(fā)》(第2版)作為課程教材,由于該教材講解的內(nèi)容相對(duì)集中和精簡(jiǎn),適合作為課程知識(shí)的提示線索,便于學(xué)生梳理思路。同時(shí),對(duì)該書中沒(méi)有講徹底的知識(shí),可以使用參考圖書,以便于學(xué)生進(jìn)一步深入學(xué)習(xí)。
3)采用差別化的考核方式。
以CDIO理念為導(dǎo)向,通過(guò)課程設(shè)計(jì)作品以及撰寫設(shè)計(jì)報(bào)告的方式對(duì)學(xué)生的學(xué)習(xí)效果進(jìn)行考核。在考核過(guò)程中,進(jìn)行差別化對(duì)待:對(duì)于基礎(chǔ)較好的同學(xué),允許自主選擇課程設(shè)計(jì)的研究?jī)?nèi)容,考核時(shí)重點(diǎn)考核作品的實(shí)現(xiàn)難度和創(chuàng)新性;對(duì)于其他同學(xué),則要完成教師指定的題目,重點(diǎn)考核功能的完整性和報(bào)告撰寫的規(guī)范性。當(dāng)然也要鼓勵(lì)學(xué)生分組完成課程設(shè)計(jì),以此培養(yǎng)學(xué)生的團(tuán)隊(duì)協(xié)作能力。
2.2具體實(shí)施
遵循CDIO教育理念,通過(guò)項(xiàng)目讓學(xué)生進(jìn)行“做中學(xué)”,進(jìn)而達(dá)到“學(xué)得活,做得出”,教師主要充當(dāng)“顧問(wèn)”,當(dāng)學(xué)生遇到困難或者疑惑時(shí)給予幫助和指導(dǎo)。按照構(gòu)思、設(shè)計(jì)、實(shí)施、運(yùn)作的流程,具體實(shí)施過(guò)程如下。
1)構(gòu)思。
該階段主要引導(dǎo)學(xué)生發(fā)現(xiàn)問(wèn)題,確定合適項(xiàng)目,明顯用戶需求并制定開發(fā)計(jì)劃。鑒于采用差別化的考核方式,對(duì)于基礎(chǔ)較好的學(xué)生,主要引導(dǎo)他們依據(jù)前面所述的項(xiàng)目選取原則進(jìn)行自主選題,對(duì)于其他學(xué)生則完成教師給定的題目,我們給定的項(xiàng)目題目是“天氣預(yù)報(bào)軟件的開發(fā)”,項(xiàng)目功能需求主要參考了王向輝等編著的《Android應(yīng)用程序開發(fā)》(第2版)的第12章節(jié)內(nèi)容,包括設(shè)計(jì)界面、天氣信息顯示、通過(guò)接收短信響應(yīng)用戶請(qǐng)求、向用戶推送天氣短信等基本內(nèi)容。同時(shí),為了鼓勵(lì)學(xué)生深入學(xué)習(xí),我們還進(jìn)一步以一些商業(yè)天氣預(yù)報(bào)軟件作為案例,引導(dǎo)學(xué)生自主分析,提取其他功能需求,如基于GPS定位當(dāng)前城市,添加生活助手和健康提示,更換壁紙等。
2)設(shè)計(jì)
設(shè)計(jì)過(guò)程主要引導(dǎo)學(xué)生找到項(xiàng)目的設(shè)計(jì)思路、功能模塊劃分、實(shí)現(xiàn)步驟、實(shí)施過(guò)程中需要解決的關(guān)鍵問(wèn)題等。我們還借鑒了敏捷開發(fā)的基本原則,要求學(xué)生在設(shè)汁時(shí)“以人為本”,將整個(gè)開發(fā)過(guò)程劃分為幾個(gè)階段,每個(gè)階段都完成一個(gè)可以直接運(yùn)行的DEMO版本,后一階段的DEMO版小功能需要在前一階段版本基礎(chǔ)上進(jìn)行功能增添,刪改,優(yōu)化等。通過(guò)這樣的迭代開發(fā),會(huì)讓學(xué)生深刻體會(huì)到在設(shè)計(jì)階段的模塊劃分,接口設(shè)計(jì)等在軟件開發(fā)過(guò)程中的重要地位。同時(shí)也方便教師對(duì)學(xué)生的工作進(jìn)度進(jìn)行記錄和管理。
3)實(shí)施。
實(shí)施是項(xiàng)目的具體實(shí)現(xiàn)階段。對(duì)于項(xiàng)目實(shí)現(xiàn)過(guò)程中需要用到的知識(shí)點(diǎn),我們也是通過(guò)案例,并且以迭代的方式向?qū)W生講述。如首先實(shí)現(xiàn)的界面設(shè)計(jì)階段,我們通過(guò)一個(gè)自己設(shè)計(jì)的簡(jiǎn)單天氣預(yù)報(bào)界面進(jìn)行講解,其中只包括“當(dāng)前天氣,當(dāng)前濕度,當(dāng)前天氣的圖片”3個(gè)元素。初次講述時(shí),只要求學(xué)生使用簡(jiǎn)單的屬性值進(jìn)行設(shè)置,如TcxtView的text屬性等,然后我們介紹Android的網(wǎng)絡(luò)數(shù)據(jù)通信方法,并通過(guò)這些方法獲得由服務(wù)器返回的天氣信息,通常為XML或者JSON格式,進(jìn)而介紹XML和JSON的解析方法,最后利用解析出的數(shù)據(jù)對(duì)前面設(shè)計(jì)的界面內(nèi)容進(jìn)行填充。通過(guò)這個(gè)方式學(xué)生可以輕松完成項(xiàng)目迭代開發(fā)的第一階段,建立起學(xué)習(xí)興趣和完成后續(xù)其他功能的信心。
4)運(yùn)作。
迭代開發(fā)的好處是教師可以在項(xiàng)目的任意階段對(duì)學(xué)生工作進(jìn)度進(jìn)行檢查,因此學(xué)生必須確保在每個(gè)不同的開發(fā)階段都具有一個(gè)可以運(yùn)行的Demo版本,Demo視情況可以在真機(jī)或者AVD上運(yùn)行演示。最終提交的內(nèi)容包括項(xiàng)目工程源代碼,可以直接安裝運(yùn)行的APK文件,功能演示視頻以及課程設(shè)計(jì)報(bào)告。在課程報(bào)告中,主要介紹項(xiàng)目產(chǎn)品功能模塊設(shè)計(jì),以及項(xiàng)目開發(fā)過(guò)程中遇到的主要困難和解決方法,還有尚需擴(kuò)展和改善的功能等。
3、結(jié)語(yǔ)
通過(guò)在Android應(yīng)用開發(fā)程中引入CDIO理念,顯著提高了學(xué)生學(xué)習(xí)的主動(dòng)性和積極性,學(xué)生的動(dòng)手能力和綜合素質(zhì)都得到了很好的鍛煉同時(shí),將CDIO理念和項(xiàng)目迭代開發(fā)結(jié)合在一起,一方面可以有效地跟蹤學(xué)生的項(xiàng)目開進(jìn)度,便于教師及時(shí)發(fā)現(xiàn)和幫助學(xué)生解決問(wèn)題,因此受到了學(xué)生的廣泛歡迎;另一方面也有利于教師觀察學(xué)生的平時(shí)表現(xiàn),能夠?qū)W(xué)生的作品和學(xué)習(xí)態(tài)度給出更加客觀的評(píng)價(jià)。在教學(xué)實(shí)踐中我們發(fā)現(xiàn),目前這種做法對(duì)培養(yǎng)學(xué)生團(tuán)隊(duì)協(xié)作開發(fā)以及自學(xué)能力方面仍不明顯,需要進(jìn)一步改進(jìn)和提高。