文/李躍飛
《Java程序設(shè)計》是我校軟件技術(shù)專業(yè)的專業(yè)基礎(chǔ)課,開設(shè)在一年級第二學(xué)期,前導(dǎo)課程有《C語言程序設(shè)計》。課程一共開設(shè)了96課時,理論課與實訓(xùn)課的比例為1:2。
在教學(xué)過程中,我們發(fā)現(xiàn)了以下問題。
1.學(xué)生前半學(xué)期學(xué)習(xí)興趣高,大部分的學(xué)生愿意參與到理論和實踐教學(xué)中來。但是,隨著課程知識難度和代碼量的增加,一部分學(xué)生開始不能適應(yīng)教學(xué),體現(xiàn)在:基礎(chǔ)知識不扎實;不能靈活應(yīng)用所學(xué)知識;實踐能力不高。
2.教師一般采用這樣的教學(xué)模式:根據(jù)教材章節(jié)組織理論教學(xué),實訓(xùn)課針對當(dāng)次理論課設(shè)計內(nèi)容。整個教學(xué)圍繞“知識點”展開,卻忽略了知識點之間的聯(lián)系,缺乏設(shè)計型、創(chuàng)新型和綜合型的實驗,與實際應(yīng)用脫節(jié)。
項目驅(qū)動教學(xué)法是指在教學(xué)過程中,以學(xué)生為中心,以項目為驅(qū)動的教學(xué)方式。其項目都是與企業(yè)實際生產(chǎn)過程或現(xiàn)實商業(yè)活動有直接的關(guān)系,能轉(zhuǎn)化成具有實際應(yīng)用價值的產(chǎn)品為目的的任務(wù)。項目教學(xué)法的特點是:
1.學(xué)生是核心。項目驅(qū)動教學(xué)法的核心是學(xué)生,通過學(xué)生自主、協(xié)同、探索式的學(xué)習(xí),完成項目的開發(fā)。
2.項目是導(dǎo)向。項目的主題與真實世界密切聯(lián)系,以項目為驅(qū)動力。
3.強(qiáng)調(diào)實踐性。項目不是針對知識點設(shè)計的案例,而是與實際應(yīng)用緊密聯(lián)系的軟件,項目驅(qū)動強(qiáng)調(diào)的是學(xué)生的實踐能力的培養(yǎng)。
4.具有綜合性。選取的項目不是針對某一個知識點,而是一個完整、有實際意義的軟件,它綜合了多個知識點且利用軟件工程思想來管理項目的開發(fā)。
5.學(xué)習(xí)評價的多元性。項目教學(xué)法的評價注重學(xué)生在項目活動中能力的發(fā)展,測評內(nèi)容包括學(xué)生參與活動各環(huán)節(jié)的表現(xiàn)以及完成作業(yè)的質(zhì)量。
1.教學(xué)目標(biāo)。根據(jù)人才培養(yǎng)方案和教學(xué)大綱,確定知識目標(biāo)為掌握以下六個模塊的內(nèi)容。
(1)Java基礎(chǔ),包括標(biāo)識符、變量、常量、運算符和流程控制語句。(2)面向?qū)ο蟪绦蛟O(shè)計知識,包括類型、對象、接口、封裝、繼承和多態(tài)。(3)數(shù)據(jù)與異常處理,包括常用的I/O流、異常類及異常處理模式。(4)界面設(shè)計,包括常用的控件類、布局管理器及事件監(jiān)聽器。(5)網(wǎng)絡(luò)與多線程。能力目標(biāo)為理解面向?qū)ο蟪绦蛟O(shè)計思想,能編碼實現(xiàn)業(yè)務(wù)流程較簡單的軟件系統(tǒng),具備一定的代碼調(diào)試能力。
素質(zhì)目標(biāo)為具備一定的獨立思考、團(tuán)隊合作、勇于探索等素質(zhì)。
2.項目選題原則。項目選題是教學(xué)設(shè)計的關(guān)鍵,選題既要涵蓋課程知識體系、與實際應(yīng)用緊密聯(lián)系、還要能提高學(xué)生的能力和素質(zhì)。合理進(jìn)行項目選題,應(yīng)考慮以下幾個因素:
一是規(guī)模和難度。規(guī)模應(yīng)適中,難度具有“階梯”性。項目過小,難以提升綜合應(yīng)用能力和實踐能力;項目過大,學(xué)生無法在有限的時間內(nèi)完成,影響教學(xué)進(jìn)度、有損學(xué)生信心;建議選取若干“階梯”性項目,難度由小到大。
二是應(yīng)用性和趣味性。項目選擇應(yīng)具有一定應(yīng)用價值,且是學(xué)生比較熟悉的領(lǐng)域,能激發(fā)學(xué)生的學(xué)習(xí)興趣。
3.項目實施。項目采用小組合作開發(fā)的方式進(jìn)行,4~5人為一組。項目實施過程按照軟件工程的思想來管理,分為需求分析、概要和詳細(xì)設(shè)計、編碼和測試等幾個階段。
(1)需求分析階段。需求分析是基礎(chǔ),直接影響項目的開展。在此階段,教師扮演用戶角色,學(xué)生通過與“客戶”交流、小組成員之間交流、探究已有系統(tǒng)的功能等方式,掌握系統(tǒng)的需求,撰寫需求分析文檔。
(2)設(shè)計階段。根據(jù)項目的規(guī)模和復(fù)雜度,對項目做概要設(shè)計或詳細(xì)設(shè)計,或兩種設(shè)計都做。概要設(shè)計的主要任務(wù)是把需求分析得到的系統(tǒng)擴(kuò)展用例圖轉(zhuǎn)換為軟件結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。設(shè)計軟件結(jié)構(gòu)的具體任務(wù)是:將一個復(fù)雜系統(tǒng)按功能進(jìn)行模塊劃分、建立模塊的層次結(jié)構(gòu)及調(diào)用關(guān)系、確定模塊間的接口及人機(jī)界面等。數(shù)據(jù)結(jié)構(gòu)設(shè)計包括數(shù)據(jù)特征的描述、確定數(shù)據(jù)的結(jié)構(gòu)特性。詳細(xì)設(shè)計的主要任務(wù)是設(shè)計每個模塊的實現(xiàn)算法、所需的局部數(shù)據(jù)結(jié)構(gòu)。撰寫設(shè)計文檔。
(3)編碼和測試階段
編碼是根據(jù)項目設(shè)計階段中對數(shù)據(jù)結(jié)構(gòu)、模塊功能以及模塊之間的調(diào)用關(guān)系等方面的描述、用Java語言編寫程序、實現(xiàn)各模塊功能的過程。在編碼過程中,需要做單元的白盒測試,編碼結(jié)束后要做集成測試和功能測試。
4.評價與考核。采用復(fù)合形式做出評價與考核。一是考核項目進(jìn)展情況,根據(jù)學(xué)生提交的源碼,從功能實現(xiàn)、編碼規(guī)范等角度做出評價;二是考核文檔撰寫情況,根據(jù)學(xué)生提交的文檔,從文檔是否齊全、編寫是否規(guī)范等角度做出評價;三是考核項目實施的真實性,通過答辯的方式來做出評價;四是考核團(tuán)隊合作情況,根據(jù)答辯情況促進(jìn)學(xué)生之間的交流,并對小組成員間的合作和互助情況作出評價。
軟件技術(shù)專業(yè)的培養(yǎng)目標(biāo)是培養(yǎng)適應(yīng)企業(yè)需要,能夠解決實際問題的專業(yè)應(yīng)用型人才。將項目驅(qū)動法應(yīng)用在《Java程序設(shè)計》課程教學(xué)中,以項目來驅(qū)動教學(xué),不僅能充分調(diào)動學(xué)生的學(xué)習(xí)興趣和學(xué)習(xí)自主性,更能提高學(xué)生的實踐能力和項目開發(fā)能力,培養(yǎng)學(xué)生的團(tuán)隊合作精神。為學(xué)生從事軟件開發(fā)工作,奠定了知識和能力基礎(chǔ)。
[1]趙丹丹,李錫祚,宋海玉,王玲芬.項目驅(qū)動教學(xué)模式在計算機(jī)類人才培養(yǎng)中的實踐 [J].實驗技術(shù)與管理,2011, (7):244-247.
[2]朱紅英,宮曉曼.基于項目驅(qū)動的DACUM模型Java課程開發(fā)建設(shè)研究[J].科技通報,2014,30(11):241-244.
[3]謝軍,徐莉芳.項目驅(qū)動法在計算機(jī)教學(xué)中的運用 [J].教育學(xué)術(shù)月刊,2012,6:104-105.