陳清雨
(廣州東華職業學院信息工程學院 廣東廣州 510540)
摘要:模塊化就是把人才培養方案,專業,課程,課堂都看成模塊,世界萬物都是模塊,學生也是模塊,大模塊分成小模塊,小模塊做好了,大模塊也就做好了,《Java 程序設計》是職業學院軟件技術專業必修課,學習目前世界上優秀的編程語言, 對提高學生就業能力有重要意義。然而,由于 Java 語言具有較高的抽象性、復雜性和嚴謹性,學生普遍感到學習難度較大;加之受傳統教學模式的制約,學生往往感覺抽象、枯燥,學習興趣不高,接受程度有限。為改變這一現狀,我們將項目任務驅動法引入教學,對課程體系進行優化,對實訓內容進行重新設計,以此激發學生學習熱情、改善教學效果、提高教學效率,從而更好地滿足職業院校培養實用型技能人才的要求。
關鍵詞:Java程序設計;項目任務驅動;項目實訓 。
Java 語言作為一種純面向對象的程序設計語言, 是目前世界上優秀的編程語言之一, Java平臺以其移動性、安全性和開放性受到歡迎,在企業中得到廣泛應用,尤其是近年來基于 Android 系統的Java 手機軟件發展十分迅速,在形成一個新興產業。Java 程序員的就業前景廣闊,可以從事 Java 桌面軟件開發、Java手機軟件開發、Jsp網站開發以及其他與 Java 語言編程相關的工作。 《Java 程序設計》作為我院軟件技術專業的專業必修課,力求使學生掌握 Java 面向對象程序設計能力,具備從事 Java 編程工作的基礎,提高軟件技術專業學生的就業能力。 對《Java 程序設計》教學進行深入改革、提高教學質量,有利于抓住當前 Java 技術廣泛應用,社會對 Java 程序設計人才需求量大的有利時機,提高軟件技術專業學生的就業率,提升軟件技術專業的影響力。
一、《Java 程序設計》課程的教學現狀
(一)課程地位和特點 計算機軟件技術專業的培養目標是:培養德、智、體全面發展的學生,能掌握計算機系統基礎知識和基本原理,熟悉計算機系統常用(軟硬件)工具,具有一定的硬件操作和較強的軟件開發能力。學生畢業后,既有大專層次的理論知識,又具有本專業較熟悉的實際操作技能適應在企事業單位計算機應用一線上直接參與管理或工作;適應在計算機軟件企業從事專業的軟件開發工作。 安排在第二學期,為培養學生“從 事軟件開發工作”而開設。教學目標是讓學生掌握 Java 面向對象程序設計能力,具備從事 Java 編程工作的基礎。前導課程是《C語言程序設計》,掌握基本的編程能力基礎;后續課程是《Java Web 開發技術》,學習實用的編程技術。 《Java 程序設計》是一門典型的程序設計類課程,由于程序設計本身具有的抽象性、 Java語言的復雜性和嚴謹性及傳統教學模式的影響,學生普遍感到學習難度大,學習興趣不高, 接受程度有限。
(二)難點和不足 由于程序設計工作本身具有的抽象性,對學生的邏輯思維能力要求較高;而 Java 語言的復雜性和嚴謹性,又使學生普遍感到 Java 語言學習難度大;加之傳統教學采用的“先講解后演示再練習”的方法,往往讓學生感覺到過于枯燥和抽象;而當前《Java 程序設計》的課程體系更使之難以適應高職院校培養高技能人才的要求,其主要問題有: 1. 課程體系設計不合理。當前《Java 程序設計》的授課模式以理論講授和演示為主,理論內容占主導地位,而實訓環節處于從屬地位。 由于當前的《Java 程序設計》高職課程體系很大程度上仍然是本科課程體系的簡化版,是從本科課程體系中刪除較難理論內容并增加實踐內容而形成的,并沒有完全擺脫本科模式的影響。然而,高職教育的培養目標是不同的。 高職教育更強調培養熟練的動手實踐能力。因此,高職課程和本科課程在課程體系的設計應該是完全不同的,不僅僅是理論與實踐的比例問題,而應該重新設計課程體系,使理論內容為實踐內容服務,才能真正實現以培養動手實踐能力為主導。 2. 實訓內容設計不合理。當前《Java 程序設計》的實訓內容大多屬于驗證性實訓,與真實開發項目存在很大差距,學生難以適應實戰項目實踐,對培養崗位職業能力的作用非常有限。課程現有實訓內容是根據理論內容設計的,是為了驗證理論內容而實踐,從而導致實訓內容強調緊扣理論內容,而忽略了真實的崗位情境,造成實訓情境過分理想化。這樣即使學生能掌握一些實踐技能,但是這些技能在真實的崗位情境中卻難以應用。因此,必須設計好實訓內容,突出 Java 語言的實用性、針對性,才能引導學生“在做中學”。 針對上述問題,我們引入項目任務驅動式教學法,對《Java 程序設計》課程教學進行改革。
二、《Java 程序設計》課程的項目任務驅動式教學改革
(一) 項目驅動是一種教學理論基礎上的教學法
在教學過程中,把具體的、學生感興趣的、有意義的具體任務作為線索,將知識點巧妙地隱含在每個任務之中;學生在預定情境下,經過思考并借助教師的引導解決問題,通過自主建構的方式獲得知識、 培養職業能力。 與傳統教學 “教師講、學生聽”,教師處于主動傳輸知識的地位,學生處于被動接受知識的 地位的模式相比,項目驅動法強調的是 “以學生為主體、以教師為主導、以任務為主線”。在 任務驅動法教學過程中,學生能充分發揮主觀能動性,圍繞任務要求開展實踐探索,教師不再是課堂的中心,單方面地向學生灌輸知識,而是在學生完成任務的過程中起到組織、引導、督促、 協助、評價的作用。采用這種教學方法,可以解決傳統教學存在的無法充分調動學生的積極性和創造性,項目驅動式教學改革符合高職教育發展方向,符合國家教育部《關于全面提高高等職業教育教學質量的若干意見》 提出的高職教育的教學過程要突出實踐性和職業性的要求。
(二)《Java 程序設計》課程的項目驅動式教學
1. 概述
為了更好地實施教學,切合高職教育人才培養的要求,培養適應行業需求的程序設計人才, 我們在《Java 程序設計》課程中引入任務驅動教學法,以行業流行的my Eclipse 作為開發平臺,對 《Java 程序設計》課程教學進行改革。我們緊扣 教學大綱,重新梳理《Java 程序設計》課程的知識體系,設計一系列具有實用性和趣味性的任務案例,并將所有知識點融入到各項目案例中。建立一套任務驅動式課程體系。我們以培養崗位職業能力為主線,用典型任務序化知識,并將知識融入任務情景之中。按“教師提出任務->學生分析任務->學生解決任務->學生提交任務完成報告->學生相互評價->教師總結與評價”的結構組 織每一個任務。任務驅動的整個流程按照實際需要進行安排,如果不能在一個教學時間單元中完成整個流程,則可以分段進行,比如把學生解決任務這個模塊放到課余時間進行,讓學生自主學習與挖掘新知識,加深對知識的理解。
2. 課程體系的優化設計
《Java 程序設計》課程的內容由三大部分構 成:Java 基本語法、Java 面向對象機制、應用編程。其中 Java 面向對象機制部分具有較強的理論性和抽象性,應用編程部分則更多偏向實踐性。 由于該課程的知識點覆蓋面廣,內容之間聯系緊密、互相滲透,我們根據教學目標重新梳理知識點之間的聯系,按照任務驅動的模式將知識體系劃分為 14 個模塊,每個模塊又包括三個小任務即啟發式模塊、知識點任務和實踐鞏固任務,14 個大的模塊如下所示: (1)Java 開發環境的搭建和使用。Java 特 點;Java 實現機制;Java 的體系結構;集成環境 myEclipse 。 (2)Java 基本語法。Java 應用程序結構; Java 程序編寫及運行過程。Java 語言標識符和關鍵字;Java 語言數據類型;Java 語言運算符與表 達式;分支控制結構;循環控制結構 (3)類和對象。類與對象概念與特征、屬性和方法;類與對象的關系;定義類的語法;創 建類的對象;使用對象的步驟;類的方法組成部 分;定義和使用類的方法。變量作用域;定義包和導入包的關鍵字;Javadoc 注釋。 (4)封裝和重載。封裝的作用;對屬性封裝;用構造方法實現對象成員的初始化。方法重載;Java 中的構造方法與實例方法區別;對構造方法進行重載。 (5)繼承和多態。繼承的概念;繼承關鍵 字;父類與子類之間的關系,super 關鍵字。多態 的概念;靜態多態,動態多態;多態的實現。 終類和抽象類。 (6)接口。接口的概念,接口編程的實 現; (7)數組。聲明和創建數組;數組的初始化;數組元素的使用。 (8)字符串。定義、初始化字符串;字符 串常見操作及方法;StringBuffer 類的定義和方 法。 (9)異常處理。異常的概念;異常處理結 構;拋出異常;聲明異常;自定義異常。 (10)GUI 編程。Java GUI 界面的基本原 理;常用的 AWT 和 Swing 組件;布局管理器;菜 單;Java 事件組成;委托事件處理機制;常用事件類; (11)數據庫編程。JDBC 的概念;JDBC 框 架結構;JDBC 驅動程序 JDBC 驅動程序編程的基本步驟。 (12)文件 I/O 編程。Java 的文件管理; Java 目錄管理;文件的創建;文件類的方法;順序文本文件;流的操作步驟;隨機文本文件;文件的追加。 (13)多線程編程。Thread 類;Calendar 類;SimpleDateFormat 類;線程的狀態;線程的優先級;線程的通信。 (14)網絡編程。TCP/IP 協議;Socket 類; ServerSocket 類;UDP 協議;發送數據包;接收數據包。 本文提出的課程體系將教學重點放在實踐 較強的應用編程部分,涵蓋了GUI 編程、數據庫編程、文件 I/O 編程、多線程編程、網絡編程等 技術,而對理論性、抽象性較強的 Java 面向對象機制,不再深入分析其內在機理,只要求學生掌握基本的概念、原理和語法,為后面的應用編程提供基礎。
3. 實訓內容的優化設計
Java 程序設計具有很強的實踐性,但其理論知識卻很抽象,學生僅理解理論知識點是遠遠不 夠的。傳統的“先講解理論知識點,再展示演示案例幫助學生理解,后再進行實踐練習”的做法是以教師為主導,學生被動學習的灌輸式教學法,這樣導致學生學習興趣不高、接受程度有限,導致演示案例和實踐練習的效果大打折扣。 對此我們重新設計教學流程,摒棄這種以教師為主導的做法,突出學生在學習中的中心地位。首先在每個單元中精心設計一個有趣、具有啟發性的演示案例,先讓學生看到程序運行效果,激發其學習興趣和積極性;然后從案例中引出該知識點的任務,讓學生分組討論該任務,分析該任 如何完成;接著限定任務的完成時間,讓學生在該時間內完成任務并提交任務完成報告,在任務完成后學生們要進行小組互評;后教師再根據學生完成任 務的情況進行總結和評價,包括對學生任務完成 程度的評價,對任務背后的知識點的解釋,對學生還沒熟悉的重難點進行總結。至此,學生通過完成任務,不但對相關知識點有了一定感性認識,而且通過任務評價和總結,能夠更好地理解和消化理論,提升為自己的理性認識;后根據需要再設計 1-2 個案例作為實訓練習,由淺入深、由簡單到復雜地鞏固知識點和技能。很明顯,這是一種 “從實踐到理論,再從理論到實踐”的做法,符合人類認識客觀世界的規律。由于該任務貼近學生學習的真實情境,學生感到親切、容易理解其次,由啟發式案例提出本節要完成的任務。這里任務比啟發式案例要求稍高,有利于在學生現有的基礎上挖掘自己的潛力,更深的理解知識。學生在接到任務后當堂討論并分工,這樣有利于培養他們的團隊合作精神,學生完成任務的過程可以放在課后進行。在任務完成后需保留源代碼,對程序運行結果保留截圖并用 ppt 演示任務完成流程和填寫任務完成情況表;回到課堂上后學生將任務結果進行展示并對其他小組評分,教師進行評價并補充講解重難點,包括程序結構、定義變量、數據類型、運算符和表達 式、分支控制結構、循環控制結構等。教師對知識點和關鍵技術步驟進行總結,對實踐練習中出 現的問題進行分析,可以幫助學生構建一個 晰、完整的知識結構后,進行實踐鞏固練習。,以任務為驅動,教師只是起到引導的作 用,這樣學生掌握的知識才是真正屬于自己的知識。
三、結語
如上所述,項目任務驅動式教學的關鍵是合理設計項目任務,將知識點巧妙地隱藏到任務中,讓任務本身具有趣味性并盡可能地貼近真實情境,使學生在完成任務的過程中不僅獲取相關知識,而且發展實踐能力。理論知識點不再是案例的主導, 而是作為演示案例的抽象推廣。實踐證明,對于《Java 程序設計》這門理論性和實踐性都很強的課程,通過引入項目任務驅動教學法,進行項目實訓,使理論和實踐互相滲透,確實能夠,激發學生的學習熱情,改善教學效果,提高學生的動手實踐能力,能更好地滿足高職院校培養實用型技能人才的要求。
參考文獻:
《瘋狂JAVA講義》 電子工業出版社,李剛編著。
《JAVA開發實戰經典》清華大學出版社,李興華編著。