1 引言
眾所周知,Java是20世紀90年代初推出的一種純面向對象編程語言工具,自從它面世以來,已經獲得了業界的一致推崇,由于它的可移植性、跨平臺性等優點,在基于因特網的系統開發中得到了廣泛應用,所以,Java又有“網絡程序設計語言”一說。目前,Java的應用領域可以分為J2SE、J2EE、J2ME三個方面,J2SE是Java標準開發版本,J2EE是企業完全版本,J2ME是移動設備開發版本,高校的教學幾乎全部集中在J2SE這個方面,其他兩個應該是項目實際開發、提高部分。筆者自1998年就開始在本校從事Java的教學工作,期間經歷了Java不同版本的升級,從JDK1.0到現在的JDK1.5,教學工具也不斷地更換,比如早期的JBuilder3.0到現在的JBuilder2006,采用的教材也幾乎是年年更新,從早期清華大學出版社出版的王克宏教授主編的《Java語言程序設計基礎》,到現在機械工業出版社的《Java程序設計教程》,同時有幸接觸到英國Aston 大學的Java課程的講義,經過檢查過去多年的教學經驗與教學手段,與國外大學的同一課程進行比較,希望能總結出一些好的經驗及教學模式。
2 教學周期的差異
由于計算機市場對Java編程人員的大量需求,學生學習Java語言的興趣逐年遞增,一方面督促老師自己不斷地攝取新的知識對自己升級換代,另一方面學生數目的增大,面對大量增加的選課學生,老師也應該了解他們的學習目的,才能做到有的放矢。由于學校課程設置的安排,深圳大學的Java課程是在“面向對象程序設計(C++)”之后開設的,所以在教學的過程中經常會碰到同學提出“Java到底有什么用?”,“我已經學了C++,還要不要學Java啊?”,“Java怎么感覺與C++有很大的不同?”,“我想做一些數據庫管理的事情,該學Java的哪些內容”等等諸如此類的問題。針對這些問題,我們在教學中就應該事先清楚自己的教學目的是什么。由于本校Java課程是面向全院的選修課,整個課程的教學周期為一學期,學時相當有限,造成教學任務繁重,各章節就不能完全進行細化,很多東西在課堂上講完并演示過對應的例題后部分學生仍然一知半解,需要課后再花一定的時間對課堂上所講的知識進行消化、吸收。對照國外的Java教學,由于他們整個Java的課程設置為一年,比如分為Java程序設計基礎知識部分與Java程序設計高級部分,在基礎知識部分,著重介紹Java的特點、與其他編程語言的區別,在學生有了基本概念之后,再進行語法知識的介紹。在英國,除了課堂上老師授課之外,課程設置里還專門安排了一個叫tutorial的授課安排,相當于課堂討論課。老師預先給出教學中的重點、難點,同學們可根據自己的情況及時發言或討論,從中獲得自己想要的東西。在師生之間的這種交流過程中,老師不僅可以了解學生的學習情況,還可以根據學生反饋來進行教學改進。這樣經過一個學期對Java基礎知識的掌握后,才開始下一個學期的高級部分的學習。總而言之,針對目前Java編程人員需求量大的情況,高校決不能扮演Java編程速成班的角色,我們應該踏踏實實地按照一個原則:好的編程人員是要有一個完整的培訓、學習周期。循序漸進、由淺入深,才是我們的教學原則。由此,如何在Java的課程設置中確定一個合適的教學周期,是值得我們商榷的,國外的教學例子值得我們參考。
3 教學大綱與教學內容的不同
高校的課程設置,教學大綱是必不可少的,合理地制訂教學大綱并貫徹執行是教學成功的一個保障,下面給出我校Java課程教學大綱與Aston大學教學大綱的內容,如表1所示。
表1 國內外大學的Java教學比較

