摘要:Java語言是一種面向?qū)ο蟮某绦蛟O(shè)計語言,Java程序設(shè)計課程是很多高校計算機(jī)相關(guān)專業(yè)的主干課程。文章介紹了Java語言的基本特點,對Java教學(xué)過程中的教學(xué)內(nèi)容、教學(xué)方法等方面進(jìn)行研究探討,并總結(jié)了一些教學(xué)上的經(jīng)驗和體會。
關(guān)鍵詞:JAVA程序設(shè)計;教學(xué)方法;課程研究
中圖分類號:G642文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2009)36-10392-02
The Research and Discussion of Teaching Methods in \"Java Programming\" Course
YANG Chao-yu
(Anhui University of Science and Technology, Huainan 232001, China)
Abstract: Java language is an object-oriented programming language, many colleges and universities set up Java programming as main course of the computer-related professional。This article introduces the basic characteristics of Java language, researches and discusses teaching content, teaching methods in \"Java Programming\" Course, Summarizes some teaching experience.
Key words: Java programming; teaching methods; curriculum research
1 概述
在Java語言白皮書中,Java被描述為“是一種簡單、面向?qū)ο?、分布式、解釋、健壯、安全、結(jié)構(gòu)中立、可移植、高效能、多線程、動態(tài)的語言。(A simple, object-oriented, network-savvy, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, dynamic language。)
1.1 簡單的面向?qū)ο蟪绦蛟O(shè)計語言
Java和C++很相近,但刪除許多極少被使用、不容易理解和令人混淆的C++功能,主要包括運算符重載、多重繼承以及廣泛的自動強迫同型。
1.2 健壯安全的分布式語言
除了運行時異常檢查外,Java提供了廣泛的編譯時異常檢查,以便盡早的發(fā)現(xiàn)可能存在的錯誤。同時,在Java中對象的創(chuàng)建機(jī)制(只能用new操作符)和自動垃圾收集機(jī)制大大減少了因內(nèi)存管理不當(dāng)引發(fā)的錯誤。
1.3 結(jié)構(gòu)中立、可移植性強的解釋型語言
為了讓Java應(yīng)用程序能夠在網(wǎng)絡(luò)上任何地方執(zhí)行,其編譯器會產(chǎn)出一種結(jié)構(gòu)中立的字節(jié)代碼(Bytecode)。字節(jié)代碼可以在提供Java運行時系統(tǒng)的多種不同處理器上面執(zhí)行。
1.4 高效能
字節(jié)代碼可以動態(tài)地為執(zhí)行應(yīng)用程序的特定CPU解釋成機(jī)器碼。字節(jié)代碼格式在設(shè)計上即顧及機(jī)器碼的產(chǎn)生。Just-In-Time編譯技術(shù)更是讓字節(jié)代碼的執(zhí)行速度大幅度提升。
1.5 支持多線程的動態(tài)語言
在Java核心類庫中包含Thread類,同時Java運行時系統(tǒng)提供了線程監(jiān)視器和同步鎖定機(jī)制。Java是一種比C或C++更具動態(tài)特性的語言。它在設(shè)計上強調(diào)為進(jìn)化中的運算環(huán)境提供支援。甚至可以在不中斷網(wǎng)絡(luò)服務(wù)的情況下替換相關(guān)的組件。
2 Java教學(xué)開發(fā)環(huán)境
Java程序的執(zhí)行需要最基礎(chǔ)的開發(fā)平臺JDK(Java Development Kit),另外還有許多集成開發(fā)環(huán)境(IDE),例如JBuilder、Eclipse。在教學(xué)的前面幾周,需要學(xué)生熟悉Java開發(fā)環(huán)境的配置、Java程序的編譯、執(zhí)行和調(diào)試。因此,要求學(xué)生用文本編輯器編寫代碼,使用Java、Javac命令直接編譯執(zhí)行。但是用文本編輯器編輯源程序,然后使用命令行的方式進(jìn)行編譯處理,編程效率低,不利于進(jìn)行復(fù)雜的Java軟件開發(fā)。在隨后的教學(xué)中,可用集成開發(fā)環(huán)境來取代記事本作為Java源程序的編寫工具,提高學(xué)生編寫程序的效率。Eclipse是基于Java的、開放源代碼的可擴(kuò)展開發(fā)平臺,是由IBM公司投入巨資開發(fā),之后將其捐贈給國際開放源代碼團(tuán)體。Eclipse軟件可以集成不同的軟件工具供應(yīng)商的產(chǎn)品,任何開發(fā)工具廠商都可以將他們的開發(fā)工具或組件加入到Eclipse平臺,用戶可以通過相同的接口使用不同的工具。因此建議使用Eclipse作為開發(fā)平臺。
3 對Java程序設(shè)計教學(xué)方法的研究與探索
3.1 Java基礎(chǔ)語法和基礎(chǔ)類庫的學(xué)習(xí)
Java的基礎(chǔ)語法和C語言以及C++的語法非常類似,絕大多數(shù)的高校在開設(shè)Java程序設(shè)計的課程之前一般都開設(shè)過C語言課程,因此這一部分的學(xué)習(xí)學(xué)生會感到比較輕松。在進(jìn)行語法教學(xué)時,要求學(xué)生主要理解以下內(nèi)容:數(shù)據(jù)類型、操作符、控制流程、類、類的繼承、接口以及接口的實現(xiàn)、包以及包的使用、異常處理、線程等。為了加深對Java基本語法的掌握,在進(jìn)行教學(xué)和學(xué)生上機(jī)練習(xí)時,要求學(xué)生用文本編輯器編寫代碼。如果一開始就利用Java的集成開發(fā)環(huán)境進(jìn)行教學(xué),不利于學(xué)生對基本語法的掌握。在此階段還有一個非常重要的訓(xùn)練就是要求用Java編譯器Javac. exe去檢查語法錯誤,這樣可以很快提高學(xué)生對基本語法的掌握。Java語法教學(xué)的基本目標(biāo)是對Java的基本語法有一個整體認(rèn)識,能讀懂源代碼,能夠?qū)懗龊唵蔚腏ava程序。很多教師不注重讀程序的教學(xué),讀程序首先要理出程序的結(jié)構(gòu),然后才能夠理解程序的功能,這是進(jìn)行語法教學(xué)的有效環(huán)節(jié)。Java語言是面向?qū)ο缶幊趟枷氲牡湫腕w現(xiàn),因此要打下深厚的Java語言基礎(chǔ),還必須要深刻理解面向?qū)ο缶幊趟枷胍约懊嫦驅(qū)ο箨P(guān)鍵概念:接口、方法、多態(tài)、繼承等的Java實現(xiàn),因為這一部分內(nèi)容的學(xué)習(xí)是后期學(xué)習(xí)的基礎(chǔ)。學(xué)生還應(yīng)該對Java基本類庫有個整體了解,Java API文檔是最好的學(xué)習(xí)Java的資料,并且Java基本類庫中提供了非常多很有用的類,對于學(xué)生在今后的實踐中會有很大的幫助。但是由于Java基本類庫中的類非常多,沒有辦法一一介紹,教學(xué)中對一些重要的包進(jìn)行講解,通過這些包的介紹,使學(xué)生理解整個Java基本類庫的結(jié)構(gòu),并且學(xué)會如何使用這些類,尤其重要的是需要學(xué)生掌握如何去查閱API文檔手冊。
3.2 面向?qū)ο蟮木幊趟枷?/p>
Java語言是純面向?qū)ο蟮木幊陶Z言,而學(xué)生原來的語言基礎(chǔ)都是面向過程的程序設(shè)計語言。面向過程和面向?qū)ο笫莾煞N截然不同的思想方法。采用面向過程的思想進(jìn)行程序設(shè)計,實質(zhì)是從計算機(jī)的觀點出發(fā)、詳細(xì)地設(shè)計解題步驟、進(jìn)行功能的分解,所得到的程序以數(shù)據(jù)結(jié)構(gòu)為中心、以函數(shù)作為模塊,穩(wěn)定性、可重用性、可維護(hù)性較差。面向過程的程序設(shè)計方法,越來越難以勝任大型軟件系統(tǒng)的開發(fā)。正是在這種危機(jī)下人們把面向?qū)ο蠓椒ㄓ糜诔绦蛟O(shè)計。面向?qū)ο蟪绦蛟O(shè)計方法,從人類的習(xí)慣性思維出發(fā),強調(diào)對客觀世界的模擬,按問題領(lǐng)域設(shè)計程序模塊,以對象代表問題解決的中心環(huán)節(jié),使程序的分析、設(shè)計和實現(xiàn)的過程和方法,改變了過去的脫節(jié)和跳躍狀態(tài),使人們對復(fù)雜系統(tǒng)的認(rèn)識過程與系統(tǒng)的程序設(shè)計實現(xiàn)過程盡可能的一致。面向?qū)ο蟪绦蛟O(shè)計的教學(xué),關(guān)鍵是對學(xué)生進(jìn)行面向?qū)ο笏枷氲呐囵B(yǎng)。只有掌握面向?qū)ο筮@一思想“利器”,才能把它有效地用于指導(dǎo)實際編程。教學(xué)過程中結(jié)合具體的實例引導(dǎo)學(xué)生采用面向?qū)ο蟮乃枷脒M(jìn)行分析、設(shè)計,最后編程解決向題。
3.3 重視實踐,采用項目實踐教學(xué)方法
Java語言是一門實踐性非常強的課程,單單依靠課堂的教學(xué)是不夠的,程序設(shè)計技能的培養(yǎng)只有通過大量的編程訓(xùn)練和上機(jī)實習(xí)才能獲得。并且隨著現(xiàn)代科學(xué)技術(shù)及生產(chǎn)組織形式對高等教育要求的不斷提高,傳統(tǒng)的教學(xué)模式已經(jīng)不能滿足軟件人才培養(yǎng)的要求。傳統(tǒng)的教學(xué)模式主要存在下列弊端,教學(xué)內(nèi)容重理論、輕實踐,教學(xué)方法習(xí)慣以書本為中心。這些弊端都可通過項目教學(xué)法的教學(xué)模式來解決。項目教學(xué)法是教師指導(dǎo)學(xué)生通過實施一個完整的項目工作而進(jìn)行的教學(xué)活動,項目指一項具體的、具有實際應(yīng)用價值的任務(wù)。項目的設(shè)計依賴于大量的市場需求的調(diào)查,這意味著學(xué)生不僅僅學(xué)到了書本上的孤立的知識,而且學(xué)會了分析問題,規(guī)劃和設(shè)計方案,實現(xiàn)學(xué)習(xí)和實踐的統(tǒng)一。因此可以說,項目教學(xué)法是一個幫助學(xué)生適應(yīng)未來職業(yè)要求的學(xué)習(xí)形式。項目教學(xué)法通過解決學(xué)生身邊的一些實際問題來實現(xiàn)學(xué)生對知識的掌握,大大提高了學(xué)生學(xué)習(xí)的積極性和主動性。經(jīng)過項目教學(xué)法學(xué)習(xí)的學(xué)生,他們的動手能力、解決實際問題的能力有很大的提高。
3.4 培養(yǎng)學(xué)生樹立軟件工程的觀點
當(dāng)前,計算機(jī)軟件在各個領(lǐng)域中均有廣泛的應(yīng)用,應(yīng)用規(guī)模亦日趨增大,因此軟件的開發(fā)需要由開發(fā)團(tuán)隊分工合作,共同完成。在大型軟件的開發(fā)過程中,軟件工程正發(fā)揮著關(guān)鍵性的作用。它決定了軟件產(chǎn)品的開發(fā)進(jìn)度和開發(fā)質(zhì)量。Java作為面向?qū)ο笳Z言所具有的眾多優(yōu)點,在其教學(xué)過程中培養(yǎng)學(xué)生的軟件工程思想非常適宜。Java中以類為單位編碼,這一方面易于單元測試,在很大程度上保證提交代碼的完整準(zhǔn)確性;另一方面,也能夠以類作為劃分工作的單位。易于實現(xiàn)多人合作分工。軟件工程的素質(zhì)必須通過實踐才能培養(yǎng)出來。在Java學(xué)習(xí)過程中。結(jié)合教學(xué)內(nèi)容,選擇合適的項目,按照軟件過程來開發(fā),利用Java面向?qū)ο蟮奶攸c啟發(fā)學(xué)生用接近真實世界的方式來分析和設(shè)計軟件系統(tǒng)。軟件開發(fā)的過程也是一個團(tuán)隊的組織、合作、管理的過程。
4 結(jié)束語
Java程序設(shè)計對培養(yǎng)學(xué)生的計算機(jī)應(yīng)用能力起著非常重要的作用,探索該類課程教學(xué)方法,提高教學(xué)質(zhì)量是從事計算機(jī)教育的工作者都必須重視的問題,更為重要的是教育工作者要不斷地更新觀念和知識,適合教學(xué)改革的需要,這樣才能推動我國實施的科教興國戰(zhàn)略不斷前進(jìn)。
參考文獻(xiàn):
[1] 雍俊海.Java程序設(shè)計教程[M].北京:清華大學(xué)出版社,2007.
[2] Bruce Eckel. Java編程思想[M].北京:機(jī)械工業(yè)出版社,2007.
[3] 孫偉.《Java程序設(shè)計》課程的教學(xué)改革與實殘[J].計算機(jī)時代,2005(11):84-85.