摘 要: Java語言憑借其平臺無關性、開放性及安全性等特點有著較為廣闊的應用前景。通過分析Java程序設計課程在教學中存在的一系列問題,提出了體驗項目貫穿的教學方法,闡述了如何進行項目的選擇與拆分、Java技術體系和學習地圖的搭建、立體化教學資源的構建,以提高課程的教學效果,滿足社會需要。
關鍵詞: 項目驅動; Java程序設計; 項目拆分; 學習地圖; 立體化教學資源
中圖分類號:G642 文獻標志碼:A 文章編號:1006-8228(2014)05-64-02
Abstract: Having the characteristics of independence, openness and security, the language of Java has shown application prospects. The present situation of "Java program design" course is analyzed. In order to improve teaching effect and meet the needs of community, the method of experience project throughout teaching is proposed. The selection and splitting of the project, establishing Java technology system structure, learning map and building teaching resource are elaborated.
Key words: project driving; Java program design; project split; learning map; three-dimensional teaching resource
0 引言
Java是一種廣泛使用的網絡編程語言,它具有簡單、面向對象、平臺無關、安全和并發等特點。Java提供了豐富的類庫,程序設計者可以方便地建立自己的系統[1]。Java已經成為編程語言的驕子,越來越多的大學在講授數據結構、程序設計和算法分析等課程時,選擇以Java語言為載體。2009年4月Java的東家Sun公司被甲骨文公司收購,但這并未阻止Java發展的步伐。Java在Web、移動設備以及云計算方面前景依舊非常廣闊。隨著云計算以及移動領域的擴張,更多的企業考慮將其應用部署在Java平臺上,無論是本地主機還是公共云,Java都是目前最合適的選擇。Java技術的開放性、安全性和龐大的社會已有資源,以及其跨平臺性,即“一次編寫,隨處運行”的特點,使Java技術成為智能手機軟件平臺的實施標準。采用Java技術后,編寫的應用程序和提供服務的人就不必關心接收其服務的手機采用的是什么操作系統和芯片;同樣,生產手機的廠商也不必顧慮將來誰來提供增值服務。
1 Java程序設計教學中存在的問題
Java語言概念多、實踐性強、涉及面廣,采取的是面向對象的設計思路編程。傳統的程序語言教學通常是以知識點的層次遞進為體系[2-3]。Java程序設計就是按照Java程序基本結構、標識符、運算符、語句、類、繼承、接口、線程、文件、swing、網絡編程和數據庫等知識點層次以遞進方式來展開教學的。在學習每個知識點時,采用的是“理論講解+程序演示”的模式,即講解一個知識點,然后演示一個針對相關知識點的例子,所舉例題都屬于驗證型的演示,這種方式有利于學生掌握相關知識點,然而學生并不理解它們的實際應用場景。例如,在講接口的概念時,教師通常會編寫一個關于接口使用的例題,通過例題的講解與演示,學生基本能掌握接口的定義與使用的語法,但學生并不知道到底為什么要引入接口,因為驗證型的例題相對來說比較短,甚至去掉接口直接用抽象類完全可以實現相應功能。學生對于應用場景的困惑,會導致在實際程序的編寫過程中不知道什么時候應該用接口。因此,這種純粹按照Java知識體系推進知識點的學習,缺少主線貫穿的教學方式,暴露出的問題也越來越多:①學生長期處于被動地接受狀態,只重視各知識點的理解和掌握,沒有應用場景或其他主線來貫穿這些知識點,學習的積極性會大大降低,所學知識點也不成體系,很容易忘記;②學生綜合利用所學知識解決實際問題的能力差,滿足于知識點的學習和例題的練習上,沒有參與到實際項目的開發,無法直接感受所學知識在實際工作中的作用和地位;③考核方式單一,采用單一卷面考核方式,考察重點偏向于了解學生掌握知識的多少,導致教師的教學重點偏向課本的知識點而忽略學生實際動手編程能力的培養。
2 項目驅動在Java程序設計中的應用
2.1 項目的選擇與拆解
項目驅動教學法是指在教學過程中,以學生為中心,把一個項目拆解成若干個子項目,然后提煉出各子項目所涉及到的知識點[4-5]。通過項目為主線,把相關知識點串聯起來,讓學生從體驗項目中找到學習的興趣,明確學習目標,掌握對應知識點的應用場景,提高利用所學知識解決實際問題的能力,轉變學生被動接受的角色,做到理論聯系實際,學會融會貫通[6]。
項目的選擇尤為重要,Java程序設計這門課程主要介紹Java基礎,包括:JDK文檔的使用、類的設計模式,定制自己需要的類,異常、IO操作、線程、數據集合,Swing、Java2D和常用實用類等。因此所選擇的項目不應超出Java基礎知識的范圍。
讓學生體驗項目功能的同時,列出實現項目所需的技術,以及所需技術的學習資源,這些資源可分為兩類,一類是在學歷課程中覆蓋,另一類是通過第二課堂獲取。 學歷課程中覆蓋的多少根據教學計劃中安排的課時數而定,第二課堂中資源可包括教師錄制的一些視頻、ppt和切割的項目包等資源,以此來彌補課時的不足,這樣可以既有自己的辦學特色,又培養了應用型人才,提高學生的就業質量。
在教學過程中,可以通過幾個經典類型的項目來貫穿。第一類項目為桌面游戲類,如掃雷游戲,掃雷游戲可以拆分成按難度等級生成界面,英雄榜,背景音樂播放等模塊,所涉及到的相關技術包括面向對象設計、Java swing、IO操作和常用類的使用等,可以在相關知識點的學習之后來完成相應模塊,隨著新知識的學習,不斷進行完善,最后形成相對完整的項目。第二類項目為信息管理系統,如學生信息管理系統,這個項目涉及到的技術包括JDBC和Java swing的一些高級組件及事件驅動,如學習了Java swing中的相應組件和布局之后就能完成界面的搭建,學習了事件驅動之后,再將相應組件上加上事件處理。學習JDBC之后,要在項目中加上數據庫的相應操作,這樣當所有知識點學完之后,學生信息管理項目也基本完成。第三類項目選擇如Java QQ之類的項目,這個項目涉及到集合類、多線程、IO流、網絡編程等相關知識。動手的過程,同樣是按照知識點進行切割,不斷填充整個項目。在項目貫穿的過程中,要注意對項目進行按功能模塊進行切割,這樣不僅便于學生學習各個知識點,而且讓學生明白如何運用所學知識編程解決實際問題。
2.2 搭建完整的Java技術體系與學習地圖
Java的學習,從Java開發環境開始,到Java語法,再到Java的核心API。主要分為四部分。
⑴ Java開發入門:Java開發環境的安裝與使用,包括JDK命令、Eclipse IDE下Java程序開發和部署。
⑵ Java語法基礎:基于JDK和Eclipse環境,Java核心功能開發,掌握Java面向對象的語法構成,包括類、抽象類、接口、靜態類、匿名類、內部類、異常類的編寫。
⑶ Java 核心API:Java核心編程、Java圖形編程和Java網絡編程。
⑷ Java高級特性包括反射、泛型,以及Java自動裝箱和拆箱、枚舉類靜態導入等高級特性。
在Java的學習過程中,完整的Java技術體系與學習地圖的重要性越來越突顯,理解Java技術體系與學習地圖中的重點、難點,做到有的放矢。一方面,教師將相關技術知識點融入學歷教育、第二課堂與在線教育平臺中,按學生不同能力層次開設,因材施教;另一方面,學生可以根據自己的能力和興趣,獲取更多的專業知識。
3 構建“立體化”教育資源
由于相關知識點是分別融入到學歷教育、第二課堂和在線教育平臺中,因此相關資源的開放顯得尤為重要,教師應為學生建立相應課程的教學平臺,提供“立體化”的教育資源。平臺中應包括學歷教育中所涉及知識點的大綱、課程ppt、實驗案例、實驗指導手冊及體驗項目工程包等,學生可以利用課余時間鞏固課堂內的知識及完善課堂中的項目內容。另外對于課堂外的相關教學資源也應適當提供給學生,有能力和興趣的學生可以充分利用所提供的資源,如一些授課視頻及練習經典習題等,獲得一些學歷外的知識和一些拔高技能,做到因材施教,培養學生的動手編程能力,提高學生的就業機會。
4 結束語
本文針對Java程序設計課程在教學中存在的一系列問題,提出了以項目為主線貫穿知識點進行教學,并把知識點按實際情況分解到課堂教育和第二課堂中。實踐證明,這種因材施教的項目貫穿的教學方式,可以提高課堂教學的趣味性,減少學生在學習知識點時的茫然和困惑,提高學生對各知識點的綜合能力,進而提高其編程和解決實際問題的能力。
參考文獻:
[1] 耿祥義,張躍平.Java程序設計精編教程[M].清華大學出版社,2010.
[2] 馮林,鄭薇薇.“任務驅動”與“項目驅動”相結合的創新教育研究[J].
黑龍江教育,2010.4:57-59
[3] 徐靜.卓越工程師培養計劃下“Java程序設計”課程改革[J].計算機時
代,2013.9:65-66
[4] 張耀明.“項目驅動+案例教學”模式在軟件工程教學中的應用[J].中
國職業技術教育,2012.8:57-60
[5] 柯勝男,黃明和,雷剛.基于“項目驅動”的教學研究與探索 [J].計算機
教育,2007.4:25-27
[6] 姜大志,孫浩軍.基于CDIO的主動式項目驅動學習方法研究[J].高等
工程教育研究,2012.4:159-164