陳福林
隨著計算機技術、網絡通訊技術的快速發展,各種網絡通訊軟件同時被開發出來,而這些網絡通訊軟件多數是用Java程序設計語言編寫的。Java程序設計語言的平臺無關性、簡易性、可靠性、安全性和內嵌的網絡支持,使之成為當前最成熟的網絡編程工具之一。基于Java語言的各種技術已經擴展到網絡通訊技術領域的每個角落,不僅在計算機網絡通訊技術中得到應用,在手機網絡通訊技術中也得到應用。同時,Java程序設計語言也是面向對象技術成功應用的一個典范,有人預言,隨著網絡科技和網絡經濟以所特有的速度迅速發展,以后的90%網絡程序代碼將用Java語言書寫或改寫。可見Java程序設計課程是計算機專業學科中很重要的一門課程,如何讓學生學好Java程序設計課程是教師必須深思的一個問題。筆者通過分析目前Java程序設計語言課程教學中遇到的問題,提出Java程序設計語言課程教學改進方法。
絕大多數Java程序設計語言教材內容安排為:首先,介紹Java語言的理論知識,比如Java語言的簡介、Java語言的特點、Java程序的開發工具;其次,介紹Java語言的基本語法結構,比如Java語言的基本數據類型、Java語言的語句結構;再次,介紹Java語言面向對象的有關概念和特性,比如什么是類、什么是對象、什么是面向對象的繼承、什么是接口及包等;最后,介紹Java語言的庫類、GUI、組件、事件及事件處理類等。一般情況下,在Java程序設計語言課程開設之前,同學們已經學習過其他計算機語言,如C語言、VB程序設計語言,這些語言類課程的開設為Java程序設計語言課程的學習奠定了一定的基礎,但同時也帶來了一定的負面影響。在Java語言課堂教學中,多數教師按照教材的內容結構進行授課,當講解Java語言教材前一兩章理論知識和語法基礎知識時,很多學生認為Java語言太理論化,從而厭倦這些理論知識的學習,而當教師真正講解Java語言的面向對象特性及Java語言的特性時,很多同學想認真聽一聽,這時卻發現因前面的基礎知識沒學好或學得不夠扎實而聽不懂,因此只能放棄Java語言的進一步深入學習。
1.學生認識不足,缺乏興趣。首先,學生對Java程序設計語言這一門課程的重要性認識不夠,沒有認識到Java語言是當前網絡編程中最成熟的語言;沒有認識到Java語言具有平臺無關性,即“編寫一次,到處運行”的好處;沒有認識到Java語言具有將網絡上各個平臺連成一體的能力。其次,由于Java語言教材前一兩章節知識是理論知識或基礎知識,這會給同學造成誤解,認為這些知識在其他語言課中已經學過,Java語言的學習只不過是程序設計語言的又一次重復學習。再次,Java語言的運行平臺為虛擬機,使用虛擬機來解釋和執行Java程序時都是通過命令符來實現,這會使學生在學習Java語言的過程中認為又回到Dos的時代,因此,激發不了學習興趣。最后,由于Java語言的容器、組件、事件處理類及監聽接口都是在特定的包中,相比其他計算機語言,事件處理類、監聽接口及包的使用增加了學生學習Java語言的難度,這同樣會打消學生學好Java語言的念頭。
2.教學模式陳舊、形式簡單。在Java程序設計語言課程教學中,多數教師仍采用“灌輸式”教學模式進行教學,教師只是負責講解教材內容知識,學生是否在聽、能否聽懂,則根本不關心,即教學過程中沒有把學生放在主體位置上,師生間缺少互動。這種教學模式很難調動學生學習的主動性,難以提高教學質量。此外,部分教師缺乏對Java程序設計語言課程的整體性把握,在教學過程中往往只注重語法結構的知識,缺少面向對象知識的講解及對學生編程思想的培養,導致學生覺得課堂內容枯燥無味,無法將所學知識運用到實際中去分析問題、解決問題,難以培養學生的實踐能力與創新能力。
3.實踐教學環節有待加強。計算機專業的學生除了要學好計算機各門學科的理論知識,還必須學會如何把學到的理論知識運用到實踐中去,即必須加強動手能力的培養。但目前很多高校計算機專業理論教學與實踐教學脫節,教師只負責書本內容知識的傳授,實踐環節則由沒有專業背景的機房管理人員來指引或由學生自己摸索完成。這種缺乏專業指導的實踐教學不利于學生綜合素質的培養。
4.課程考核方式單一。現在多數高校的課程考核方式都是教師統一出題,形成題庫,學期結束時從題庫中抽題對學生進行考核。筆者認為,對計算機專業的學生采用這種方式進行考核,形式過于單一,因為這只能考查學生對理論知識及所學知識的熟悉程度,無法考查學生運用知識的能力及實踐操作能力。
針對以上問題,筆者結合多年的Java程序設計語言教學實踐,提出以下幾點教學改進措施:
1.明確學習目的,強調Java程序設計語言的重要性。作為一種程序設計語言,Java程序設計語言是一個廣泛使用的網絡編程語言。首先,它簡單、安全性高、可移植、不依賴于機器結構、提供了并發機制,是一種真正的面向對象語言;其次,Java程序設計語言最大限度地利用了網絡,用Java程序設計語言編寫的小應用程序(Applet)在網絡上傳輸時,不受環境和CPU的影響。從目前計算機技術及網絡技術發展趨勢來看,今后所有用其他語言編寫的軟件系統都要用Java語言來改寫。在課堂教學中首先要把Java語言的重要性傳遞給學生,讓學生明確學習Java語言的目的。
2.采用多種教學方法,激發學生學習興趣。教師可嘗試以下教學方法進行課堂教學,以活躍課堂氣氛,激發學生學習興趣,提高課堂教學效果。(1)聯想法。Java程序設計語言課程開設前,一般開設過C語言、VFP語言或VB語言課程。不管是Java語言,還是其他三種語言,教材內容中涉及的數據類型、語法機制基本一樣。因此,教師在介紹Java語言的基本數據類型及語法機制時可以采用聯想法,在課堂教學中讓學生聯想以前學過的C語言的基本數據類型及語句結構。如C語言的基本數據類型為整型(整型分為字節型、短整型、整型、長整型)、實型(實型分為單精度型與多精度型)、字符型與布爾型。定義關鍵字分別為 byte,short int,int,long int,float,double,char,boolean。Java語言的基本數據類型及定義的關鍵字也是這些,語句結構為順序結構、循環結構、選擇結構三種。因此,在Java語言課堂教學中采用聯想法可以提高課堂教學質量。(2)對比法。Java語言的組件、事件類、事件處理方法及組件布局相比其他面向對象語言要復雜些,難學點。在課堂教學中,當教師講解到Java語言的圖形組件、事件類及事件處理方法時,可以通過對比以前學生學習過的VC++語言來進行教學。比如在講解Java語言的組件時,由于Java語言的組件不像其他面向對象語言一樣,Java虛擬機中沒有可視化的工具箱窗口,標簽、按鈕、文本框等組件類都是在Java語言的類庫中。所以在進行GUI編程時,必須先定義這些組件,再通過構造方法創建對象,最后必須調用add(參數)方法把組件對象加入容器中。在講解這些知識點時,我們可以對照VC++語言中工具箱窗口的可視化組件來進行介紹,讓學生一聽就清楚。(3)歸納總結法。使用Java語言進行GUI編程時,重點是如何創建組件對象及編寫組件對象方法,使其實現與用戶發生交互作用。在介紹這些組件時,我們發現創建對象時都是使用構造方法實現,而與用戶發現交互作用都是通過監聽接口中的事件處理方法來實現。因此,歸納起來講,介紹一個組件,即介紹該組件的構造方法以及組件對應的事件類、監聽接口、監聽器接口中的處理方法有哪些。
3.注重實踐環節,培養實踐能力。和其他計算機語言課一樣,Java程序設計語言是一門實踐性很強的課程。課堂中教師講授的是Java語言的基本數據類型、語法結構、面向對象技術、Java語言的有關概念及Java語言的面向對象編程技術等理論知識,而要讓學生熟悉這些理論知識必須通過上機進行驗證。上機實踐不僅能夠幫助學生加深對所學知識的理解,還能培養學生靈活運用理論知識的能力以及動手能力。上機過程中,教師布置的實踐練習要有針對性和目的性。針對不同階段的教學內容選擇由易到難的習題讓學生訓練,針對不同的學生布置不同的練習來強化實踐。比如對于學習主動性高的學生,可以布置稍微難點的習題來進行上機實踐,同時也可以鼓勵他們自己根據自身的興趣愛好,在不脫離課堂教學的基礎上設計題目進行上機實踐。通過上機實踐,可以充分調動學生學習Java語言的主動性和創造性,讓學生感到學有所用。在平時教學過程中,教師也可以通過分組方式給學生布置一些現實中經常使用的小軟件,讓學生用Java去開發;同時,也可以聯系一些公司,讓學生參加社會實踐,了解軟件的開發流程,提高創新能力。
4.改變考核方式。考試是教師了解學生學習效果的重要依據,也是學生自我評價的重要依據。但是傳統的卷面考試方式只能考查學生的理論知識掌握情況,而考查不了學生靈活運用知識的能力,更考查不了學生的實踐能力。為了全面考查學生,筆者認為可以通過理論與實踐兩個環節來對學生進行全面考查。在具體實施時,卷面考試成績與實踐成績可以各占50%。通過這種考核方法,引導學生平時加強上機操作訓練,增強學生的實踐能力,讓學生能用所學知識分析問題、解決問題。
Java程序設計語言是高校計算機專業的一門重要課程。當前,提高學生學習Java程序設計語言的興趣和操作能力日益成為深化其課改面臨的重要課題。在具體教學實踐上,不斷改進該課程的教學方式方法,切實提高教學質量,是Java語言課程界必須重視的問題。