[摘 要] Java網絡程序設計存在教學內容涉及面廣,新技術多,實驗時間有限等問題。該文從課程教學實際出發,分別從理論課教學、實驗課教學和課程設計方面對教學改進作了一定的嘗試,并對教學方法和教學手段的使用進行了一些探索。這些教學研究與探索,對Java網絡程序設計課程教學有一定的借鑒作用。

[關鍵詞] 程序設計 案例教學 任務驅動 項目導向

本論文為陜西教育學院教改項目“網絡程序設計課程實踐體系研究(2007JGB01)”所支持。

引言

Java語言是20 世紀90 年代初由sun 公司推出的一種純面向對象的編程語言,隨著互聯網和移動設施的發展,由于它的 可移植性跨平臺性等優點,在基于網絡編程開發中應用廣泛,其得到了迅猛的發展。“Java程序設計”是高職高專院校計算機相關專業開設相當普遍的一門學科基礎課,各高校都非常重視這門課的教學,作為高校教師必須深入研究這門課的教學規律,提高教學質量。該門課程的教學目標不僅是使學生通過程序設計語言的學習,全面地掌握面向對象程序設計的基本知識與基本操作技能,為學生學習后繼課程打下扎實的基礎; 同時,它還是培養學生思維能力和實踐能力的重要環節。因此,在該課程的教學中,必須更新觀念,開拓教改新路,重視學生思維和實踐能力的培養。

我院從2003年起面向計算機應用技術和計算機網絡技術專業的學生開設了Java程序設計課程,本人一直擔任該課程教學工作,圍繞著課程內容與結構、教學方法與手段、課程考核等進行全方位的教學改革研究與探索,本文將從Java課程的理論課教學、上機實驗課教學以及實訓課教學等方面展開闡述。

Java語言教學存在的問題

在Java 程序設計這門課程日常的教學中,通過無數次與學生的交流、溝通,以及與同事之間的相互交流中,作者發現該門課程在實際教學中主要存在以下幾個方面的問題:

1.傳統教學模式使學生覺得這門課既“苦”又“枯”

傳統的教學模式是,“提出概念—解釋概念—舉例說明”。課程一開始要引進程序設計的思想和大量的新概念,再加上教學方式為“填鴨式”,學生的注意力都被引導在具體的語法細節上,卻忽略了解決問題的總體思想,使學生感覺學習這門課既“苦”又“枯”。“苦”的是要學的東西多,學習是被動接受,不會學以致用;“枯”的是學生剛開始時對學這門課感興趣,但學著學著就沒有興趣了。程序設計本身就比較枯燥, 對于理解能力和自控力相對較弱專科類學生更是如此。

2.教學方法尚有待改進,學生學習興趣沒有得到良好激發

各高校計算機及其相關專業通常在C 程序課程后開設Java課程,教師在講授過程中仍然使用面向過程的語言的教學方法,學生也習慣于面向過程語言的學習方法,將教學過程和學習重點放在了語法和算法上,忽略了Java 面向對象的編程思路的理解。再加上大部分教師的教學方式還是以教師講授為主,學生被動接受,課堂氣氛沉悶、極其缺乏互動性。教師的講授大多還是按照現有教材結構,常規的順序式、灌輸式教學,對課堂上引入的程序案例不能精心篩選或者適當修改,使得其缺乏實用性和趣味性,不能吸引學生學習的“注意力”。這種教學方法不利于培養學生解決綜合問題與實際應用問題的能力,更不利于啟發學生的思維與激發學生的學習興趣。常常是很多學生上課非常認真,基本的原理和理論也能聽懂,但是一遇到實際問題就解決不了。

3.實踐環節較為薄弱,實驗教學重驗證、輕設計,實驗效果不佳

多數教師一般嚴格按照教學大綱和教材組織教學,學生的學習只限于書本上的練習。實驗教學的內容多以執行和驗證程序為主,以消化課堂理論講授內容為目的。大部分學生上機實驗只是將實驗教程上的實例程序輸入計算機,遇到問題查閱資料,很少靠自己思考解決。整個實驗過程學生就如在練習打字,一旦題目稍有變化便不知如何設計,遇到實際問題更不知如何解決。而且學生沒有參與過完整的項目開發,不能把所學的知識貫穿在一起,不能建立起整體的編程思想,達不到軟件業對軟件人才的要求。

