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