摘要:在《Java程序設(shè)計(jì)》課程教學(xué)中,以激發(fā)學(xué)生學(xué)習(xí)興趣為前提,提高學(xué)生的自主學(xué)習(xí)能力為目標(biāo),引導(dǎo)學(xué)生積極主動(dòng)參與學(xué)習(xí),成為真正的學(xué)習(xí)主體,最終使學(xué)生將知識(shí)轉(zhuǎn)化為能力是現(xiàn)代高教改革的主流。那么,與該理念相適應(yīng)的教學(xué)方法就顯得特別重要。將任務(wù)驅(qū)動(dòng)法應(yīng)用于該課程可以很好地調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性,實(shí)踐表明學(xué)生的程序設(shè)計(jì)能力得到極大的提高。
關(guān)鍵詞:任務(wù)驅(qū)動(dòng)法; 建構(gòu)主義學(xué)習(xí)理論; 程序設(shè)計(jì); 教學(xué)任務(wù)
中圖分類號(hào):G424文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)05-10ppp-0c
1 引言
學(xué)好《JAVA程序設(shè)計(jì)》這門課程對(duì)于學(xué)生就業(yè)是非常重要的。而計(jì)算機(jī)知識(shí)本身在不斷地更新和變化,這對(duì)教學(xué)目標(biāo)提出了更高的要求。授人 “魚”,不如授人“漁”,不但要讓學(xué)生學(xué)會(huì)知識(shí)本身,而且更重要的是培養(yǎng)學(xué)生學(xué)會(huì)學(xué)習(xí)[1]。傳統(tǒng)教學(xué)方法不能適應(yīng)這樣的要求,筆者認(rèn)為“任務(wù)驅(qū)動(dòng)法”是一種能夠很好的適應(yīng)新的教學(xué)目標(biāo)的教學(xué)手段。
2 “任務(wù)驅(qū)動(dòng)法”的特點(diǎn)
“任務(wù)驅(qū)動(dòng)法”是由教師根據(jù)當(dāng)前教學(xué)的知識(shí)點(diǎn)設(shè)計(jì)并提出“任務(wù)”,針對(duì)提出的任務(wù),采取演示或講解等方式,給出完成任務(wù)的思路、方法、操作及結(jié)果,然后引導(dǎo)學(xué)生邊學(xué)邊練,完成相應(yīng)的教學(xué)任務(wù)的教學(xué)方法[2]。
傳統(tǒng)的教學(xué)方法是建立在行為主義學(xué)習(xí)理論基礎(chǔ)之上,強(qiáng)調(diào)“刺激——反應(yīng)”,沒有完全將人的學(xué)習(xí)行為和動(dòng)物分開。任務(wù)驅(qū)動(dòng)法是在“建構(gòu)主義” [3]教學(xué)理論上發(fā)展而來(lái)的。它既能發(fā)揮教師主導(dǎo)作用,又能體現(xiàn)學(xué)生認(rèn)知的主體作用,形成鮮明的“雙主模式”。其特點(diǎn)是改造傳統(tǒng)的教學(xué)活動(dòng)過程,而在整個(gè)教學(xué)過程中,讓學(xué)生有更多的主動(dòng)思考與探索[3]。
3 《Java程序設(shè)計(jì)》課程的特點(diǎn)適合采用任務(wù)驅(qū)動(dòng)法
《Java程序設(shè)計(jì)》課程是一門實(shí)踐性很強(qiáng),要求學(xué)生大量實(shí)驗(yàn)上機(jī)操作的學(xué)科。它的教學(xué)目的更重要在于讓學(xué)生學(xué)會(huì)一門能夠在未來(lái)的工作中派得上用場(chǎng)的手藝,同時(shí)培養(yǎng)對(duì)軟件開發(fā)工作的感覺。“任務(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)。
4 “任務(wù)驅(qū)動(dòng)法”的操作步驟
傳統(tǒng)的教學(xué)通常采用三步法,即:提出概念——解釋概念——舉例說明。而任務(wù)驅(qū)動(dòng)法則采用的是四步法,即:提出任務(wù)——分析任務(wù)——完成任務(wù)——總結(jié)規(guī)律。
首先,教師要以知識(shí)點(diǎn)為依據(jù),學(xué)生知識(shí)背景和實(shí)際接受能力為前提,設(shè)計(jì)出合理的任務(wù)。要求任務(wù)能夠達(dá)到:a、能夠覆蓋相關(guān)知識(shí)點(diǎn);b、具有一定趣味性,學(xué)生也只會(huì)對(duì)自己感興趣的東西投入更多的學(xué)習(xí)熱情。c、方便教師講解,也能夠使學(xué)生通過適當(dāng)?shù)闹笇?dǎo)順利完成任務(wù)。如前所述,設(shè)計(jì)一個(gè)好任務(wù)是“任務(wù)驅(qū)動(dòng)法”實(shí)施的前提,任務(wù)設(shè)計(jì)得是否合理,能否貼近學(xué)生生活使學(xué)生產(chǎn)生興趣,直接關(guān)系到后續(xù)教學(xué)過程。比如,筆者在講授Java的Applet程序設(shè)計(jì)相關(guān)章節(jié)的時(shí)候就設(shè)計(jì)了一個(gè)貪食蛇游戲的任務(wù),該任務(wù)要求學(xué)生使用規(guī)定的控件完成輸入輸出操作和展示界面效果,覆蓋了教學(xué)大綱要求的知識(shí)點(diǎn),同時(shí)該任務(wù)有較強(qiáng)的趣味性,能夠激發(fā)學(xué)生的學(xué)習(xí)熱情,愿意自己花時(shí)間認(rèn)真去做。實(shí)踐證明該任務(wù)的設(shè)計(jì)是成功的,學(xué)生完成了該任務(wù)之后感覺對(duì)Java的Applet開發(fā)掌握較好。
然后,教師在提出任務(wù)之后,引導(dǎo)學(xué)生分析任務(wù),分析出完成任務(wù)的思路、完成任務(wù)的方法以及具體操作步驟。分析任務(wù)處于整個(gè)教學(xué)的中心環(huán)節(jié),根據(jù)具體任務(wù)的不同,可采取多媒體演示、講解、學(xué)生自己摸索等多種分析方式。如果任務(wù)比較復(fù)雜,可以將任務(wù)劃分為若干個(gè)子任務(wù),再完成相應(yīng)的子任務(wù),達(dá)到完成任務(wù)的目的。教師應(yīng)該在這一過程中處于中心,發(fā)揮主導(dǎo)作用。比如:在貪食蛇的任務(wù)中,筆者首先向?qū)W生講解Applet的整個(gè)生命流程,以及各個(gè)重要接口的意義和作用,然后再引導(dǎo)學(xué)生以面向?qū)ο蟮脑O(shè)計(jì)思路分析整個(gè)任務(wù),提取出相關(guān)的類。剛開始學(xué)生對(duì)該任務(wù)整體把握不好,根據(jù)這一情況,筆者將任務(wù)分解為后臺(tái)數(shù)據(jù)操作任務(wù)和前臺(tái)界面展示任務(wù)兩個(gè)子任務(wù)交給兩個(gè)組的學(xué)生分析解決。經(jīng)過劃分,子任務(wù)達(dá)到了學(xué)生能夠接受的程度,使得該任務(wù)順利進(jìn)行。
接下來(lái),教師就根據(jù)“教學(xué)任務(wù)”的內(nèi)容,讓學(xué)生及時(shí)練習(xí),邊學(xué)邊做。根據(jù)學(xué)生的掌握程度和教學(xué)任務(wù)的難易程度選擇多種方式讓學(xué)生靈活完成。
(1)如果任務(wù)難度較大但實(shí)際工作量較小,可以在課堂上或者實(shí)驗(yàn)課中讓學(xué)生照著老師的示范一步一步完成。比如,在講解Java多線程操作的時(shí)候,筆者設(shè)計(jì)了一個(gè)要求使用多線程完成的打字練習(xí)程序(不要求界面,僅僅完成功能)。該任務(wù)工作量相對(duì)較小,但涉及到多線程操作,難度相對(duì)較大。這樣就必須教師做好示范,學(xué)生才能正確理解,并照著一步一步做下去。
(2)如果任務(wù)難度并不高但實(shí)際工作量卻相對(duì)較大,那么就需要學(xué)生查閱相關(guān)資料在課后完成,在這一過程中教師要將課后監(jiān)督和輔導(dǎo)的工作落實(shí)。
還需要注意的是,這一過程一定要突出學(xué)生的主體地位才能起到好的效果,否則學(xué)生很可能會(huì)僅僅為完成任務(wù)而學(xué)習(xí)。一定要在教師的引導(dǎo)下,充分發(fā)揮學(xué)生的學(xué)習(xí)主動(dòng)性和創(chuàng)造性,讓學(xué)生親身感受認(rèn)知的過程,并培養(yǎng)、提高學(xué)生解決實(shí)際問題的能力和創(chuàng)新意識(shí)[4]。
最后,學(xué)生完成任務(wù)后,教師要根據(jù)學(xué)生的完成情況給出一個(gè)評(píng)價(jià),并總結(jié)規(guī)律,突出重點(diǎn),將實(shí)踐上升到理論,使學(xué)生對(duì)問題的認(rèn)識(shí)達(dá)到一個(gè)新的高度。
5 應(yīng)該注意的問題
雖然任務(wù)驅(qū)動(dòng)法有許多優(yōu)點(diǎn),但并不能解決所有問題。在教學(xué)過程中應(yīng)該對(duì)Java程序設(shè)計(jì)課程的內(nèi)容進(jìn)行深刻細(xì)致的分析。經(jīng)過一段時(shí)間的教學(xué)實(shí)踐,筆者認(rèn)為對(duì)于操作技能要求較高,特別是Java類庫(kù)、AWT、Applet等內(nèi)容的學(xué)習(xí)采用任務(wù)驅(qū)動(dòng)法,可以達(dá)到很好的教學(xué)效果。但對(duì)于面向?qū)ο笤O(shè)計(jì)思想這一塊兒概念性基礎(chǔ)性較強(qiáng)的部分,則不宜采用該方法。
使用任務(wù)驅(qū)動(dòng)法必須首先了解學(xué)生的知識(shí)背景和實(shí)際接受能力。這一步也是任務(wù)驅(qū)動(dòng)法能成功應(yīng)用的必要條件。只有了解了學(xué)生相關(guān)的情況,才能有針對(duì)性的設(shè)計(jì)出合理的任務(wù),否則就可能出現(xiàn)這樣的情況:學(xué)生還沒有系統(tǒng)學(xué)習(xí)過計(jì)算機(jī)網(wǎng)絡(luò)課程,而教師要求學(xué)生使用Java完成一個(gè)網(wǎng)絡(luò)聊天室應(yīng)用程序。這樣的任務(wù)設(shè)計(jì)超出了學(xué)生的接受能力,教學(xué)效果也就可想而知了。
采用任務(wù)驅(qū)動(dòng)法進(jìn)行Java教學(xué)時(shí),最好能夠在交互式多媒體教室中進(jìn)行,使任務(wù)驅(qū)動(dòng)法的實(shí)施能夠順利展開[5],僅僅使用黑板講解任務(wù)是抽象的,容易讓學(xué)生產(chǎn)生厭倦情緒,只有當(dāng)學(xué)生看到了實(shí)際可以運(yùn)行的應(yīng)用程序,才能有所觸動(dòng)。
總之,在Java程序設(shè)計(jì)課程的教學(xué)中,根據(jù)教學(xué)內(nèi)容的需要,運(yùn)用“任務(wù)驅(qū)動(dòng)法”,有利于改變學(xué)生獲取知識(shí)的方法,讓學(xué)生在探索中學(xué)習(xí),最終使學(xué)生由被動(dòng)接受知識(shí)轉(zhuǎn)變?yōu)橹鲃?dòng)獲取知識(shí),進(jìn)而培養(yǎng)學(xué)生善于鉆研和勇于創(chuàng)新的精神以及實(shí)際的軟件開發(fā)能力。任務(wù)驅(qū)動(dòng)法在Java程序設(shè)計(jì)課程教學(xué)中是一種值得推廣的好方法。
參考文獻(xiàn):
[1]潘洪軍.高校計(jì)算機(jī)專業(yè)課程結(jié)構(gòu)體系構(gòu)建的思考[J]. 現(xiàn)代教育科學(xué),2005,195(4):116-118.
[2]史寶會(huì).“任務(wù)驅(qū)動(dòng)”教學(xué)法的幾點(diǎn)體會(huì)[J]. 信息教育技術(shù),2005:223-240.
[3]劉鳳艷.建構(gòu)主義論——教學(xué)改革的理論基礎(chǔ)[J]. 牡丹江師范學(xué)院學(xué)報(bào)(哲學(xué)社會(huì)科學(xué)版),2006.6:83-85.
[4]楊起帆.計(jì)算機(jī)專業(yè)應(yīng)用型創(chuàng)新人才的\"211\"培養(yǎng)模式[J]. 高教探索,2006,1:65-67.
[5]甘建侯.網(wǎng)絡(luò)與課堂教學(xué)相整合的計(jì)算機(jī)專業(yè)教改研究[J]. 計(jì)算機(jī)教育,2006,2:31-33.
收稿日期:2007-12-27
作者簡(jiǎn)介:吳愚(1981-),男,重慶萬(wàn)州人,助教,碩士,主要研究方向:并行與分布式處理。