4.考核方式單一,學生受應試教育思想的影響,學習目的狹隘

過去考核方式基本上是以學期結束的筆試為主,考核是知識而不是能力,而且是一紙定結果。很多學生學習Java 僅僅傾向于應試而淡化實際應用與開發,這也導致學生在學習過程中只是一味模仿課本上的實例,知識點零散,對系統開發認識模糊,不能形成軟件開發的整體概念。

5.課程結束后,學生只會做一些孤立的小程序

傳統的語言教學往往比較注重Java 語言基本語法的講解,所舉編程實例也只是簡單地用來驗證語法規則,只是“就事論事”的進行教學,致使大多數學生在學習過程中“知其然而不知其所以然”,對Java 程序設計的掌握也僅僅停留在語言使用層面上,不能吃透、用活所學知識,造成學生學完這門課程后僅會孤立地做一些簡單的小程序、小例題,而在開發應用軟件時設計能力差,無法實現培養學生編程能力的教學目的。

課程教學改革的實施過程

“Java程序設計”課程的教學環節主要包括:理論課教學、上機課教學、實訓課教學三個部分。通過多年的教學實踐,采用案例教學方法進行理論課教學,采用任務驅動進行上機課教學,采用項目導向進行實訓課教學,可以較為有效地提高教學質量。

1.理論課教學采用案例教學與“3W1H”教學法

在理論課教學環節中,教師應根據事先精心設計的案例,合理運用“3W1H”教學法等多種教學技巧,準確地向學生傳授基本知識與理論。

(1) “3W1H”教學法

理論課授課要始終貫穿“3W1H”教學法思想。“3W1H”,即What—要求教師簡明扼要地講解清楚所要講述的內容及要點,指出講課的重點;Why—要求教師引出為什么要講述該內容,該內容在軟件開發中的作用,引起學生的好奇心及對聽課的興趣;Where—要求教師能夠結合切身體會和經驗指出所講述的內容用在軟件開發的什么地方,突出所講內容的實用性;How—要求教師能夠指出在實際的軟件開發中如何使用所講述的內容,突出所講內容在實際軟件開發中的使用方法和使用應該注意些什么。How的講解至關重要。這種教學方法的目的在于不僅僅使學生具有應用軟件的使用技能,也具備堅實的理論基礎,逐步提升對將來的工作環境適應能力和自信心,且對學習充滿興趣。

例如在Java程序設計中“異常”的講解思路可分解為:

What:解釋什么是異常,why:java中為什么要引入異常,Where:在編程中異常都用在什么地方,How: 在異常處理中怎樣使用異常。

(2) 案例教學法

在《Java 程序設計》這門課的教學中,要明確課程改革的思路,要以解決實際問題的程序設計思路作為教學的切入點,以教材的內容為主線,采用案例作為教學引導線,在教學中將晦澀難懂的概念、原理融合到案例中,從實際的例子入手,然后再上升到理論高度,適當講解理論知識相應的知識點。這種模式不僅有助于學生掌握基本概念、基本理論,同時也能夠培養學生解決實際問題的能力。能夠自己動手解決實際問題是學習的最直接動力,是激發學習興趣的根源所在。

通過案例教學時,語法、知識點的講解全部可用程序說話。讓學生先看例子,通過動起來的例子看到程序的運行結果,至于為什么這樣,如何做到這樣正是教師要講的新知識點。例子講完之后布置3 個操作練習。第一個練習是“仿”,即完成一道和例子極其相似的程序,讓學生在模仿中鞏固和加深對新講授內容的理解,同時教師巡視單獨答疑,幫助學生澄清教師講解時沒有理解的內容,最后教師就共性問題予以強調。第二個練習是“改”,即對第一個例子加工,將教師在講解時已提及而例題中未涉及到的問題交給學生,激發學生自主學習的熱情。在此過程中,教師對關鍵性問題給出指導思想。第三個練習是“提高”,即將具有一定算法難度但語法適用于當前階段的問題拋給學生,培養學生的算法設計能力。在此階段教師主要起啟發、引導作用,啟發學生的創造性思維。

