潘鳳
摘要:隨著互聯網的不斷發展,Java語言被廣泛應用于各行各業中,互聯網行業對Java開發人才的需求不斷增長。高職院校應積極完善Java課程體系,研究探討適合高職院校學生發展以及互聯網行業發展的Java課程內容和教學方法,為互聯網行業輸送合格的Java技術人才。
關鍵詞:Java;課堂實踐;項目;開發工具
中圖分類號:G642 ? ? ?文獻標識碼:A
文章編號:1009-3044(2021)31-0202-03
1 背景
世界互聯網誕生50多年,中國全功能接入互聯網也有近30年了。互聯網的不斷發展,促使了許多編程語言的誕生,這些語言也進一步促進互聯網的澎湃發展。Java語言作為編程語言中的佼佼者,自1995年誕生,至今已有20多年的歷史,迭代了很多版本,被廣泛應用于電子商務、電子政務、教育、醫療、金融等各行各業。隨之而來的便是互聯網行業對Java人才的需求不斷增長,根據第三方機構發布的《2020互聯網人才招聘白皮書》,互聯網職位中,Java工程師需求量最大。作為Java技術人才重要的輸送平臺,高職院校應積極探索Java課程的教學內容、教學模式以及教學方法等,高質量、高效率地培養出滿足互聯網行業要求的Java技術人才。
2 教學內容
高職院校Java課程體系通常包括Java語言基礎、Java Web,其中Java基礎為Java課程的重點,Java Web中的Java框架為Java課程的難點。
2.1 Java語言基礎
Java語言是一種純面向對象的程序設計語言[1]。Java語言的入門教程通常使用《Java語言程序設計》,包括了Java語言基礎知識、類與對象的基本概念、類的方法、類的重用、接口與多態、輸入輸出、多線程、圖形用戶界面、JDBC與數據庫訪問等知識點。首先,Java是面向對象語言,而前導課程C語言是面向過程,兩者的區別較大,所以教學內容要突出“面向對象”的概念,讓學生充分了解“面向對象”和“面向過程”的區別、“面向對象”語言的優勢。對于剛接觸Java的學生來說,這些概念是難以理解的,所以相關的授課內容不能僅僅局限于枯燥的概念,而應該用學生熟悉的生活中知識來解釋相關概念,讓學生通過已有的常識去體會抽象的概念。比如講授“面向對象”和“面向過程”兩者的區別,可以通過經典的“圍棋”案例來解釋。其次,教學內容中應該突出Java語言的三大基本特性:封裝、繼承、多態。同樣,與三大基本特性相關的授課內容不能局限于概念性的解釋,而應該通過生活中的案例去表述相關概念。比如可以以“動物”這個對象為例解釋“封裝”“繼承”“多態”的概念,顏色、喊叫、進食等行為和屬性就可以定義在“動物”這個對象中,這就是“封裝”的過程;“哺乳動物”繼承于“動物”,“兩棲動物”繼承于“動物”,這就是“繼承”的概念;動物的叫聲不一樣,這就可以理解為“多態”。概念結合了生活常識,這樣學生就能更加深刻地理解這些概念,了解Java這門語言。
Java語言基礎是Java課程體系的基礎課,對于初學者來說非常重要。這就好比Java課程體系為一棟大樓,Java語言基礎就是大樓的根基,如果基礎打不好,那么后續的課程學習起來自然會非常吃力,甚至會出現學不下去的現象。所以,教師一定重視Java基礎課程,設計好Java語言基礎課程的教學內容,同時引導學生重視這門課程,為Java后續課程的學習打好堅實的基礎。
2.2 Java Web
Java Web課程主要包括Java Web基礎和Java Web框架兩部分。其中,Java Web基礎是重點,Java Web框架是難點,這兩部分內容相對于Java語言基礎來說,知識點數量和難度都有所提升。
Java Web基礎主要涉及HTML和CSS基礎、JavaScript腳本語言、Java Web應用的開發環境、JSP頁面、Servlet技術等等。HTML和CSS基礎主要包括HTML結構、表格、表單、超鏈接、多媒體、HTML5特性、CSS基本語法、選擇器、CSS3 特性等,這些內容通常在網頁設計相關的基礎課程中會有講解。如果學生未學習過網頁設計相關的課程,那么教師需要對HTML和CSS相關的知識進行詳細的講解,因為這部分知識點是編寫任何Web應用都需要用到的;如果學生已學過相關的課程,那么在講授該部分內容時,可以帶著學生進行知識回顧和復習,同時減少相應的課時數。JavaScript主要包括了解JavaScript、JavaScript語言基礎、流程控制語句、 函數、事件處理、 常用對象、 DOM技術等內容,JavaScript語言相對來說是比較簡單的,而且和Java基礎語法有很多的相似之處,學生有了Java基本語法的基礎后,很快就可以上手。教師在教授該內容時,也應該盡量的簡單化,對于一些基礎常用的知識點進行講解,而對于較為深奧的知識點可以留給學生自己學習研究。Java Web應用的開發環境主要是通過第三方的容器來搭建,比較常見的容器有WebLogic、WebSphere、JBOSS、Tomcat等等。其中,Tomcat性能穩定并且免費,是目前比較流行的Java Web應用容器,應用于很多的企業級項目。高職院校教師在教授Java Web應用的開發環境搭建時,最好是以Tomcat為例,從Tomcat簡介到Tomcat下載安裝再到Tomcat的參數配置進行逐一介紹。對于其他的容器,教師在課堂上可以一帶而過,讓學生了解即可。JSP和Servlet從本質上說是一個技術,只是在表現及作用上不一樣。在Java Web應用運行時,Servlet會被容器轉為JSP。教師在教授JSP和Servlet相關的知識點時,應該側重講解JSP和Servlet各種的知識點,同時對于底層的原理也要讓學生了解,這樣才能讓學生更充分、更透徹地學習好這部分知識點。Java Web基礎的知識點比較散,比較碎,但是又是互相關聯的,這就要求我們教師在講授課程的時候,要通過案例去串聯這些知識點,從而讓學生在學習到知識點的同時了解到Java Web的基礎知識體系。
Java Web框架是Java課程體系中的難點,主要有幾個原因:一是Java Web框架有很多,比如:Struts2、Spring、Hibernate、Spring MVC、Mybatis、Spring boot等等,而且框架更新迭代速度非??欤瑢W習成本比較高;二是Java Web框架是對Java基礎代碼的高度封裝,運用了很多設計模式,對于學生來說比較抽象、難以理解。高職院校教師在教授Java Web框架時,對于教學內容要進行合適的篩選,比如可以選擇經典的Struts2 + Spring + Hibernate框架,雖然該框架在新的項目中使用比較少,但是很多老項目中還是使用這個框架,學習也是有必要的,同時互聯網上相關的資源也比較豐富,易于學生學習。也可以選擇目前比較主流的Spring MVC + Spring + Mybatis框架(簡稱SSM框架),目前很多企業級應用都用的是SSM框架。所以,學習好這個框架對于想要從事Java Web開發工作的學生有很大的裨益。一方面,掌握企業需要的知識點,可以讓他們在面試的時候更具競爭力;另一方面,可以讓他們入職單位后更快地進入工作狀態,獨自承擔項目任務。對于Spring Boot框架,因為其設計目的是用來簡化Java Web 應用的搭建以及開發,所以不建議把它納入到該課程的內容中。該框架使用了特有的方式來對項目配置,從而開發人員不需要編寫XML等復雜的配置文件。這對企業開發來說是好事,可以提高開發效率。但是對于學習階段的學生來說弊大于利,雖然學生可以很快地搭建好一個Java Web項目,但是缺少自己編寫配置文件的過程,自然而然對于項目中的Spring MVC、Mybatis等框架的學習理解就不夠了,一旦項目出現疑難問題,學生就無從下手,不知道如何解決。最后需要強調的是,Java Web框架的教學內容不能局限于框架如何使用,而是要引導學生去理解框架的底層思維,理解框架中的設計思想,學會如何快速地學習一個新框架。這樣,學生以后的開發之路才能越走越寬。
3 教學方法
作為高職院校教師,在教授Java課程時應講究方式方法,以培養適合社會發展、行業發展的Java技術人才為目標。
3.1 項目教學法[2]
Java整個課程體系涉及的知識點比較多,很多知識點之間關聯性比較差,甚至可以說是割裂開來的。如果教師在教授課程的時候,僅僅以知識點為主線,一個一個地去講解,而沒有直白地向學生展示各個知識點在一個完整項目中的應用場景,那么學生學習完整個課程后,必然會云里霧里、似懂非懂,無法真正透徹地理解課程中的知識點。高職校教師應該采用項目驅動教學法,通過完整的項目去串聯相關的知識點,把教學內容巧妙地隱含在項目中。這樣就可以降低學生學習成本,激發學生學習興趣,最終實現課堂效果的提升。比如,教師可以通過“圖書管理系統”項目把《Java語言程序設計》這門課程的大部分知識點串聯起來。學習到基本數據類型,可以通過嘗試讓學生通過定義書的價格、書的數量、書是否借出等變量來理解double、int、boolean等基本數據類型;學習到循環控制結構,可以讓學生實現“打印多本書信息”的功能;學習到類與對象,可以帶著學生把書的信息封裝為一個類,提升優化“圖書管理系統”項目,讓學生理解封裝類的作用,定義對象帶來的諸多好處;學習到輸入/輸出處理,可以把“持久化存儲圖書信息”的功能集成到項目中;學習到圖形用戶界面,可以給項目加入可視化的界面。就這樣,每學習了新的知識點,就應用到項目中,實現新的功能,直到教授完整個課程。最終,一個涵蓋了Java基本語法、類、多態、輸入輸出、圖形界面、數據庫連接等知識點的“圖書管理系統”項目也就完成了。學生參與了項目搭建的整個過程,因而可以熟知知識點的使用方法、使用場景,對于知識點的理解也就更加的透徹。項目串聯知識點還可以讓學生在頭腦中建立知識體系,把雜碎的知識點關聯起來,提高整體學習效果,同時能夠有效地提高學生的創新能力和團隊協作能力[3]。
3.2 注重實踐
Java是一門技術課程,課程的目的是讓學生掌握相關的知識點,然后使用這些知識點去編寫項目,所以不僅要讓學生掌握理論,更要讓學生學會實踐。首先,課堂上教師要把理論教學和實踐教學有機地結合起來,即理實一體化教學[4]。如果教師授課的重點在于講解理論知識,而忽略課堂實踐的話,那么整個課程學習結束后,學生對理論知識可能一知半解,更別說一行一行編寫代碼、開發出真正的軟件了。對于Java課程,學生對理論知識的初步理解應該通過課前學生預習以及課堂中教師講解來完成。課堂上的大部分時間應該用在教師指導學生實踐,一行一行地去編寫代碼,這樣便可以一舉兩得,既鍛煉了學生的動手能力,又讓學生更加深刻地理解相應的知識點,了解學習到的知識點怎么用、用在哪里。其次,課程考核要注重實踐能力的考核。傳統的考核形式一般為筆試,并且考試內容大多偏向于理論知識點,而對實踐能力考查較少,這樣的考核形式并不能準確地反映學生對于Java這門課程的掌握程度。所以,對學生考核應該把過程考核和期末考核有機地結合起來。過程考核是指平時課后留給學生的實踐作業,課后的實踐作業不僅是對學生課堂學習效果的檢測,可以讓老師及時了解學生課堂的學習情況,還能夠加深學生對課堂學習的知識理解,督促學生課堂上更認真、更專心地學習;期末考核包括理論筆試和上機測試兩部分,其中上機測試直接考核學生代碼編寫的能力。
3.3 注重方法傳授
Java課程體系的知識點非常多,而且Java技術更新迭代也很快,特別是Java Web框架,通常過一段時間就會有新的框架出來,所以教師在教授Java課程的時候一定要注重學習方法的傳授,讓學生掌握快速學習新技術的方法。比如,在教授Spring MVC框架的時候,教師不僅要教會學生如何使用該框架,更重要的是引導學生去理解該框架的底層思維,理解框架里面的單例、工廠模式、面向切面、控制反轉等設計模式,這些底層思維以及設計模式都是框架的精髓,是經過前人理解、深挖、設計、廣泛使用之后,總結出來的[5]。即便框架一直變,設計模式也是不會輕易變的,所以,學會了這些底層思維以及設計模式后,當再遇到新的框架的時候,學生便能夠觸類旁通、舉一反三,快速地學習好如何使用新框架。俗話說:“授人以魚不如授人以漁”,說的就是這個道理,學校學習的知識僅僅是以后走上工作崗位的基礎,更多更復雜的知識是靠學生自己摸索出來的,所以教師一定要注重方法的傳授,讓學生掌握學習的方式方法。
3.4 選擇合適工具
Java開發工具有很多,主要分為輕量級開發工具和集成開發工具,輕量級開發工具主要有 Notepad++、Sublime Text、editplus、ultraedit、vim等,這些工具可以通過插件來支持Java開發,安裝搭建起來都非常的快速便捷;集成開發工具主要有Ecplise、MyEclipse、Intellij IDEA、NetBeans等。集成開發工具的功能非常強大,可以顯著提高Java開發的效率。在企業中,開發人員通常都會使用集成開發工具來開發Java項目。但對于高職院校的學生來說,尤其在初學Java階段,最好是選擇輕量級的開發工具,甚至記事本也是可以的。這是因為在初學Java階段,學生對Java的基本語法還不熟悉,如果直接使用帶有代碼提醒等功能的集成開發工具,學生會對開發工具產生依賴,而不是通過大腦去記住基本語法語義,不利于整體的學習效果。在后期學習Java Web課程的時候,就可以使用到Ecplise、Intellij IDEA等集成開發工具,這樣學生可以提前熟悉在企業中如何開發Java項目,為走上工作崗位打好基礎。
4 結束語
Java課程對高職院校的學生來說有一定的難度,這也意味著高職院校的教師教授Java課程要有更高的質量,更好的方法。在初學Java階段,教師一定要引導學生理解Java語言,熟悉Java基礎語法,打好Java開發的基礎。在Java Web學習階段,教師要讓學生多實踐、多研究,引導學生自己去學,自己去解決代碼問題,這樣學生對Java才能有更深的理解,才能學會如何去學習新的知識點、新的技術,才能為以后進入互聯網企業開發Java項目打下堅實的基礎。
參考文獻:
[1] 王俠,韓永印.Java語言程序設計教學改革與實踐[J].電腦知識與技術(學術交流),2007,3(20):560,562.
[2] 沈維政,蘇中濱,趙潔.項目驅動教學法在Java語言程序設計教學中的應用[J].東北農業大學學報(社會科學版),2010,8(2):66-67.
[3] 鄒曉兵.項目驅動教學法在《C#程序設計》中的應用[J].重慶教育學院學報,2012,25(3):65-67.
[4] 王瑛淑雅.計算機基礎課程理實一體化教學模式——高職院校學生計算機應用能力的培養[J].計算機教育,2010(1):128-131.
[5] 鄭苗.基于Java的設計模式理解與實現[J].電腦知識與技術,2017,13(32):115-116,125.
【通聯編輯:謝媛媛】