姚 競(jìng)
(湖北經(jīng)濟(jì)學(xué)院 信息管理學(xué)院軟件工程系,湖北 武漢 430205)
《Java程序設(shè)計(jì)》是計(jì)算機(jī)科學(xué)領(lǐng)域的一門重要的編程類課程,是軟件工程專業(yè)的基礎(chǔ)專業(yè)課程,同時(shí)也是非專業(yè)類計(jì)算機(jī)等級(jí)考試的重要內(nèi)容之一。熟練掌握J(rèn)ava有關(guān)知識(shí),不僅能幫助學(xué)生應(yīng)對(duì)就業(yè)和考級(jí)等實(shí)際問題,同時(shí)也能幫助學(xué)生掌握好面向?qū)ο缶幊谭椒ǖ溶浖碚撝R(shí),為深入學(xué)習(xí)計(jì)算機(jī)專業(yè)類知識(shí)打下良好的基礎(chǔ)。
情景教學(xué)法起源于英國(guó),70年代被引入中國(guó),主要應(yīng)用于英語等外國(guó)語的教學(xué)。情景教學(xué)法由于在教學(xué)過程中將真實(shí)環(huán)境引入課堂,這樣能還原相關(guān)知識(shí)的應(yīng)用環(huán)境,實(shí)踐已經(jīng)證明情景教學(xué)法對(duì)于一些特定內(nèi)容的教學(xué)很有幫助。
本文將情景教學(xué)法借鑒至計(jì)算機(jī)編程領(lǐng)域,應(yīng)用到《Java程序設(shè)計(jì)》課程的實(shí)際教學(xué)中,結(jié)合《Java程序設(shè)計(jì)》課程自身特點(diǎn),通過設(shè)置一系列有內(nèi)在聯(lián)系的情景和一組配套的實(shí)例來展開教學(xué),在實(shí)踐過程中取得了不錯(cuò)的教學(xué)效果。
Java語言是現(xiàn)代計(jì)算機(jī)學(xué)科領(lǐng)域的一門重要的專業(yè)課程,它不僅是現(xiàn)代很多本科計(jì)算機(jī)專業(yè)教育的必修課,也是計(jì)算機(jī)專業(yè)培訓(xùn)機(jī)構(gòu)的主干課程之一。Java是現(xiàn)代軟件工業(yè)領(lǐng)域的重要開發(fā)工具之一。因此Java語言的學(xué)習(xí)是非常重要的。
作為計(jì)算機(jī)本科專業(yè)課程,Java程序設(shè)計(jì)在內(nèi)容設(shè)置上有著與其它編程語言相似的教學(xué)內(nèi)容和過程。教學(xué)內(nèi)容按進(jìn)度計(jì)劃的先后次序一般為:Java語言概述、Java數(shù)據(jù)類型與表達(dá)式、流程控制語句、數(shù)組和方法、類與對(duì)象、繼承與多態(tài)、常用類、抽象類接口與內(nèi)嵌類、異常處理、Java Applet、圖形用戶界面、多線程、輸入輸出流、Java范型與集合、網(wǎng)絡(luò)編程、數(shù)據(jù)庫(kù)編程等內(nèi)容。教學(xué)過程一般先講授理論部分,然后就各個(gè)知識(shí)點(diǎn)通過教學(xué)案例或例子程序進(jìn)行教學(xué)。這樣的安排遵循傳統(tǒng)的教學(xué)模式與習(xí)慣,知識(shí)點(diǎn)的構(gòu)成以及進(jìn)度的設(shè)置也是合理的。
然而一些因素使得這樣的安排在實(shí)際操作時(shí)顯露出若干不足,并可能會(huì)導(dǎo)致學(xué)生學(xué)習(xí)興趣和教學(xué)質(zhì)量的降低。一是計(jì)算機(jī)專業(yè)的培養(yǎng)方案中,編程類課程的設(shè)置通常不會(huì)只有一門《Java程序設(shè)計(jì)》,往往還會(huì)要求先修其它課程如C語言、C++等。而這些編程類語言有很多相似之處,有些基礎(chǔ)部分的內(nèi)容甚至都是一樣的,因此單純重復(fù)強(qiáng)調(diào)基礎(chǔ)性的內(nèi)容,勢(shì)必導(dǎo)致學(xué)生的學(xué)習(xí)興趣降低。其次,傳統(tǒng)的教學(xué)中常常依個(gè)別知識(shí)點(diǎn)來設(shè)置教學(xué)用例,這樣實(shí)例之間往往欠缺前后聯(lián)系,對(duì)于學(xué)生來說不容易從宏觀上把握知識(shí)。而如果給出的是一個(gè)大的項(xiàng)目案例又不得不包括大量相關(guān)知識(shí)點(diǎn),顯得大而全,反而無法講解清楚最核心的知識(shí)點(diǎn)。這一點(diǎn)如將一個(gè)完整的進(jìn)銷存系統(tǒng)作為實(shí)例,往往要求學(xué)生對(duì)界面、網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)等相關(guān)知識(shí)有全面了解。此外值得重視的是,Java語言本身是一門面向?qū)ο缶幊陶Z言,面向?qū)ο缶幊谭椒ㄌ赜械姆椒▽W(xué)以及代碼組織等,無法用常規(guī)的個(gè)別例子來說明透徹。所以很容易造成學(xué)生對(duì)一些知識(shí)點(diǎn)似是非懂的情況。
情景教學(xué)法也叫視聽法由英國(guó)知名學(xué)者Hornby創(chuàng)立于20世紀(jì)30年代至60年代,在英國(guó)受到普遍重視和推廣,70年代后,情景教學(xué)法被引入我國(guó),在外國(guó)語教學(xué)中得到了廣泛的應(yīng)用。
在傳統(tǒng)英語教學(xué)中,通常是通過機(jī)械性的讀寫訓(xùn)練來達(dá)到教學(xué)目的。這樣學(xué)生就會(huì)慢慢的失去學(xué)習(xí)英語的興趣,使得學(xué)習(xí)效率和質(zhì)量大大降低。情景教學(xué)法在教學(xué)過程中設(shè)置有具體的場(chǎng)景,場(chǎng)景中存在和環(huán)境有關(guān)的對(duì)象,通過互動(dòng)以引起學(xué)生一定的全面直觀的體驗(yàn),從而幫助學(xué)生更好的理解和掌握相關(guān)知識(shí)。情景教學(xué)法依托語言環(huán)境因素來表達(dá)恰當(dāng)?shù)囊饬x,因此能夠提高學(xué)生學(xué)習(xí)興趣,在實(shí)際教學(xué)中能很好的提高學(xué)習(xí)效果。
情景教學(xué)法在實(shí)踐教學(xué)中的特點(diǎn)和優(yōu)點(diǎn)包括以下幾個(gè)方面:
第一,情景教學(xué)法重視學(xué)生的參與性,利用各種方法構(gòu)造與所學(xué)內(nèi)容一致的場(chǎng)景,讓學(xué)生邊看畫面,邊練聽和說,身臨其境地學(xué)習(xí)外語。
第二,情景教學(xué)法也重視句型教學(xué),強(qiáng)調(diào)與場(chǎng)景相對(duì)應(yīng)的固定句型,操練在某一場(chǎng)合下一些常用的意思聯(lián)貫的句子,使學(xué)生掌握以場(chǎng)合為基礎(chǔ)的常用的處理手段和方法。
第三,情景教學(xué)法有助于消除學(xué)生的畏難和緊張心理,逐步在場(chǎng)景中引入內(nèi)容,循序漸進(jìn)。
第四,情景教學(xué)法有助于提高學(xué)生學(xué)習(xí)積極性。通過設(shè)置各種生動(dòng)有趣,貼進(jìn)生活的情景、畫面,學(xué)生會(huì)更專注于他們的學(xué)習(xí)內(nèi)容,使他們?cè)酚趯W(xué),寓學(xué)于樂。
第五,降低學(xué)生的理解難度。情景中創(chuàng)設(shè)的語境是語言賴以生存和發(fā)展的環(huán)境,也是語言交際所依賴的環(huán)境。在相應(yīng)的語言環(huán)境中完成教學(xué)內(nèi)容,可以降低學(xué)生理解語言的難度。
情景教學(xué)法最初適用于英語的教學(xué),從實(shí)際應(yīng)用效果看,情景教學(xué)法把原本枯燥的單詞和語法教學(xué),融入到現(xiàn)實(shí)應(yīng)用環(huán)境中,通過聲音、形狀的輔助刺激能很好地幫助學(xué)生掌握好相關(guān)知識(shí)點(diǎn)。在計(jì)算機(jī)編程語言的學(xué)習(xí)過程中,盡管計(jì)算機(jī)語言有別于自然語言,但是從以下幾個(gè)方面看仍然和英語教學(xué)有相似和相通的地方,因而有借鑒和相應(yīng)的可行性。
首先,計(jì)算機(jī)語言之所以稱之為語言,也即其有自身一套完整的表達(dá)方式,語句、語法等內(nèi)容。而這些組成語言的基本元素,也都需要有類似的手段進(jìn)行學(xué)習(xí)和記憶。
其次,在實(shí)際應(yīng)用過程中,計(jì)算機(jī)語言和自然語言一樣會(huì)有一些固定格式的表達(dá),如固定格式的類結(jié)構(gòu)以及接口等。此外也會(huì)有解決特定問題的慣用方法,如:連接網(wǎng)絡(luò)、訪問數(shù)據(jù)庫(kù)等。因此只要有相同的應(yīng)用環(huán)境,那么相同的代碼的片段就可以發(fā)揮作用。這如同英語教學(xué)中在特定場(chǎng)景中應(yīng)用的習(xí)慣用法或固定句型。
再次,Java程序語言本身在編程語言分類中屬于一門面向?qū)ο缶幊陶Z言,意味著這種程序語言自身的設(shè)計(jì)和使用,要符合日常環(huán)境中人們看待事物、和對(duì)象進(jìn)行交流的思維習(xí)慣。在Java程序里,任何代碼的調(diào)用執(zhí)行都和對(duì)象有關(guān),而與程序有關(guān)的全部對(duì)象也構(gòu)成了程序運(yùn)行的基本環(huán)境。從這個(gè)角度看,Java程序的設(shè)計(jì)和應(yīng)用也需要和情景相匹配,需要借助情景中個(gè)體之間的交流完成程序設(shè)計(jì)。
所以綜上所述,英語和Java在教學(xué)中有一定的契合點(diǎn)??梢詫⑶榫敖虒W(xué)法借鑒到《Java程序設(shè)計(jì)》的教學(xué)實(shí)踐中。
如同情景教學(xué)法在英語教學(xué)中的應(yīng)用一樣,在Java程序設(shè)計(jì)這門課程中應(yīng)用情景教學(xué)法也必須在課程開始之前做大量的準(zhǔn)備工作,提前設(shè)計(jì)若干教學(xué)場(chǎng)景,并明確相應(yīng)的教學(xué)知識(shí)點(diǎn)、涉及的場(chǎng)景中的對(duì)象、場(chǎng)景行為和過程。
在實(shí)踐教學(xué)中準(zhǔn)備階段由以下幾個(gè)步驟組成:
步驟1:首先對(duì)將適用情景教學(xué)法的章節(jié)及其涉及的知識(shí)點(diǎn)進(jìn)行梳理,不同于案例教學(xué)法,這里重點(diǎn)考慮的是知識(shí)點(diǎn)之間的聯(lián)系、知識(shí)點(diǎn)在教學(xué)進(jìn)度安排中的分布。
步驟2:將有緊密聯(lián)系的知識(shí)點(diǎn)進(jìn)行組合,組合的時(shí)候需要考慮教學(xué)進(jìn)度的先后次序,一個(gè)知識(shí)點(diǎn)可以反復(fù)加入到若干個(gè)知識(shí)組中去。
步驟3:根據(jù)知識(shí)組設(shè)計(jì)教學(xué)場(chǎng)景,明確場(chǎng)景背景、場(chǎng)景之間的關(guān)系、參與對(duì)象、對(duì)象行為等內(nèi)容。
步驟4:依托設(shè)計(jì)好的教學(xué)場(chǎng)景,設(shè)計(jì)一組具體案例和一組預(yù)設(shè)問題。一組有聯(lián)系的案例用于形成場(chǎng)景,如構(gòu)成場(chǎng)景對(duì)象、描述對(duì)象行為和屬性等,同時(shí)也起到引入知識(shí)點(diǎn)的作用。案例逐個(gè)引入,場(chǎng)景隨之變化,并逐步被完善。預(yù)設(shè)問題用于在形成好的場(chǎng)景中引出新的問題,為新知識(shí)點(diǎn)的引入做準(zhǔn)備。
一個(gè)典型的場(chǎng)景設(shè)計(jì)內(nèi)容如下:
場(chǎng)景的背景是一些人進(jìn)行猜數(shù)字游戲。參與對(duì)象包括Apple同學(xué)、Apple同學(xué)的兄弟 Ben、Apple的父親 Victor、游戲本身。場(chǎng)景中的行為包括Apple、Ben、Victor猜數(shù)字的行為,以及游戲?qū)@幾個(gè)人的反饋行為。涉及知識(shí)點(diǎn)包括:條件、循環(huán)、類、對(duì)象、繼承、算法等。
第一場(chǎng)景是Apple一個(gè)人猜數(shù)字,案例1包括猜數(shù)字游戲本身,關(guān)聯(lián)知識(shí)點(diǎn)條件、循環(huán)和算法(游戲規(guī)則)等,案例2包括類和對(duì)象,將游戲包裝成類和對(duì)象,案例3構(gòu)造Apple,構(gòu)造人類。預(yù)設(shè)問題包括多人游戲時(shí)程序如何設(shè)計(jì),更改游戲規(guī)則時(shí)的情況該如何解決等。第二場(chǎng)景是Ben和Victor也加入進(jìn)來,案例1包括繼承關(guān)系。
在實(shí)施階段由以下幾個(gè)步驟組成:
步驟1:向?qū)W生描述場(chǎng)景、場(chǎng)景中的角色以及角色行為等內(nèi)容。
步驟2:將場(chǎng)景涉及的新的基礎(chǔ)知識(shí)進(jìn)行必要的講解。
步驟3:以場(chǎng)景為背景,逐一講解與場(chǎng)景相關(guān)的案例,逐步形成場(chǎng)景的若干組成部分 。
步驟4:組合案例,完成全部構(gòu)成場(chǎng)景的代碼。
步驟5:在場(chǎng)景中利用已經(jīng)完成的代碼,要求學(xué)生思考并回答預(yù)設(shè)問題。并由此引入新知識(shí)點(diǎn)。
步驟6:場(chǎng)景升級(jí),加入新知識(shí)點(diǎn),回到步驟1,重復(fù)步驟1至6的過程。
通過在《Java程序設(shè)計(jì)》課程中引入情景教學(xué)法,透過生動(dòng)的場(chǎng)景可以向?qū)W生明確說明場(chǎng)景之中對(duì)象之間的關(guān)系,從而容易理解程序的運(yùn)行和組織方式。這樣降低了學(xué)習(xí)難度,進(jìn)而可以增加學(xué)生對(duì)知識(shí)點(diǎn)的學(xué)習(xí)興趣。
本文中描述的情景教學(xué)法的特點(diǎn)在于:1.知識(shí)點(diǎn)系統(tǒng)性,由于將知識(shí)點(diǎn)組織于案例和場(chǎng)景之中,使得原來看起來聯(lián)系不是很緊密的一些知識(shí)點(diǎn)得以聯(lián)系起來,方便學(xué)生學(xué)習(xí)記憶和使用。2.突出核心問題,通過場(chǎng)景中專門設(shè)置的案例可以突出該情景中最核心的問題,這樣能緊扣關(guān)鍵知識(shí)點(diǎn)。案例本身也是在這種特定應(yīng)用情況下的最佳參考。3.關(guān)聯(lián)的場(chǎng)景以及場(chǎng)景的升級(jí)使得教學(xué)內(nèi)容有較強(qiáng)的延續(xù)性,可以突出教學(xué)過程中各種問題之間的關(guān)系。
在實(shí)踐教學(xué)過程中,情景教學(xué)法在我校2010級(jí)軟件工程Q1041班和法商軟件10401班的《Java程序設(shè)計(jì)》課程中進(jìn)行了實(shí)驗(yàn),從學(xué)生訪談反饋情況看,和一般常規(guī)的編程類教學(xué)方式相比,情景教學(xué)法更能激發(fā)學(xué)習(xí)興趣,特別能清楚的表達(dá)知識(shí)點(diǎn)的作用,能將多種知識(shí)點(diǎn)前后貫穿性的聯(lián)系起來,學(xué)習(xí)效果良好,減少了很多記憶的負(fù)擔(dān)。
此外,從實(shí)際教學(xué)管理和學(xué)生成績(jī)方面看,相比2009級(jí)學(xué)生,2010級(jí)學(xué)生的平時(shí)實(shí)驗(yàn)、作業(yè)以及上課狀態(tài)都有一定改善,學(xué)生成績(jī)整體上有所提高。特別是通過情景教學(xué)法的教學(xué),對(duì)學(xué)生日后Java編程方向的深入學(xué)習(xí)有了更多興趣。
情景教學(xué)法最初主要應(yīng)用于英語等自然語言的教學(xué)過程中,本文在分析了自然語言和Java編程語言之間的相似之處之后,將情景教學(xué)法借鑒至《Java程序設(shè)計(jì)》課程中,形成以情景為中心的課堂教學(xué)方法,在實(shí)踐中能較好地達(dá)到提高學(xué)生學(xué)習(xí)興趣和學(xué)習(xí)效率的目的。情景教學(xué)法在應(yīng)用到《Java程序設(shè)計(jì)》課程中時(shí),和實(shí)踐教學(xué)中通常采用的其他方法如案例法、分組教學(xué)法等能起到相輔相成的作用。對(duì)于類似Java的其它編程語言的教學(xué)也有一定的參考價(jià)值。
[1]丁振凡.Java語言程序設(shè)計(jì)[M].清華大學(xué)出版社,2010.
[2]胡禮和.現(xiàn)代教育技術(shù)學(xué)[M].湖北科學(xué)技術(shù)出版社,2003.
[3]于瑤.情景教學(xué)法在英語教學(xué)中的應(yīng)用[J].金融理論與教學(xué),2003.
[4]李吉林.情景教學(xué)實(shí)驗(yàn)與研究[M].人民教育出版社,2006.
[5]聶軍.英語教學(xué)中的情景教學(xué)[J].人教網(wǎng),2011.