在Java 程序設計課堂教學中采用案例教學方法可對每一個單一知識點進行教學。選取的案例都盡可能小而精,針對特定問題。通過小型案例講解獨立知識點,以案例模仿的形式促進學生動手能力。學生通過案例研究,培養一種分析問題的能力和獨立處理、遷移性的應用能力。學習過程貫穿于案例分析的過程之中,培養學生學會抓住或發現問題,然后結合所學知識尋找解決問題的途徑、手段。這樣不僅能幫助學生鞏固已學的知識,同時也能幫助學生提高自學能力和設計能力,強化了案例教學的效果。

在計算機教學中運用案例教學法,能夠充分調動學生學習的積極性,提高學生探索、合作、創新能力,有利于學生理論知識的掌握和實踐能力的提高。在實際的教學過程中,每位教師都應根據教學大綱、教學內容和學生實際情況的不同合理運用案例教學等方法,只有這樣才能真正提高課堂教學效果,提高教學質量,培養出符合時代發展要求的高素質應用型人才。

2.實驗教學采用任務驅動,提高學生動手實踐能力

Java程序設計是一門實踐性極強的學科,實踐環節的教學尤其重要,其目的就是讓學生在自主探索的過程中完成對新知識的練習和鞏固。有一句關于實踐的諺語是這么說的:“我聽到的會忘掉,我看到的能記住,我做過的才真正明白。”講的就是理論作為實踐的支撐不是死記硬背背會的。讓學生親自動手實踐,編輯調試程序,要比聽老師講、看老師做記憶深刻,同時還能明確知道自己到底哪個地方不會,特別是編譯中出現的錯誤往往讓學生印象更深刻。學生通過自己動手實驗,進一步理解概念和理論知識, 教師引導學生從知道“怎么去做”到學會“怎么做”,達到理論與實踐的完美結合。

實驗內容除了教材中的例子, 還包括我們精心設計的實驗題目。而實驗類型大致可以劃分為驗證性實驗、鞏固性實驗、分析性實驗與綜合設計性實驗等幾種形式。其中驗證性實驗內容主要來自教材中的例子,這種類型的實驗目的是為了驗證或演示基礎知識點的特點與用法,以便理解這些基礎理論。驗證性實驗是其他實驗類型的基石。鞏固性實驗的目的是對基礎知識進一步理解、鞏固、深化。在驗證性實驗的基礎上,鞏固性實驗的實驗內容是教師為了讓學生加深對基礎知識的理解而專門設置的,這些實驗內容的選擇與設置應具有代表性,難度中等,符合教學要求。學習程序設計必須具備一定的程序分析能力與問題分析能力, 因此分析性實驗設置的目的就是為了提高學生的分析能力。這一類型的實驗中,教師根據要掌握的知識點設置一些程序題,讓學生分析程序運行的結果并上機驗證,通過比較自己分析與上機驗證的結果,既可以知道自己分析的正誤又可以更深入地理解知識。而綜合設計性實驗以培養學生的綜合運用能力。我們把它放在課程實訓課中完成。無論哪種類型的實驗, 實驗課題設置的好壞將影響學習效果,因此,針對每一種實驗類型我們應該認真地設計相應的實驗課題。

具體在實驗教學時,要根據具體的教學內容與學生的實際情況,結合現實IT案例,提出實驗任務問題,按照“行為導向”的原則,形成以“學生為主體,教師為主導,從中學, 做中練的一體化”的“教、學、做”一體化實驗教學模式,以“解決問題、完成任務”為行動使命, 以“培養能力,掌握知識,培養職業素養”為培養目標,實施“任務驅動、啟發式教學、討論教學、現場教學”等教學方法與手段。

3. 課程實訓采用項目導向, 提高學生綜合實踐能力

當今社會對計算機人才的技術能力、實踐能力與創新能力要求越來越高, 綜合素質較高的人才越來越受歡迎。 因此, 我們還考慮設置了該類型的實驗,如課程設計和課程實訓,是將所學的基礎知識結合起來用以解決較復雜的問題, 在選擇與設置綜合性課題時,應綜合考慮學生目前掌握的知識情況, 需要涉及哪些知識點,難度如何,將這些知識點結合起來解決什么問題,同時還應考慮學生水平的差異、能力的不同,因此具有一定的思維性、綜合性與應用性。

