張琳 李朝輝 譚孟康
[摘 要]Java程序設計是高等學校計算機相關專業的一門技術基礎課。結合課程的授課經驗,設計了Java程序設計的教學內容,分析了在實踐教學中存在的問題,并對實踐教學方法進行了探討,希望能夠對Java授課教師提供有益的幫助,提高該課程的實踐教學效果。
[關鍵詞]Java程序設計;實踐教學;Java面向對象
[基金項目]2019年中央高校基本科研業務費專項資金資助項目“面向學術文獻大數據的自動文摘方法研究”(3132019234);2018年大連海事大學教學改革項目“信管專業大數據課程教學資源建設”(2018Y48);2018年教育部產學合作協同育人項目“‘跨境電子商務理論與實踐課程建設”(201802028013)
[作者簡介]張 琳(1984—),女,山東萊西人,博士,大連海事大學航運經濟與管理學院講師,主要從事信息管理和文本挖掘研究;李朝輝(1974—),男,河南漯河人,博士,大連海事大學航運經濟與管理學院副教授,主要從事電子商務物流研究;譚孟康(1999—),男,湖南衡陽人,大連海事大學航運經濟與管理學院2017級本科生,研究方向為信息管理與信息系統。
[中圖分類號] G642[文獻標識碼] A[文章編號] 1674-9324(2020)27-0214-02[收稿日期] 2019-10-08
隨著互聯網和移動互聯網的快速發展,市場對Java編程人才的需求越來越大,所以許多高校的計算機相關專業都開設了Java程序設計這門課程,并將其作為一門專業技術基礎課。因此,如何更好地教授這門課程,培養學生面向對象的程序設計思想,提高學生分析和解決實際問題的能力,是高校Java授課教師必須重視的問題。
一、Java程序設計教學內容
1. Java語言的編譯和運行機制。Java是一種特殊的高級語言,既具有編譯型語言的特征,也具有解釋型語言的特征,因此用Java語言編寫的程序要經過先編譯后解釋兩個步驟[1](P4-5)。Java程序編譯后生成的不是特定平臺的機器碼,而是一種“中間碼”—字節碼(也就是.class文件),這種代碼不面向任何平臺,只面向Java虛擬機(Java Virtual Machine,JVM)。字節碼可以在所有實現了JVM的系統上運行,因此Java語言可以跨平臺。
2.數據類型。Java是一種強類型語言,這意味著必須為每一個變量聲明一種類型。Java將數據類型分為兩類:基本類型和引用類型[1](P50)。基本類型包括Boolean類型和數值類型。數值類型有整數類型(byte、short、int、long、char)和浮點類型(float和double)。引用類型包含類(class)、接口(interface)和數組(array),還有一種特殊的null類型。
3.流程控制和數組。Java支持3種流程控制結構:順序結構、分支結構和循環結構[1](P74-89)。其中,分支結構包含兩種:if語句和switch語句。循環結構包含四種:while循環、do while循環、for循環和foreach循環。其中foreach循環是JDK5提供的一種新的循環結構,可以用來遍歷集合、數組中的元素而不必指定下標值。
數組是編程語言中最常見的一種數據結構,用于存儲同一類型的多個數據[2](P78-88)。在Java中數組必須先初始化才能使用。數組的初始化有兩種方式:靜態初始化和動態初始化[1](P91-92)。其中,靜態初始化由程序員顯式指定每個數組元素的初始值,由系統決定數組的長度;動態初始化由程序員指定數組長度,由系統為數組元素分配初始值。
4. Java面向對象的三個基本特征。Java面向對象的三個基本特征是封裝、繼承和多態[1](P28-29)。
封裝指的是將對象的實現細節隱藏起來,不允許外部程序直接訪問對象的內部信息,只能通過該類提供的一些公用方法實現對對象內部信息的操作和訪問。通過封裝可以提高數據的安全性。
繼承是實現軟件復用的重要手段,利用繼承,可以基于已存在的類構造一個新的類。子類繼承父類后,將直接獲得父類的屬性和方法,并可以在此基礎上添加一些新的屬性和方法,以滿足新的需求。
繼承為多態的實現提供了前提。子類是一種特殊的父類,所以Java允許把一個子類對象直接賦值給父類引用變量。在編譯時變量是父類類型,但在運行時卻表現出子類的行為特征,這就是多態。多態意味著同一個類型的對象在執行同一個方法時,可能表現出多種行為特征。
5. Java類庫。Java類庫主要包括Java基礎類庫、異常處理、圖形用戶界面、輸入輸出流等[1](P246-731)。其中,Java基礎類庫包括Scanner、System、Runtime、Object、String、Math、List、Set等,通過這些基礎類庫可以提高開發效率,降低開發難度;異常是運行時在代碼序列中引起的非正常狀況,Java的異常機制主要依賴于try、catch、finally、throw和throws五個關鍵字,可以讓程序具有更好的容錯性,使程序更加健壯;Java使用AWT和Swing類完成圖形用戶界面編程,通過這兩個類提供的圖形界面組件庫,程序只要依次創建所需的圖形組件,并以合適的方式組織它們,就可以開發出美觀的用戶界面;Java通過java.io包下的類和接口來支持輸入、輸出,java.io包下主要包括輸入、輸出兩種IO流,每種輸入、輸出流又可分為字節流和字符流兩大類。
二、Java程序設計實踐教學現狀
1.理論教學學時仍然占很高的比例,這使得教師將教學重點放在理論教學上,在課程考核方式上也以理論筆試為主,忽視了對學生動手實踐能力的培養和考核[3]。實踐學時的不足導致學生無法充分理解面向對象的理論知識,以至于在遇到具體問題時無法下手,進而對實踐課程產生了排斥心理,編程技能和綜合運用知識的能力得不到提高。
2.過度依賴于IDE工具。IDE工具使用起來比較靈活,可以提高開發效率,在項目管理中有不可比擬的優勢。因此很多教師在教學實踐環節,直接將Eclipse、NetBeans等IDE工具作為開發工具,這種做法可能會使學生將精力花在IDE工具的學習上而忽略對Java語言本身的學習,也可能會造成學生對IDE工具的過度依賴,導致其在脫離IDE工具進行程序設計時,經常會犯一些語法錯誤或書寫錯誤,比如將關鍵字首字母大寫,使用中文分號作為分隔符,忘記寫主函數的形參等,而大部分學生經常發現不了這些錯誤。
3.缺少合適的實踐教學資源。為了培養符合市場需求的高水準Java人才,Java教師需要對知識點以及知識點之間的關聯性進行更詳細的講解,教授學生如何將所學的知識應用到實際中,學生也需要進行更多有針對性的練習,而現有的實踐教學資源難以與教學進度、教學知識點完全融合,導致學生在實踐中難以更好地運用這些知識點。
三、Java程序設計實踐教學方法探討
1.增加總學時,同時提高實踐教學學時的比例。理論是實踐的先導,實踐是理論的檢驗。為了更好地培養學生的綜合素質和實踐能力,目前有的高校已經將Java程序設計課程分為Java初級和Java高級兩部,分兩個學期進行。將課程總學時增加到112學時,其中Java初級64學時,Java高級48學時,并將這兩部分中的實踐教學學時比例提高到50%。同時為了全面評估學生實踐操作能力,實踐分值在課程總分值中所占的比例也由30%提升到50%。
2.高校Java教師可以在課程教學初期,比如Java初級階段,在實踐環節中將Editplus、Ultra Edit或記事本等作為開發工具,在大部分學生能夠根據錯誤提示修正程序中的錯誤時或在Java高級階段,講授如何使用IDE工具進行程序設計。另外,為了提高學生的程序改錯能力,督促學生多練習多總結,在筆試環節也可以增加程序改錯題。
3.在實踐教學過程中,Java教師可以按照講授的內容編寫實驗指導書,通過設計大量有針對性的實驗幫助學生鞏固在課堂上所學的知識點,理解各知識點之間的關聯,提高學生的編程能力。Java教師也可以提供一些案例應用,教授學生如何將所學的知識點應用到實際中,進而優化實踐教學的水平。另外,為了使學生對面向對象程序設計有一個全面總體的理解,授課教師可以布置一個具有趣味性的綜合性大作業,將其作為實踐考核的一部分[4]。
4.充分利用校企合作。目前很多高校的計算機相關專業已經與多個實習基地簽署了合作協議,在課程設計、綜合實踐、實習等環節開展深度合作。Java教師可以充分利用實習基地,讓學生到企業實習。學生通過參與實際項目開發,積累實踐經驗。
四、Java程序設計實踐教學的發展趨勢
隨著互聯網的快速發展,各行業都積累了海量的數據,大數據時代已經到來。在大數據環境下,企業對大數據分析人才的需求不斷增加,數據分析能力已成為計算機相關專業學生應該具備的技能。因此,將大數據技術與Java程序設計實踐教學相結合,利用大數據時代產生的海量數據完善實踐教學資源,加強對學生數據分析能力的培養,將成為Java程序設計實踐教學的發展趨勢。
參考文獻
[1]李剛.瘋狂Java講義(第5版)[M].北京:電子工業出版社,2019: 4-731.
[2][美]Cay S.Horsmann.Java核心技術卷I基礎知識(原書第10版)[M].周立新,陳波,葉乃文,等譯.北京:機械工業出版社,2016: 78-88.
[3]徐完平.《Java程序設計》教學改革探討[J].福建電腦,2018, 34(12):182+168.
[4]諶衛軍.Java程序設計課程教學實踐[J].計算機教育,2019 (07):23-28.