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