摘要:通過對Java程序設計課程教學中遇到的問題的分析,從完善教學內容、提高學生實踐能力和創新能力等方面討論了Java程序設計課程教學,提出了一種Java教學的新方法。
關鍵詞:Java教學;問題和對策;課堂教學;應用實踐能力
隨著Java技術的不斷發展及其應用領域的不斷拓展和成熟,Java技術受到越來越多人的關注和喜愛,Java技術成為近年來社會需求最大的編程技術之一。
一方面,Java技術是非常龐大和復雜的,而另一方面,由于課時有限等原因造成學生無法較全面地掌握Java技術,導致畢業后職業競爭能力不強。
為了進一步培養學生Java應用實踐能力和讓學生將來更好地適應社會對Java人才的需求,筆者從Java教學中遇到的一些問題和相應的解決辦法兩方面展開論述。
1Java教學中遇到的一些問題
1.1僅開設Java SE課程帶來的問題
目前,大多數高等院校都開設了Java程序設計課程,但由于課時限制,且針對選課的大多數學生沒有接觸過Java等原因,多以Java SE平臺為教學主要內容,從基本的Java語法,Java面向對象編程方法、Java界面及事件編程、Java多線程、Java I/O流、Java數據庫連接、基于Socket的網絡編程等內容為主介紹Java。眾所周知,這些內容都是Java技術的核心基礎知識,在Java教學中是不可或缺而且要牢固掌握的知識。
但在實際教學過程中,只開設和講授Java SE程序設計基礎部分的內容帶來了以下一些問題:
1) 學生學完Java SE基礎課程后,會造成一些錯覺和迷惑。例如,Java只是精簡了的C++嗎?Java的界面設計并不比Visual Studio中的軟件、Delphi等強,優越性何在?Java原來就是這些內容,沒什么,有了這些Java SE基礎知識,就可以適應社會需求等。
2) 由于沒有Java技術后續課程的支持,使得學生沒有能力進一步自學或不能堅持學習Java EE,Java ME部分的Java技術,造成學生學習Java技術過程中的“斷線”現象,對如何進一步學習和提高Java技術能力感到迷惘;由于無力自學層出不窮的Java流行技術而徘徊、退縮。學生所學知識與社會需求脫鉤,當學生畢業走向社會時,就面臨缺乏Java EE、Java ME的相關知識及其應用開發經驗的問題。
1.2Java作業、實驗、課程設計和畢業設計中存在的問題
1) 學生動手能力、綜合運用知識的能力較差,在遇到實際問題時,無從下手。
2) 學生過多地依賴現成資料,只想從網上搜索相關解決方案,直接套用;課程設計、畢業設計原創性較差。
3) 學生沒有養成良好的軟件工程習慣,表現在系統設計和實現的混亂和隨意。
1.3對教師的業務素質和能力的挑戰
1) 學生希望通過課堂學習獲得Java應用實踐和適應Java社會需求的能力,這就對教師課堂教學的內容和方法提出了更高的要求。
2) 教師的工程實踐經驗面臨挑戰,編程經驗和項目開發經驗源于長期一線的開發和實踐經驗,而這些往往是教師所欠缺的。
2解決辦法
2.1Java課程的設置
在條件允許的情況下,可以將Java程序設計課程分階段開設,如在低年級開設“Java SE 程序設計和應用”課程,在較高年級開設“Java EE程序設計和應用”和“Java ME程序設計和應用”課程。并在選課系統中增設關于每門課程的內容簡介和授課教師的介紹,這樣做有以下好處:一是在課程名稱字面上就可以看出授課的重點,可以回避學生從一個籠統的“Java課程設計”名稱上產生誤會,認為這門課可以將Java的所有技術都包含進去;二是通過課程內容簡介,讓學生更加透明地了解每門Java課程的授課重點,從而根據自己的知識需求和興趣有目的地選擇和學習課程。
2.2Java SE基礎課程授課中的注意點
2.2.1教材的選取
Java技術體系龐大,不能以一本固定的教材內容作為教學內容的依據。應綜合提煉,精選出包括Java技術核心基礎及流行技術簡介在內的內容進行講授,讓學生在牢固掌握Java基礎核心知識的前提下,對Java高級應用和流行技術也有所了解,以便進一步學習Java技術。
2.2.2一定要介紹給學生的內容
1)Java平臺組成及其各自應用領域的介紹。
Java自誕生以來,在不到20年的時間中飛速發展,針對不同的應用領域整合出3個平臺即Java SE、Java EE和Java ME[1]3[2]1,如表1所示。在學生初學Java時,用最簡單的實例闡明三種平臺開發環境的搭建和應用,如演示在JDK和Eclipse兩種環境下對Java Application和Applet的開發和運行過程;運用MyEclipse插件演示Java Web應用的開發過程;運用Eclipse+J2ME Wireless Toolkit+EclipseMe環境演示手機應用程序的開發等[3]4[4]19-20,這樣即可以闡明完整的Java技術體系,又可以充分調動學生學習Java的積極性和主動性。
2) 讓學生明白Java的學習路線。
一般是先學習Java SE,掌握Java面向對象程序設計思想和簡單的程序設計模式。循序漸進地、系統地學習Java核心類庫中常用類及其各自常用方法,編寫Application和Applet程序。然后根據興趣和需求學習Java EE,學習Java EE時先從JSP入手,學習JSP基本語法,理解JSP及Servlet的運行原理和關系,學習Struts、Spring和Hibernate輕型框架技術及Ajax技術等,進而學習Java EE中的其他高級技術。另一分支是Java ME 的學習,從手機應用和游戲開發等入手[3]6[4]9-10。
3) 讓學生熟悉開發環境。
從簡單基于命令行的JDK開發環境到功能強大的集成開發環境如Eclipse、MyEclipse、NetBeans IDE、JBuilder等,要逐一地介紹給學生。
對于Java初學者來說,熟悉JDK開發環境的使用和配置方法很重要,在使用JDK的過程中,讓學生熟練掌握javac,java,appletviewer等常用命令的用法,將非常有助于學生理解一個Application,Applet的從編譯到解釋執行的步驟和方法;熟悉javadoc命令將會讓學生執制作出自己所開發程序的Java文檔,熟悉jar命令將會使學生將自己的程序進行打包和發布等[1]98-99[2]58。
從最簡單的應用開始,讓學生快速掌握各種集成開發環境的搭建和配置,如對Eclipse和MyEclipse插件及其他插件的配置和應用等,以克服學生由于環境不熟悉而產生的開發障礙。
4) 展示案例。
為了調動學生的學習積極性,展示現成的應用案例非常重要。目前,諸如《Java案例教程》、《Java課程設計教程》、《Java項目開發教程》以及《Java畢業設計教程》等較多,其中大都包含了作者精心設計和實現的案例,可以從中精選出最具代表性的案例給學生演示,并概要介紹其設計和實現過程。也可以將歷屆學生運用Java所做的較優秀的課程設計或畢業設計項目演示給學生,這更具有說服力和利于提高學生學習的主動性和信心。
2.3有效利用網絡資料和參考書籍,拓展學習渠道
Java具有開放性特點,SUN公司的網站上提供了包括JDK在內的各種Java軟件開發工具和API文檔的下載。國內外各種Java技術網站和技術論壇非常多,其上提供了大量的例程、技術方案、電子書、教學視頻、開放源碼、疑難問題的討論和解答等。同時,涉及Java編程思想、Java程序設計、Java項目開發等書籍也非常多。將這些海量的網絡資料和參考書籍進行歸類和精選,推薦給學生,并將這些資源的利用布置為作業和課程實踐項目,檢查督促學生完成情況,對培養學生甄別各種Java資料的優劣并加以有效利用有很大的幫助。
2.4夯實編程基本功,鍛煉編程思想,提高分析問題的能力
針對學生拿到實際問題時束手無策,綜合應用能力弱的問題,可以在教學中設計幾個能貫穿小到每一章節,大到整個教學內容大部分知識點的案例。先提出案例需求,再引入相關知識點,以軟件工程的方法,按照需求分析,系統設計,編碼和測試,打包發布,維護升級等環節講授,讓學生感受到程序中的每個類,類中的每個成員變量和方法都是在為某個實際的需求服務,而不是隨意引入和定義的。
由(美)Bruce Eckle 著、陳昊鵬譯的《Java編程思想》和耿祥義、張躍平著的《Java編程模式》等,都是優秀Java編程思想的凝結和提煉,而Struts、Spring和Hibernate等輕型框架技術則是這些優秀編程思想在技術層面的集中體現,選擇其中的內容融入教學過程中,引導學生從中汲取優秀編程思想的營養。
實驗教學是Java教學的重要組成部分,因此,針對每個章節基本知識點的實驗項目,可以將實驗項目分為基本驗證性、拓展性、創新性等層次。對于基本驗證性實驗,可以給出程序模板,將程序中一些關鍵語句抽去,讓學生通過程序填空的方式進一步鞏固理論教學中所學的內容[5];拓展性實驗項目只給出問題需求,這類實驗應選擇與授課例題相仿,但有一些變化的題目,讓學生獨立編程實現;創新性實驗項目是針對較拔尖的學生,可以選用有難度的Java競賽題目或綜合較多知識點的應用題目。
教師在授課前就給學生布置課程設計題目,題目應選擇具有實用價值的中小型項目,目的是邊學習邊解決課程設計任務,從而增加學生學習的主動性和積極性。當學生運用課堂上學到的知識解決了實際問題時,則會大大提高學生的學習興趣和信心,感受到成就感。
2.5通過競賽提高
對于學有余力的學生,應鼓勵他們參加各級各類的Java程序設計競賽,如參加ITAT的Java程序設計競賽等。通過競賽,一方面,鍛煉了學生團隊合作精神,另一方面,使得所學知識在一個較高的層次上得到了檢驗和提高。
2.6改革考試模式
Java課程是一門實踐性很強的課程,不宜只以筆試的形式進行考試,采用“筆試+課程設計”的形式是一種較好的考試模式??荚囆问綄τ趯W生學習的方式和態度影響很大,如只采取筆試的形式,有可能導致學生只記住或理解與授課內容范圍中的知識點來應對考試。而只用開放實驗或課程設計的方式進行考試有可能導致部分學生抄襲現成的代碼而不求甚解或分工不均等。
2.7興趣小組和Java社團的組建
“學之者不如好之者,好之者不如樂之者”,興趣是最大的內驅動力,可以成立Java愛好者興趣小組或Java社團等學生組織,建立社團的網站,通過它交流和分享Java編程體會和經驗;可以虛擬項目,成立開發團隊,分工協作,完成項目開發。
2.8牢固樹立軟件工程思想,保證項目開發的效率
在做較大的課程設計或畢業設計以及開發虛擬項目時,也要嚴格按照系統分析(包括需求分析、可行性分析等)→系統設計(包括系統功能及流程設計、業務編碼規則、采用技術及開發工具選型、窗體或頁面布局設計、類及類間交互關系設計等)→數據庫設計→編碼實現→測試與發布等流程實施項目開發[6]。
對于學生初學Java項目的開發時,要尤其注意防止將以上步驟的執行流于形式。例如,在沒有弄清開發意圖及實現目標的基礎上就急于編寫代碼;開發小組成員分工模糊、重疊、缺乏監管;先有實現,再補設計和文檔等問題。這些都需要指導教師耐心地引導、督促并參與到開發小組中,逐步規范和培養學生良好的軟件工程習慣,從而提高項目開發的效率和成功率。
2.9教師業務素質的提高
講授Java課程的教師可以通過定期參加知名企業Java程序員的培訓課程;積極參與企業Java項目開發;與具有資深開發經驗的Java程序員交流和切磋;深入到學生中,與學生共同解決Java項目開發的問題和困難等方式,進一步提高Java授課的質量,更好地突出應用性。
3結語
通過總結幾年來在Java程序設計課程教學中遇到的一些問題,筆者探討了解決這些問題的具體方法,通過教學實踐,發現這些方法是可行和有效的。
參考文獻:
[1] 耿祥義,張躍平. Java 2實用教程[M]. 3版. 北京:清華大學出版社,2006.
[2] 鄭阿奇. Java實用教程[M]. 2版. 北京:清華大學出版社,2009.
[3] 鄭阿奇. Java EE基礎實用教程[M]. 北京:電子工業出版社,2009.
[4] 陸昌輝. J2ME應用開發詳解[M]. 北京:電子工業出版社,2009.
[5] 耿祥義,張躍平. Java 2實用教程實驗指導與習題解答[M]. 3版. 北京:清華大學出版社,2006:2.
[6] 苗春義. Java項目開發全程實錄[M]. 北京:清華大學出版社,2008:2-10.
Problems with Its Countermeasure in the Java Programming Course
LI Rui-sheng
(College of Computer Science, Gansu Institute of Political Science and Law, Lanzhou 730070, China)
Abstract: Based on analysis of some problems that encounter in the Java Programming course, Emphasize on discussing of how to supplying the java course’s content, improving the java lecture’s quality, practice and innovation abilities of the students . At last ,A new method for Java programming course is proposed.
Key words: Java course; problems with its countermeasure; teaching; applying and practicing ability
(編輯:彭遠紅)