楊新艷 梁宏濤
摘要:本文根據(jù)我院的教學實踐和對Java教學的研究,針對目前Java語言教學的問題,提出了階段性的案例教學法,從課程的設置時間、案例內容的設置、案例的講解方式以及實踐環(huán)節(jié)等方面詳細說明了該方法。
關鍵詞:Java教學;案例教學;面向對象
中圖分類號:G642 文獻標識碼:B
1引言
Java是由Sun公司開發(fā)的新一代編程語言,獨立本科院校將Java語言作為計算機專業(yè)的重點課程,主要有以下兩個方面的原因。
首先,Java語言是一門純面向對象的語言。面向對象程序設計是計算機科學與技術專業(yè)的核心課程,理論性和實踐性并重。教學內容主要包括面向對象程序設計范型(paradigm)的三個最重要的特性:封裝、繼承、多態(tài),以及Java如何實現(xiàn)這三個特性,使學生掌握面向對象程序設計范型和一種面向對象的編程語言,從而為以后的學習打下基礎。
其次,Java語言具有安全可靠性、平臺無關性、支持多線程等優(yōu)點,使用它可以在多種操作平臺的網(wǎng)絡環(huán)境中開發(fā)軟件。由于Java語言的這一特點,加之Internet的迅猛發(fā)展,使得它逐漸成為Internet上最受歡迎的開發(fā)與編程語言。國內有的軟件開發(fā)企業(yè),不惜花費大量的時間與資金,培訓Java軟件開發(fā)人員。在這種大趨勢下,市場大了,對人才的需求量也在猛增,為了適應企業(yè)的需要,提升畢業(yè)生的就業(yè)率,幾乎所有的大、中專院校都競相開設了Java語言程序設計的課程,當然,獨立學院也不例外。
但由于Java語言的實踐性和開發(fā)環(huán)境的特殊性,究竟采用何種教學方法,才能顯著提高教學效果,卻是近幾年來計算機教育普遍關注和研究的熱點。
2Java語言的教學現(xiàn)狀
到目前為止,對于Java教學方法的研究有很多,但大部分高校的Java語言的教學還是采用講授法,有的院校從以往的寫板書教學升級為多媒體教學,雖然多媒體使教學更生動、直觀,卻只是教學形式上的改觀,教學方法的本質沒變。而且,雖然現(xiàn)在研究的教學方法有懸念法、類比法等多種方法,但是哪一種更適用于獨立學院的教學,并不是紙上論證能夠決定的;更何況獨立本科院校的教學要求和教學目標與其他本科院校有所不同,教學方法的選擇更不能生搬硬抄或模仿,要根據(jù)自己的特點,探索合適的教學方法。
我們考慮到獨立本科院校的計算機教育是以培養(yǎng)應用型人才為目標,培養(yǎng)的學生應當能與當今社會和企業(yè)接軌,熟悉軟件開發(fā)流程,具有足夠的軟件開發(fā)技能,所以,專業(yè)課程的教學目標更加注重學生計算機實踐能力的培養(yǎng)鍛煉。而且由于獨立學院的學生和一本、二本院校不同,專業(yè)課程中理論性強的東西接受相對慢一些,學生碰到復雜難學的問題,會對整門課程產(chǎn)生恐懼心里,普通的講授方法無法解決這些問題,所以更加需要積極探索適應于獨立本科院校的Java課程教學方法。
針對Java語言課程的特點和獨立學院學生的特殊性,通過實際教學中的不斷摸索和實踐,我們采用了階段性的案例教學法,教學取得了顯著的效果。階段性的案例教學法和傳統(tǒng)的案例教學方法是有區(qū)別的。傳統(tǒng)的案例教學法在教學過程中往往會陷入誤區(qū),有的只注重案例的實現(xiàn),忽略了Java語言中重點語法的講解;有的案例只是單純語法正確性的驗證,忽略了軟件開發(fā)技能的講解,和企業(yè)的應用脫鉤。我們研究的階段性案例教學法會在教學過程的不同階段采用不同的案例教學手段,一方面將理論性強,不容易理解的語法知識用案例的方式展現(xiàn)給學生;另一方面案例是實實在在Java的應用效果,學生看到自己學習的語言能夠編寫出具有功能的軟件來,不僅激發(fā)了學生的學習興趣,還能提高學生的軟件開發(fā)能力。
下面介紹Java語言教學——階段性案例教學方法的關鍵環(huán)節(jié)。
3階段性案例教學法的實施
3.1概述
階段性案例教學法的核心是以案例貫穿教學,但在教學過程的不同階段,采用的案例是有區(qū)別的,而且講解的方式也不相同。
首先根據(jù)案例涉及知識點的范圍以及應用的目的,階段性案例教學法中的案例可以分為:知識點案例和項目案例。知識點案例也稱為基礎案例,它的功能主要是通過講解基本語法或小功能案例,促進Java基礎知識的學習;項目案例也可稱為大項目,它是通過綜合的應用性比較強的項目,提高學生對Java的系統(tǒng)掌握,有利于提高學生的軟件開發(fā)水平。
其次,這種案例教學法是分階段,逐步推進的,在教學過程的前期,主要是Java基礎知識的講授階段,學生在這個階段要進行基本語法知識的學習和基本編程技能的掌握,所以采用基礎案例來推動學生對Java基礎的學習;在教學的后期,逐步滲透大項目的思想,引導學生將前期的知識點案例綜合應用,完成一個項目案例。加強學生的語言綜合應用能力。同時,會根據(jù)學生前期知識的掌握程度以及案例的特點,靈活采用不同方式來講解案例。
3.2課堂內容的設置
3.2.1課程的設置時間
階段性案例教學法是基于本學院的教學實踐來研究的,本學院的Java課程是在大三下學期開設,所以案例的設置充分考慮到與前期課程以及同期課程的關聯(lián)。充分發(fā)揮前期課程的基礎作用,協(xié)同同期課程教學,互相加強教學。
第一,以前期C語言、C++語言以及數(shù)據(jù)結構為基礎,在學生具有一定的編程認識的基礎上,進一步認識面向對象的程序設計;在前期課程網(wǎng)站開發(fā)基礎學習靜態(tài)網(wǎng)站開發(fā)設計的基礎上,進一步學習Java在Web編程中的應用。
第二,與數(shù)據(jù)庫基礎課程同期講授,不僅能夠減輕學生學習Java課程時在數(shù)據(jù)庫學習方面的負擔,更重要的是學生在Java的實踐環(huán)節(jié)中能夠使用數(shù)據(jù)庫技術,例如Java圖形用戶界面開發(fā)以及Web系統(tǒng)開發(fā)方面都加入數(shù)據(jù)庫連接,使得學生對數(shù)據(jù)庫掌握更熟練也使Java實踐更加接近實際應用,相得益彰。
下面詳細介紹一下在具體教學過程中案例的設置。
3.2.2案例內容的階段性設置
知識點案例,主要是采用經(jīng)典的程序設計案例,來演示Java基礎知識。由于Java課程是在C語言和數(shù)據(jù)結構之后開設,學生已經(jīng)掌握了一定的程序設計技能,特別是一些經(jīng)典的程序設計案例已經(jīng)初步實踐過,像常用的排序方法、搜索算法、漢諾塔問題等。所以在講授Java的基本語法知識和面向對象的基礎知識的時候可以充分利用這些學生已經(jīng)熟知的案例。這樣做有很好的效果:一方面由于學生已經(jīng)熟知這些經(jīng)典案例的功能以及使用的算法和數(shù)據(jù)結構,所以能夠把學習的重點放到Java相關基礎知識的方向上;另一方面,學生會和以前語言的實現(xiàn)進行比較學習,能夠突出Java語法的特點,更有利于新知識的理解。
考慮到知識點案例的目的,所以使用知識點案例的內容主要有:第一,在Java基礎語法教學上,這部分主要包括Java的基本數(shù)據(jù)類型、運算符和表達式、數(shù)組以及流程控制;第二,在面向對象方法的重點難點教學上,這部分主要有類及其成員定義、類的繼承、多態(tài)性的實現(xiàn),有利于加深面向對象程序設計的認識和理解,為以后的項目開發(fā)做準備。
項目案例即大項目,主要在Java課程的后期進行。它的設置是以掌握Java的社會應用為出發(fā)點,依據(jù)課程安排和學生特點,通過系統(tǒng)的綜合性的Java實例,深入講解Java的應用。Java是應用性很強的語言,所以學生不僅要掌握Java知識而且要掌握使用Java解決實際問題的思路和方法。項目案例很好的起到這樣的作用,采用與學生熟悉的實際問題,講解Java在系統(tǒng)開發(fā)方面的應用,例如學生信息管理、Java小游戲等項目。在項目案例中,不僅能與同期的數(shù)據(jù)庫課程一起實踐,互相加深認識,提高軟件開發(fā)能力;更能讓學生深刻感受到Java在解決實際問題方面的魅力,學生學有所用,極大提高他們的學習興趣。
項目案例內容比較大,學生掌握需要的時間比較長,所以結合Java語言的應用,項目案例只在兩部分使用:第一,Java的圖形用戶界面開發(fā),這部分采用項目案例主要是講解Java AWT和Swing組件的編程,采用的案例有簡易計算器、ATM機和一些Java小游戲實現(xiàn);第二,基于Java的Web開發(fā),這部分是社會上Java應用最廣的部分,通過項目案例的講解學習JavaBean、Servlet以及JSP技術的使用,采用案例有學生管理系統(tǒng)、圖書館管理系統(tǒng)、網(wǎng)上書店等。通過學習項目案例,有利于學生了解Java的綜合應用,并且初步掌握項目開發(fā)經(jīng)驗。
3.2.3靈活的案例講解方式
教學過程中的不同案例,由于使用的時間和目的不同,所以采用的講解方式是不一樣的。
在教學的最初期階段,我們采用比較的講解方法。由于本學院學生已經(jīng)學習了C、C++語言,已經(jīng)對編程語言的基礎語法以及面向對象編程有了比較深的理解,在這個基礎上再學習新的編程語言Java時,學生自身也會與C、C++語言進行比較。所以,初期的知識點案例采用比較方法講解,一個案例同時演示C++和Java的實現(xiàn)代碼。由于兩種語言的基本知識很相似,通過比較,學生會感覺到Java是一門比較簡單的語言,后期的學習更有興趣。同時,以編程的思路為主線,講解案例代碼,指導學生逐步熟悉Java語法和應用。
隨著教學的逐步推進,學生掌握的Java基礎知識逐漸豐富,前期案例的講解也為學生打下了編程思想的基礎,這時應該采用啟發(fā)式教學,教師引導學生自己分析案例,逐漸培養(yǎng)學生程序設計的分析能力。教師應及時了解學生的掌握情況,在學生熟悉Java基礎語法后,知識點案例就應采用啟發(fā)式方法,后期的項目案例也應采取該方法。該方法在教學過程中的具體使用是:在展示案例代碼之前,先告知案例的功能,由學生分析案例的編程思路和代碼實現(xiàn)過程,先由學生之間互相分析自身答案的不足,然后再統(tǒng)一分析,指導其改正編程思想的欠缺之處,逐步培養(yǎng)軟件開發(fā)的思想。最后再展示案例的詳細代碼,經(jīng)過對學生一步一步的引導,重點使他們理解和掌握軟件開發(fā)的思想和實踐過程。
3.3實驗環(huán)節(jié)——案例實踐
3.3.1開發(fā)工具的選擇
實驗環(huán)境的開發(fā)工具是由簡易開發(fā)工具UltraEdit,到集成開發(fā)工具NetBean。在學習初期,學生還未掌握Java基本語法知識,所以應該使用最基本的開發(fā)工具UltraEdit來熟練Java的語法特點和程序結構。隨著學習的深入,實踐環(huán)節(jié)的重點由基礎知識的掌握上升到軟件開發(fā)技能的學習上,相應的開發(fā)工具也應該選擇與社會、企業(yè)接軌的集成開發(fā)工具——NetBean,而且NetBean也是Java等級考試的平臺,更可以為想考Java等級證書的學生提供方便。
3.3.2案例代碼的實踐
學生實踐的指導思想是由簡入難、由基礎到綜合、由模仿到創(chuàng)新。
知識點案例一般是實現(xiàn)一個小的功能,像流程控制、類的定義等,代碼量較少,所以引導學生應盡量自己獨立實現(xiàn)代碼。由于學生的學習能力不一樣,并不要求每一個學生要實現(xiàn)所有的的知識點案例。結合老師的講授,引導學生根據(jù)自己的能力來選擇難易不同的知識點案例。例如能力差的可以先選擇已經(jīng)由老師詳細講解并演示代碼的案例,通過自己的實踐理解案例內容后,再實踐只有講解的案例,由自己獨立實現(xiàn)代碼,之后再來實踐沒有講解的題目,分析案例的解決方法,鍛煉自己的編程能力和創(chuàng)新能力。當然編程能力強的學生可以直接選擇老師沒有講解的案例來實踐。
項目案例實踐的兩個方面——Java圖形用戶界面開發(fā)和基于Java的web開發(fā)代表著現(xiàn)在Java的主流應用。由于項目案例需要的時間比較長,所以案例題材應該由學生自己擬定任務和教師出題相結合,并且分組實踐。學生和教師出題相結合既可以避免教師出題下達的任務過多,學生產(chǎn)生抵觸心理,又能避免學生只選擇自己感興趣的內容,實踐方向出現(xiàn)偏差的問題。學生自己出題還可以鍛煉學生發(fā)現(xiàn)問題解決問題的能力。項目案例內容比較大,學生分組協(xié)作完成一個項目,既能節(jié)約實踐時間,又能鍛煉學生的團隊精神。
項目案例實踐的具體過程首先要合理的為學生分組,并選出組長。每組學生自主決定要實踐的案例,自己組內討論,寫出簡單但詳細的需求說明書,這步任務可由學生課外完成。教師檢查并指導學生完善說明書,再根據(jù)需求說明書中的任務,指導每組學生分派任務給組員。教師要制定合理的完成時間,并且監(jiān)督學生的實踐進程,組長要監(jiān)督每個組員都參與到項目中間,并定時總結項目進度。由于Java語言的實用性很強,而項目案例的實踐很能鍛煉學生對Java的應用,所以獨立學院的Java教學應該設置足夠的實踐課程。
4總結
階段性的案例教學方法,分階段采用知識點案例和項目案例相結合,這種逐步深入的案例教學,由點到面,由基礎到綜合,能消除學生編寫程序的恐懼心理;并將Java語言程序設計中抽象復雜的編程知識用完整的案例來展示,體現(xiàn)出語言的具體用處,能激發(fā)學生的學習興趣,提高學生對知識的綜合應用能力,達到獨立學院學生的培養(yǎng)目標,此法也可廣泛應用與其他各種程序設計語言的教學工作。