課程設計或實訓是對本課程所學內容的綜合運用和鞏固提高,它在整個Java 教學過程中起到一個承上啟下的關鍵性作用,一方面能夠鞏固前面所學的基礎知識;另一方面能讓學生了解Java 開發的一些基本流程,為日后從事Java 領域的開發作鋪墊。在課程設計階段,學生已經有了一定的Java 編程基礎,欠缺的主要是實際的開發經驗和全面系統的、深入的掌握Java 技術。解決的方法就是通過企業真實項目練習,對所學知識進行深化,然后通過項目來獲取實際開發的經驗,盡快達到企業的實際要求,讓學生在具體的項目中進行學習,縮短學生與企業之間的距離。根據學生的實際能力選擇好開發項目是關鍵,即不能讓學生感到太容易,也不能讓學生感到無從下手。通過學生的獨立實踐,使學生熟悉軟件開發的全過程,培養團隊意識。大大提高了學生理論聯系實際和綜合分析問題的能力。

有過項目實踐經驗的人都認為,通過做項目能學到的東西遠比聽課學到的東西多,因為這是個實踐和自主學習的過程。在Java語言程序設計課教學計劃需講授的內容講授完畢后安排一個為期兩周的總結性實訓教學課,借助于企業辦學的優勢,將公司中的實際項目抽取簡化,交給學生以小型項目的形式來做,這是對學生一個學期的學習效果的綜合考察。在完成這個小型項目的過程中可能會涉及到一些課堂上聞所未聞的知識,利用這個機會鍛煉學生搜集資料、整理資料獲取知識的自主學習能力。在此階段,教師的職責不再是教學生如何解決一個具體問題,而是告訴學生到哪里能查找到幫助解決問題的資料。

“項目導向”的實訓具體實施時,可將學生分成若干課題研發小組,模擬某企業中項目研發團隊。其中被選為組長的同學,可以“情景扮演”成“項目經理”,由他給組內其他成員分配相應的工作任務,按照軟件工程的要求完成該項目開發的全部流程。綜合實訓課程的項目設計注重實用性、真實性。將企業中的實際項目抽取簡化,分解成若干模塊交給學生以小型項目的形式來做。在完成這個小型項目的過程中可能會涉及到一些課堂上沒有學習到的知識,利用這個機會鍛煉學生搜集資料、整理資料獲取知識的自主學習能力。

對綜合實訓的總結可以采取分小組答辯的方式,即每個課題小組把此次項目的設計思想、所用到的知識點、實現的技術難點、解決方案、完成效果、尚存在的問題等以PPT 的形式向全體同學、老師做講解、演示。其他小組的同學和老師可以對其提問,一起討論。這樣的總結形式有效提高了學生自主學習能力、團隊合作的精神,為將來步入社會做好了準備;也使得其他組的成員拓展了知識面,汲取到別人的長處,增強學習交流,從而打造了一個“積極”、“熱烈”、“和諧”的學習氛圍。

結束語

Java 教學一定要圍繞提高學生實踐應用能力展開,注重面向對象編程思想的培養,通過對《JAVA程序設計》課程各教學環節的教學改革嘗試,學生的學習興趣明顯增強,動手能力也有了較大的進步,對本門課程的認可程度大幅度提高。當然,教學改革的方法并不是一成不變的,隨著教改的深入,時間的推移,還會有新的問題出現,我們對教學改革的探索還將繼續。

參考文獻:

[1]劉新橋等.JAVA程序設計課程教學改革的探索與實踐[J].長沙航空職業技術學院學報,2009,6,第9卷第2期.

[2]劉夢娟等.《互聯網絡程序設計》特色課程建設的實踐探索[J].福建電腦,2011,1.

[3]俞輝,計算機專業提高Java 語言教學效果的探索與實踐[J].計算機教育,2008(14).

[4]賀建英.如何提高高校學生Java 語言的實踐能力[J].電腦知識與技術,2008(1).