通過表1可以看出,由于學時的安排與重視程度的不同,同一門課程,深圳大學與英國的Aston大學的區別還是比較大的,由于講授學時的限制,在某些章節的講述過程中,比如類、對象、接口與包,深圳大學大約是4個學時,感覺上講解不是很透,學生還需課外花費一定的時間去進行補充、提高,而Aston
大學把該部分的內容分得很細,為了讓學生樹立面向對象的概念,采用了以下順序進行介紹:
a.面向對象程序設計的概念
b.面向對象程序的架構
c.類的繼承、子類父類的概念
d.類的多態性、集合的概念
e.方法重載與重定義、抽象方法與抽象類
f.接口與包的應用
這樣一來,學生的概念很清晰,并伴以合適的例題進行講解,學生在課堂上的收獲很大,同時也培養了學生進一步學習的興趣,當然,需要的講解課時也隨之增多。
當前我國高校面向對象的編程軟件大部分還是以C++作為講授內容的,學生如果能掌握C++的概念當然會明白面向對象的概念,但是,C++的應用還是微軟的天下,其不開源的理念及大量的MFC的應用,仍是橫在學生面前的一條鴻溝,而Java語言的開源性促使其蓬勃發展,也使得原來大量的C++軟件人員轉到該領域,所以,目前Java的教學也越來越引起高校的重視,但是如何制定相應的教學大綱與教學內容,是擺在我們面前的一個急需解決的問題。
4 教學手段的比較
前面討論了深圳大學與Aston大學教學內容上的一些差別,那么在教學手段上二者有什么不同呢?與過去的一根粉筆打天下的教學手段相比較,現在已經有了明顯的進步,基本上所有的教室均實現了多媒體教學的手段,從硬件上來說,與國外已經沒有差別,甚至在軟件升級換代的周期上還優于國外,這里,作者想從以下幾個方面來談談國內與國外教學手段上的不同。
4.1 教材上的差別
Java教材從早期清華大學出版社的《Java語言程序設計基礎》,《Java語言程序設計教程》,到現在機械工業出版社的《Java程序設計教程》,整個感覺教材的要求是越來越高,但總是落后國外大學一步。比如Aston大學選用的是《An Introduction to Programming and Object-Oriented Design Using Java》及《Java, Java, Java Object-Oriented Problem Solving 2e》,由于我們采用的是中文教材,目前市面上大部分Java教材都是編譯或編著,從周期上來看,肯定與別人有一個時差,所以,在上課的同時,我們總是建議學生課外去閱讀一些原版的Java英文教材,以獲得一些最新的知識,比如早期的Java經典著作《Thinking in Java》。除此之外,老師和學生應該多瀏覽Java的專業網站以獲得關于Java的新發展、新動態。
4.2 教學內容的比較
我們在程序設計課程的講授過程中,在實例講解時,往往是按照章節來進行,各章節之間缺乏關聯,這樣學生在學習的過程中很難做到理解上承前啟后,思維是一段一段的。比如,在講解對象與繼承這兩個概念時,我們原來經常采用的實例是:
a. 對象講解:
public class A {
return_Type some_Method() {….}
Typevariables_Defined;
}
b. 繼承講解:
public class B extends A {
return_Type some_Method() {…}
Typevariables_Defined;
}
在這個過程中,類A作為類的定義的一個案例,而類B作為繼承的一個案例,從某個角度來看,概念是講清楚了,但是類名是很抽象的,學生不一定會與生活中具體的對象進行聯想,另外,繼承的概念也是從抽象的類名來展開的,沒有實際的意義,也是很抽象的,這樣,教學的效果可想而知了。我們再來看一下Aston大學在對象與繼承概念上的例子:
a.對象講解:
public class Item {
private String title;
private int playingTime;
private boolean gotIt;
private String comment;
// constructors and methods omitted.
}
b.繼承講解:
public class CD extends Item {
private String director;
// constructors and methods omitted.
}
它采用的是一個信息分類的例子來作比較,而這類情況同學們在現實生活中會經常碰到,理解也不難,比如,現在要把一大類的光盤進行分類,首先我們要抽象出VCD及CD的共性來得出一個基本的類Item,在此基礎上可以對它進行繼承得出一個子類CD,很形象。而且,在今后章節的講解過程中,并沒有拋棄原來的例子,而是在其基礎上進行擴充,就好比一個簡單的例子,經過滾雪球的方式,知識的不斷積累,功能不斷完善,擴充的內容也越來越多,保持前后知識點的關聯性,增加學生的興趣!
4.3 教學工具的比較
教學工具的選用對學生的影響也是相當大的,不同學校由于條件的限制(比如版權、習慣等)可能采用的Java教學工具有所不同。我們早期采用的是JDK1.0字符界面工具來進行講授,用JDK進行教學,好處是學生能掌握常用的命令行指令的使用及編譯環境的配置,對今后在非Windows操作系統下進行編程會有一定的幫助,但是在線幫助就很煩瑣。目前我們的教學工具已經是JBuilder2006(正版),它集成了J2SE、J2EE、J2ME三個編程環境,交互性好,但是運行環境要求比較苛刻,同時正版的費用也比較高,而開源免費的開發工具有JCreator、Sun公司的NetBeans等,Aston大學的教學工具采用的是JCreator,該軟件運行時占用內存少,對系統要求不是很高,被配置較低的一些用戶所喜愛,當然,從Java編程提高的角度來看,我們建議有條件的話還是采用JBuilder比較好。一方面它對代碼的語法的實時檢測減少了出錯的幾率;另一方面其完備的文擋幫助對學好Java來說也是一個好的幫手;再者,Java目前的從業者推薦的使用開發工具也是JBuilder,對提高學生的開發能力是有所幫助的。
5. 結論
本文針對深圳大學與英國Aston大學的Java課程在教學周期、教學內容、教學手段等方面作了簡單的比較,通過比較與分析,可以得出的結論是:
(1)對該課程的重視程度我們還不及國外的大學,可以從教學課時的分布上看出這一問題。
(2)教學內容上面我們做得比較粗,國外做得比較細,這主要體現在案例的取舍及前后相關聯方面。它讓我們認識到需要在教學內容上總結經驗,抓住重點,提高學生的學習興趣。
(3)教學工具我們并不落后于國外,如何引導學生利用先進的開發工具掌握新知識、新的發展動態是擺在我們面前新的課題。
本文只是單純將Java課程與國外大學的Java課程作了些比較,得出的結論可能會有失偏頗,隨著IT業的發展,科技無國界,其他的課程也會面臨同樣的問題,希望能對我國高校中的軟件課程的設置有所裨益。