劉輝玲 葉鋒
(1武漢船舶職業(yè)技術(shù)學(xué)院電子系,湖北武漢430051;2江漢大學(xué)數(shù)學(xué)與計(jì)算機(jī)學(xué)院,湖北武漢430056)
Java因其平臺(tái)無關(guān)性、安全機(jī)制、高可靠性、多線程和內(nèi)嵌網(wǎng)絡(luò)支持等特性而成為目前最流行的編程語言之一?!禞ava程序設(shè)計(jì)》已成為計(jì)算機(jī)專業(yè)教學(xué)體系中的一門重要的課程。
在Java教學(xué)的過程中,很多Java課教師都會(huì)碰到這樣一些問題。第一,Java知識(shí)點(diǎn)太多、涉及面太廣,而課時(shí)量卻相對(duì)較少。第二、對(duì)于教材上如對(duì)象、繼承、多態(tài)和線程等概念,學(xué)生能很熟練背誦,卻不能理解。第三、很多學(xué)生學(xué)完這門課程以后,僅有零散的各知識(shí)點(diǎn),不能把所學(xué)知識(shí)點(diǎn)付諸實(shí)踐應(yīng)用。因此,如何較合理組織Java教學(xué),使學(xué)生熟練掌握J(rèn)ava的基本語法,增強(qiáng)實(shí)踐動(dòng)手能力,更全面地提高Java語言的程序設(shè)計(jì)能力,是每個(gè)Java教師應(yīng)該思考的問題。
經(jīng)過幾年的Java教學(xué)探索和總結(jié),筆者認(rèn)為在教學(xué)過程中,采用任務(wù)驅(qū)動(dòng)、項(xiàng)目教學(xué)方式,注重實(shí)踐教學(xué),可收到較好的教學(xué)效果。
任務(wù)驅(qū)動(dòng)教學(xué)模式是教師把教學(xué)內(nèi)容設(shè)計(jì)成一個(gè)或多個(gè)具體的任務(wù),采取演示或講解等方式,給出完成任務(wù)的思路、方法、操作及結(jié)果,然后引導(dǎo)學(xué)生完成一個(gè)個(gè)具體的任務(wù)并掌握教學(xué)內(nèi)容,達(dá)到教學(xué)目標(biāo)。它是一種以學(xué)生主動(dòng)學(xué)習(xí),教師加以引導(dǎo)的教學(xué)方法,是“教—學(xué)—做”一體化的教學(xué)模式[1][2][3]。任務(wù)驅(qū)動(dòng)教學(xué)模式有別于傳統(tǒng)的教學(xué)模式。傳統(tǒng)教學(xué)模式建立在行為主義學(xué)習(xí)理論基礎(chǔ)之上,強(qiáng)調(diào)“刺激——反應(yīng)”,而任務(wù)驅(qū)動(dòng)教學(xué)建立在“建構(gòu)主義”教學(xué)理論上[4]。
《Java程序設(shè)計(jì)》的教學(xué)目的是要求學(xué)生熟練掌握J(rèn)ava的語法,運(yùn)用Java語言開發(fā)應(yīng)用程序的能力。其教學(xué)內(nèi)容涉及Java運(yùn)行環(huán)境、Java基本語法、面向?qū)ο蟮母拍睢D形界面、多線程、網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)編程等。如果采用傳統(tǒng)的教學(xué)模式,學(xué)生普遍反映課程內(nèi)容概念多、抽象而難以理解。
采用任務(wù)驅(qū)動(dòng)教學(xué)模式進(jìn)行教學(xué),教師教學(xué)和學(xué)生學(xué)習(xí)都圍繞如何完成任務(wù)而展開。教師教學(xué)思路清晰,學(xué)生學(xué)習(xí)目的明確。在學(xué)習(xí)過程中,學(xué)生不再是被動(dòng)地接受,而是主動(dòng)思考如何能將老師講解的內(nèi)容應(yīng)用到相關(guān)任務(wù)中,有助于學(xué)生由被動(dòng)學(xué)習(xí)轉(zhuǎn)換為主動(dòng)學(xué)習(xí)。在問題的解決過程中,不但能提高學(xué)生解決問題的能力,而且能夠培養(yǎng)他們互相協(xié)作的能力,培養(yǎng)良好的編程素質(zhì)。
“任務(wù)驅(qū)動(dòng)法”符合Java程序設(shè)計(jì)課程教學(xué)的層次性和實(shí)用性,符合由表及里逐層深入的學(xué)習(xí)途徑,符合探究式教學(xué)模式,便于學(xué)生循序漸進(jìn)地學(xué)習(xí)Java程序設(shè)計(jì)的知識(shí)和技能。在《Java程序設(shè)計(jì)》課程教學(xué)中采用“任務(wù)驅(qū)動(dòng)式”教學(xué)方法有利于構(gòu)建教學(xué)情景,營(yíng)造寬松的學(xué)習(xí)環(huán)境,激發(fā)學(xué)生的學(xué)習(xí)興趣;有利于學(xué)生自主學(xué)習(xí),獲得再學(xué)習(xí)的能力;有利于充分調(diào)動(dòng)學(xué)生的學(xué)習(xí)主動(dòng)性;有利于學(xué)生創(chuàng)新能力創(chuàng)新意識(shí)的培養(yǎng)。
任務(wù)驅(qū)動(dòng)教學(xué)模式的實(shí)現(xiàn)可分為提出任務(wù)、分析任務(wù)、完成任務(wù)和總結(jié)規(guī)律四個(gè)步驟[5]。
首先,教師根據(jù)教學(xué)進(jìn)度和相關(guān)知識(shí)點(diǎn)提出任務(wù)。教師按課程內(nèi)容劃分為工作任務(wù)單元,確定其能力目標(biāo)和知識(shí)目標(biāo),對(duì)每個(gè)單元設(shè)計(jì)要精心設(shè)計(jì)單項(xiàng)能力的訓(xùn)練任務(wù)。這是一個(gè)關(guān)鍵步驟,因?yàn)槿蝿?wù)的好壞決定了教學(xué)的進(jìn)展和效果。
教師在提出任務(wù)時(shí),需注意以下幾點(diǎn)原則:(一)所提出的任務(wù)要圍繞教學(xué)知識(shí)點(diǎn)展開。(二)所提出的任務(wù)難度要適中。如果任務(wù)完全超出了學(xué)生的能力范圍或者過于復(fù)雜,很有可能導(dǎo)致學(xué)生望而卻步,對(duì)任務(wù)失去信心,使教學(xué)失敗。(三)所提出的任務(wù)要貼近現(xiàn)實(shí)生活,來源于學(xué)生所熟悉的事物。這樣可引起學(xué)生的濃厚興趣和學(xué)習(xí)熱情,有利于教學(xué)的開展。
筆者在Java教學(xué)過程中,根據(jù)上述原則設(shè)計(jì)了相應(yīng)的任務(wù)。例如:在講授類和對(duì)象的概念時(shí),設(shè)計(jì)了一個(gè)圖形計(jì)算任務(wù)。該任務(wù)要求學(xué)生通過設(shè)置不同屬性和方法來描述不同的幾何圖形并計(jì)算其面積和體積。在講述網(wǎng)絡(luò)編程時(shí),設(shè)計(jì)了一個(gè)在線簡(jiǎn)易聊天室的任務(wù)。該任務(wù)要求學(xué)生使用控件設(shè)計(jì)界面,并能夠及時(shí)地接收和發(fā)送消息。這些任務(wù)既覆蓋了教學(xué)知識(shí)點(diǎn),又是學(xué)生熟悉的例子,把所學(xué)知識(shí)與實(shí)際應(yīng)用緊密聯(lián)系,可激發(fā)學(xué)生的興趣,從而增強(qiáng)學(xué)習(xí)的效果。
其次,教師在提出任務(wù)之后,要積極引導(dǎo)學(xué)生對(duì)任務(wù)進(jìn)行分析,得出完成任務(wù)的思路、方法和實(shí)現(xiàn)步驟。分析任務(wù)是任務(wù)驅(qū)動(dòng)教學(xué)模式的中心環(huán)節(jié)。分析任務(wù)時(shí),需注意以下幾點(diǎn)原則:(一)分析任務(wù)時(shí),要從學(xué)生的知識(shí)背景、結(jié)構(gòu)和思維角度出發(fā)。(二)分析過程要互動(dòng),要引導(dǎo)學(xué)生積極參與。(三)分析任務(wù)時(shí),不能脫離教學(xué)知識(shí)點(diǎn),要體現(xiàn)出教學(xué)知識(shí)點(diǎn)在任務(wù)中的應(yīng)用。分析任務(wù)這個(gè)環(huán)節(jié)不僅僅是針對(duì)于具體的任務(wù),更重要的是培養(yǎng)學(xué)生的分析問題的能力。
筆者分析在線簡(jiǎn)易聊天室時(shí),首先讓學(xué)生查看了常見的聊天工具,明確了發(fā)送消息和接收消息是其基本功能;接著向?qū)W生講解了Socket編程的基本原理;然后引導(dǎo)學(xué)生以面向?qū)ο笏枷敕治隽苏麄€(gè)任務(wù),抽象出相關(guān)類;最后講解了實(shí)現(xiàn)任務(wù)時(shí)需要注意的事項(xiàng)。
第三,學(xué)生完成任務(wù),邊學(xué)邊做。完成任務(wù)也是一個(gè)非常重要的環(huán)節(jié),是對(duì)前面的兩個(gè)環(huán)節(jié)的一個(gè)檢驗(yàn)。在完成任務(wù)的過程中,學(xué)生能夠及時(shí)地發(fā)現(xiàn)實(shí)際應(yīng)用中會(huì)遇到的各種問題,通過教師的指導(dǎo)、學(xué)生之間的交流或查閱相關(guān)資料予以解決。這樣,不但能提高學(xué)生解決問題的能力,而且能夠培養(yǎng)他們互相協(xié)作的能力。
最后,總結(jié)規(guī)律。總結(jié)可以從下面三個(gè)方面進(jìn)行:(一)學(xué)生對(duì)完成的任務(wù)進(jìn)行自我評(píng)價(jià)。(二)教師對(duì)學(xué)生的完成任務(wù)予以評(píng)價(jià),分析其得失。(三)教師總結(jié)這一類問題的規(guī)律,將實(shí)踐與理論結(jié)合,使學(xué)生對(duì)問題的認(rèn)識(shí)達(dá)到一個(gè)新的高度。
《Java程序設(shè)計(jì)》是一門實(shí)踐性很強(qiáng)的課程,實(shí)踐教學(xué)是其必不可少的組成部分。通過實(shí)踐教學(xué),增強(qiáng)學(xué)生動(dòng)手能力,達(dá)到全面提高學(xué)生運(yùn)用Java開發(fā)應(yīng)用程序的能力,也是Java教學(xué)目的所在。
受實(shí)踐教學(xué)的學(xué)時(shí)限制,筆者將實(shí)踐教學(xué)過程分為兩個(gè)部分。第一部分是與課堂教學(xué)相對(duì)應(yīng)的知識(shí)點(diǎn)實(shí)踐;第二部分是項(xiàng)目實(shí)踐。第二部分是第一部分的綜合運(yùn)用和提高。
對(duì)于知識(shí)點(diǎn)實(shí)踐而言,主要以課堂教學(xué)內(nèi)容為基礎(chǔ),在教師提供必要的參考資料、實(shí)踐工具和實(shí)驗(yàn)方法后,學(xué)生查閱參考資料,參照課堂教學(xué)已經(jīng)講授過的類似任務(wù),分析、設(shè)計(jì)出合乎目標(biāo)要求的程序,最終達(dá)到鞏固學(xué)生的知識(shí)點(diǎn)、提高學(xué)生動(dòng)手能力的目的。
所謂項(xiàng)目實(shí)踐是從企業(yè)真實(shí)項(xiàng)目中抽取出一部分作為子項(xiàng)目或模擬項(xiàng)目,模擬企業(yè)工作模式和工作流程的軟件項(xiàng)目開發(fā)過程。對(duì)于項(xiàng)目實(shí)踐而言,首先,教學(xué)內(nèi)容要以應(yīng)用能力培養(yǎng)為特色,要突出技術(shù)實(shí)用性,體現(xiàn)項(xiàng)目先進(jìn)性,使學(xué)生在學(xué)習(xí)過程中提高實(shí)踐編程能力;其次,所選取的項(xiàng)目要盡可能具備可擴(kuò)展的空間,使學(xué)生能夠在項(xiàng)目的逐步擴(kuò)展過程中學(xué)習(xí)相關(guān)知識(shí),掌握相關(guān)技能;第三,與企業(yè)項(xiàng)目開發(fā)相結(jié)合的教學(xué)策略,讓學(xué)生了解企業(yè)工作模式和工作流程的軟件項(xiàng)目開發(fā)流程,培養(yǎng)其實(shí)際項(xiàng)目開發(fā)經(jīng)驗(yàn)。
在項(xiàng)目實(shí)踐中,首先,教師根據(jù)學(xué)生的興趣確定若干項(xiàng)目組,每組3-5位學(xué)生為宜。其次,每個(gè)項(xiàng)目組針對(duì)相應(yīng)項(xiàng)目開發(fā)目標(biāo),分析并制定開發(fā)計(jì)劃,按照開發(fā)計(jì)劃完成項(xiàng)目的開發(fā)。整個(gè)開發(fā)過程中,以學(xué)生自主開發(fā)為主,教師進(jìn)行答疑、監(jiān)控開發(fā)過程以及對(duì)共性問題進(jìn)行總結(jié)與歸納。最后,教師對(duì)學(xué)生完成的項(xiàng)目進(jìn)行驗(yàn)收與評(píng)價(jià)。
在2009年的教學(xué)過程中,筆者對(duì)所教學(xué)的兩個(gè)班級(jí)進(jìn)行了跟蹤比較。其中一個(gè)班級(jí)采用傳統(tǒng)的模式,另外一個(gè)班級(jí)采用任務(wù)驅(qū)動(dòng)、項(xiàng)目教學(xué)的模式。通過對(duì)學(xué)生上課情況的觀察以及學(xué)習(xí)成績(jī)的反饋,發(fā)現(xiàn)采用任務(wù)驅(qū)動(dòng)、項(xiàng)目教學(xué)模式的班級(jí)中學(xué)生的學(xué)習(xí)興趣有明顯提高,學(xué)習(xí)能力和成績(jī)普遍比采用傳統(tǒng)教學(xué)模式的班級(jí)有較大提高,該班學(xué)生不僅積極完成課內(nèi)任務(wù),同時(shí)也開始主動(dòng)自學(xué),共同討論和研究一些知識(shí)點(diǎn),學(xué)習(xí)氣氛濃厚。實(shí)踐證明,這些改革措施不僅可以幫助學(xué)生對(duì)Java編程基礎(chǔ)知識(shí)全面學(xué)習(xí),同時(shí)也能鍛煉其實(shí)際動(dòng)手能力,激發(fā)其學(xué)習(xí)興趣,提高了教學(xué)質(zhì)量。
1 史寶會(huì).“任務(wù)驅(qū)動(dòng)”教學(xué)法的幾點(diǎn)體會(huì)[J].信息教育技術(shù),2005(1):223-240.
2 袁安翠,王公強(qiáng).Java語言程序設(shè)計(jì)教學(xué)過程探析[J].中國(guó)科教創(chuàng)新導(dǎo)刊,2008(32):76.
3 劉新橋,劉長(zhǎng)生,藍(lán)桂芳.JAVA程序設(shè)計(jì)課程教學(xué)改革的探索與實(shí)踐[J].長(zhǎng)沙航空職業(yè)技術(shù)學(xué)院學(xué)報(bào),2009(2):11-14.
4 劉鳳艷.建構(gòu)主義論— —教學(xué)改革的理論基礎(chǔ)[J].牡丹江師范學(xué)院學(xué)報(bào)(哲學(xué)社會(huì)科學(xué)版),2000(6):83-85.
5 吳愚.任務(wù)驅(qū)動(dòng)法在JAVA程序設(shè)計(jì)課程中的應(yīng)用[J].電腦知識(shí)與技術(shù),2008(5):905-906.