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