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