摘要: 本文主要針對Java的教學(xué),提出實(shí)際基礎(chǔ)教學(xué)的觀點(diǎn),分析并總結(jié)了關(guān)于Java教學(xué)中采用的教學(xué)思路、教學(xué)方式和方法。
關(guān)鍵詞: Java教學(xué)面向?qū)ο髮?shí)踐教學(xué)
隨著Internet和www的迅猛發(fā)展,世界上任意位置的計(jì)算機(jī)都可以通過無處不在的通信網(wǎng)絡(luò)進(jìn)行交流。網(wǎng)絡(luò)構(gòu)成了一個(gè)全新的“虛擬世界”,而信息則如同潮水一樣不斷涌出,并呈現(xiàn)出“爆炸性”的增長。
計(jì)算機(jī)世界從未經(jīng)歷過像今天Internet/www.Java這樣的“爆炸性”發(fā)展。人們渴望相互交流,人們需要相互交流。雖然在文明產(chǎn)生時(shí),人類交流和通信就開始了,但是直到今天,計(jì)算機(jī)通信仍然局限在數(shù)字、可見字符和各種特殊字符上、下一次浪潮必然是多媒體。人們希望傳輸圖片并且希望這些圖片是彩色的。人們希望傳輸語言、聲音和音頻剪輯,希望傳輸動(dòng)態(tài)的彩色視頻。從某種程度上來說,我們的確需要三維的、動(dòng)態(tài)的圖像?,F(xiàn)在的兩維顯示設(shè)備最終將被三維設(shè)備所取代,這可以使得我們在家中感受到“家庭影院”的效果,我們的起居室將成為一個(gè)小型體育館。我們可以同遠(yuǎn)在地球另一邊的商業(yè)伙伴一起參加網(wǎng)絡(luò)視頻會(huì)議,大家雖然相隔千里卻感覺近在咫尺。這些可能性就在眼前,Java是使夢想成真的關(guān)鍵角色。
在實(shí)際教學(xué)中我廣泛選擇利用較適宜的教學(xué)資源,注重入門練習(xí)。作為教學(xué)的補(bǔ)充,我將一些資源和多年的教學(xué)積累整理成課件發(fā)給學(xué)生?,F(xiàn)將Java的教學(xué)情況總結(jié)如下。
1.選擇豐富的教學(xué)實(shí)例和活動(dòng)代碼教學(xué)法
我們要選擇豐富的示例,給學(xué)生提供解決他們感興趣的實(shí)際問題的機(jī)會(huì)。我們要關(guān)心怎樣符合良好的軟件工程原則,并且要將重點(diǎn)放在如何表述清晰的程序上。我們愿意使用實(shí)例而不是晦澀的術(shù)語和嚴(yán)格的語法描述來講述語言本身。我們在教學(xué)中要重視與活動(dòng)代碼的例子相結(jié)合。事實(shí)上,每一個(gè)新的概念都是通過一個(gè)完整的、可工作的Java程序(Java applet或Java應(yīng)用程序)表達(dá)的,并通過一個(gè)窗口立即顯示程序的輸出結(jié)果。我們將這種教學(xué)及寫作方法稱為活動(dòng)代碼(live-code)教學(xué)方法,這種教學(xué)方式能夠有效地培養(yǎng)學(xué)生的學(xué)習(xí)興趣和主觀能動(dòng)性。
2.關(guān)于面向?qū)ο蟮募夹g(shù)和Java Applet的學(xué)習(xí)
我們要較早地開始學(xué)習(xí)面向?qū)ο蟮木幊?、Java Applet(小程序),以及基本的圖形用戶界面設(shè)計(jì)。有人曾經(jīng)提醒我,這是一個(gè)過于快速的教學(xué)方式,但是學(xué)習(xí)這門課程的學(xué)生卻真正渴望了解這些新的知識(shí)。非同尋常,它充滿了樂趣并且學(xué)生可以立即看到學(xué)習(xí)成果。利用Java附帶的類庫(可重用的模塊),學(xué)生可以迅速使圖形、動(dòng)畫、基于多媒體的音頻、多線程,以及基于網(wǎng)絡(luò)的程序運(yùn)行起來,可以完成令人印象深刻的程序。這些可以讓學(xué)生感覺C/C++編程語言更富有創(chuàng)造性并且編程效率更高。
3.幫助學(xué)生確定學(xué)習(xí)目標(biāo)
我們要定期制定學(xué)習(xí)目標(biāo)。我們應(yīng)在學(xué)習(xí)每一個(gè)新的部分的開頭都列出了一個(gè)“學(xué)習(xí)目標(biāo)”,這樣可以告訴學(xué)生這一章的學(xué)習(xí)要求是什么,同時(shí)也給學(xué)生提供了一個(gè)機(jī)會(huì),使得他們在學(xué)習(xí)完后能夠判斷自己是否達(dá)到了預(yù)定的目標(biāo)。
4.教學(xué)課件的制作
教學(xué)課件的制作要豐富多彩,內(nèi)容充實(shí),要富含具體的程序代碼及程序示例。
4.1具體代碼、多個(gè)程序示例(包含程序輸出)
我通過文中完整的、可執(zhí)行的Java程序來實(shí)現(xiàn)程序示例,這是教授課程及撰寫課件時(shí)的重點(diǎn)。其中一些程序帶有抓屏效果,顯示了執(zhí)行完這個(gè)程序后的輸出。這使學(xué)生能確認(rèn)程序的實(shí)際輸出結(jié)果同期望的結(jié)果是否一致。課件中的例子既有僅有幾行的小程序,又有幾百行的較為重要的應(yīng)用程序。學(xué)生在學(xué)習(xí)的同時(shí),可以在機(jī)器上執(zhí)行相應(yīng)的程序,并進(jìn)行適當(dāng)?shù)男薷暮驼{(diào)試。
4.2圖表制作。
課件要包含大量的表格、插圖,以及程序的輸出。例如在討論控制結(jié)構(gòu)的時(shí)候,我給出了精心繪制的流程圖。我并沒有將使用流程圖作為程序開發(fā)的手段,這樣可以詳細(xì)說明Java的控制結(jié)構(gòu)。因此我使用了這種簡潔有效的流程表示方法。
5.編程技巧在實(shí)際教學(xué)中的應(yīng)用
我在教學(xué)過程中使用了大量的編程技巧,幫助學(xué)生將注意力集中在程序開發(fā)的重要方面。我強(qiáng)調(diào)這些技巧,并將數(shù)百個(gè)技巧分成以下幾類:“編程技巧”、“常見編程錯(cuò)誤”、“測試與調(diào)試提示”、“性能提示”、“可移植性提示”,以及“軟件工程視點(diǎn)”。這些技巧總結(jié)了幾年的編程和教學(xué)經(jīng)驗(yàn)。
5.1編程技巧。
當(dāng)講授預(yù)備性課程時(shí),我介紹編程的一個(gè)原則就是“清晰性”。我在這些“編程技巧”中強(qiáng)調(diào)使程序更清晰、更易懂和更易于理解的技術(shù)。
5.2常見編程錯(cuò)誤。
學(xué)習(xí)一種語言常常容易犯這樣或那樣的錯(cuò)誤。我讓學(xué)生注意這些“常見編程錯(cuò)誤”,以免重犯相同的錯(cuò)誤,這同樣可以幫助學(xué)生在今后工作中少犯錯(cuò)誤。
5.3測試與調(diào)試提示。
我最初設(shè)計(jì)這部分提示時(shí),希望利用它來正確告訴學(xué)生如何測試及調(diào)試Java程序。實(shí)際上,同C和C++比較起來,我們要更多地介紹了那些能夠減少可能的“錯(cuò)誤”并且簡化測試和調(diào)試步驟的技巧及經(jīng)驗(yàn)。
5.4性能提示。
根據(jù)經(jīng)驗(yàn),在最初的編程課程上教會(huì)學(xué)生編寫清晰、易于理解的程序是最重要的。但學(xué)生希望編寫運(yùn)行最快、內(nèi)存需求更小、操作更簡化的程序。學(xué)生非常關(guān)心程序的操作性能,希望知道怎樣補(bǔ)充和調(diào)試程序,所以我給出了豐富的“性能提示”,從而為學(xué)生提供了可以改善程序性能的方法。
5.5可移植性提示。
這些提示可幫助學(xué)生編寫可移植的代碼,并且深入到Java內(nèi)部,以便了解Java是如何實(shí)現(xiàn)高度可移植性的。但不要太多,這是因?yàn)镴ava在設(shè)計(jì)時(shí)就遵循了自頂向下的可移植設(shè)計(jì)。因此對于Java程序員來說,所要考慮的可移植性問題比C及C++的程序員少得多。
5.6軟件工程視點(diǎn)。
面向?qū)ο蟮木幊谭绞揭笪覀冎匦驴紤]傳統(tǒng)的編程方法。Java是實(shí)現(xiàn)良好軟件工程的一種高效的編程語言。在軟件系統(tǒng)尤其是大型系統(tǒng)中,“軟件工程視點(diǎn)”強(qiáng)調(diào)了系統(tǒng)的結(jié)構(gòu)和設(shè)計(jì)方案對整體構(gòu)造的影響。這些知識(shí)對學(xué)習(xí)高級(jí)課程也是很有幫助的,當(dāng)學(xué)生從事大型、復(fù)雜系統(tǒng)的設(shè)計(jì)工作時(shí),這些經(jīng)驗(yàn)就變得相當(dāng)重要。
Java教學(xué)一定要圍繞提高學(xué)生實(shí)踐應(yīng)用能力展開,注重面向?qū)ο缶幊趟枷氲呐囵B(yǎng),在教學(xué)過程中我們要引入多媒體技術(shù)等先進(jìn)教學(xué)手段。在此我探討了Java教學(xué)的一些實(shí)際教學(xué)方法,并實(shí)際應(yīng)用于Java教學(xué),取得了很好的效果。其實(shí),教學(xué)關(guān)鍵在于因材施教,所以文中所提及措施不一定適合所有Java教學(xué)活動(dòng),在此希望能夠起拋磚引玉的作用。