霍瑛 彭煥峰
摘 要:隨著信息技術的發(fā)展,各校相繼開設數(shù)據(jù)科學與大數(shù)據(jù)專業(yè)以緩解大數(shù)據(jù)人才短缺問題。為了提高Java課程與大數(shù)據(jù)專業(yè)的契合度,面向大數(shù)據(jù)專業(yè)開展Java程序設計教學改革研究。在教學內(nèi)容上,將大數(shù)據(jù)前沿知識適當穿插于課程教學中進行講解與分析,并通過延伸實驗項目,訓練學生分析與解決問題的能力;在教學方式上,利用視頻資源探索應用混合式學習方式,并設置累加式實驗項目以提高學生學習興趣。通過課程改革,可為后續(xù)大數(shù)據(jù)專業(yè)課程學習奠定良好基礎。
關鍵詞:大數(shù)據(jù);Java;課程改革;教學方式
DOI:10. 11907/rjdk. 182253
中圖分類號:G433文獻標識碼:A文章編號:1672-7800(2019)003-0204-02
0 引言
隨著云計算、大數(shù)據(jù)等信息技術的飛速發(fā)展,以及各行業(yè)對大數(shù)據(jù)分析、挖掘與應用需求的大幅增長,導致熟練掌握大數(shù)據(jù)技術的高校畢業(yè)生在人才市場上嚴重短缺。各地高校也競相布局大數(shù)據(jù)相關專業(yè),培養(yǎng)大數(shù)據(jù)人才[1-2]。2016年,教育部批準北京大學等3所高校開設“數(shù)據(jù)科學與大數(shù)據(jù)專業(yè)”,2017年又有32所高校獲批,截至2018年,獲批的高校多達248所[3]。在此背景下,針對大數(shù)據(jù)相關課程體系建設與改革的研究顯得尤為重要[4-5]。
在各高校開設的大數(shù)據(jù)專業(yè)課程中,幾乎都將《Java程序設計》作為基礎核心課程[6-7],主要原因在于:首先,從大環(huán)境來看,Java作為世界上應用最廣泛的計算機編程語言之一,已形成強大的開源社區(qū)與眾多成熟的解決方案,學生具備一定的Java開發(fā)能力能夠有效提高自身的就業(yè)競爭力;其次,從Java本身特性來看,Java語言具有簡單、面向對象、分布式、健壯性、安全性、平臺獨立與可移植性、多線程、動態(tài)性等特點,能夠滿足大數(shù)據(jù)專業(yè)對學生編程基本素質的要求;更重要的是,大數(shù)據(jù)典型框架如Hadoop[8]、Map-Reduce[9]、Spark[10]、Storm[11]等,大多采用開源Java語言編寫而成,因此學習Java語言在大數(shù)據(jù)開發(fā)方面具有獨特優(yōu)勢。
《Java程序設計》課程一般在大二開設,通過先行課程《C程序設計語言》的學習,學生已掌握面向過程程序設計的基本方法和技巧,能夠獨立編寫較為簡單的程序[12]。Java課程的授課內(nèi)容主要為Java SE(Standard Edition,標準版),包括類的概念性質、接口、異常處理等基本語法成分,以及圖形用戶界面、線程、流、文件操作、網(wǎng)絡通信等實用技術[13]。課程內(nèi)容設置與大數(shù)據(jù)聯(lián)系并不緊密,僅講授這些基本理論規(guī)則并不能使學生充分了解大數(shù)據(jù)框架,不利于學生對大數(shù)據(jù)后續(xù)專業(yè)課程的學習[14]。
此外,在授課過程中的一大難題是學生面向過程的思維習慣難以轉換為面向對象的思維習慣[15]。在銀行賬戶類實驗中,多數(shù)學生仍習慣于將靜態(tài)方法定義于一個類中,無法很好地掌握面向對象編程語言的基本特征及概念,導致遇到具體問題時,無法靈活應用繼承、多態(tài)等面向對象特性,編寫代碼的可復用性與可擴展性差。此外,該課程概念多、綜合性與應用性強、掌握難度大也是導致教學效果不佳的主要原因之一[16-17]。
因此,如何在《Java程序設計》課程的教學工作中兼顧基礎知識與學科前沿,以及理論與實踐,是教學改革研究中的重點問題。本文將從教學內(nèi)容創(chuàng)新與教學方式改革兩方面,對面向大數(shù)據(jù)專業(yè)的《Java程序設計》課程改革進行闡述。
1 教學內(nèi)容創(chuàng)新
根據(jù)學生的認知水平、學習能力、自身素質及學習目標選擇合適的教學內(nèi)容,對于課程教學至關重要。大數(shù)據(jù)專業(yè)的學生除需要學習Java SE基礎外,也應對Java Web以及典型框架有所了解,從而為后續(xù)學習大數(shù)據(jù)框架搭建奠定基礎。但《Java程序設計》課程的授課對象為大二學生,其僅有C/C++的基礎,而在48學時的理論課程中需要講授Java SE的語言基礎、類的封裝繼承多態(tài)、接口、異常處理、圖形用戶界面、多線程、輸入/輸出流,以及網(wǎng)絡通信等大量教學內(nèi)容,并輔以16個實驗學時對理論知識進行鞏固。目前很多學生已感覺課業(yè)負擔十分繁重,若增加過多新內(nèi)容將更難以適應。因此,在總課時不變的情況下,可將已有教學內(nèi)容與大數(shù)據(jù)相關領域知識進行有機結合,將學科前沿知識適當穿插于教學內(nèi)容中進行講解與分析。
(1)介紹大數(shù)據(jù)框架相關知識,啟發(fā)學生思維。在講解完基礎教學內(nèi)容之后,拓展介紹與之相關的大數(shù)據(jù)技術。例如,在講解輸入/輸出字節(jié)流和字符流操作的基礎上,可將教學內(nèi)容進一步引申到大數(shù)據(jù)對數(shù)據(jù)的處理模式及典型框架,介紹批處理和流處理模式的基本原理、優(yōu)勢與局限、適用場景,以及典型的批處理框架Apache Hadoop與流處理框架Apache Storm。通過該方式可深化學生對基礎知識及大數(shù)據(jù)相關問題的理解。
(2)延伸實驗項目,訓練學生解決問題的能力。將已有實驗項目向大數(shù)據(jù)領域延伸,在鞏固Java SE知識的同時,訓練學生分析與解決問題的能力。例如Java網(wǎng)絡通信章節(jié)布置了通過URL訪問網(wǎng)絡資源的實驗課題,通過URL獲得網(wǎng)頁源碼,對網(wǎng)頁上的數(shù)據(jù)進行格式轉換以獲得需要的數(shù)據(jù)。對于大數(shù)據(jù)專業(yè)的學生,通過延伸實驗項目,在獲取單頁面或多頁面數(shù)據(jù)基礎上,選擇合適的方法進行分析并獲取信息。例如對淘寶頁面的分析,可通過分析商品好評度,或對兩種商品進行全方位比較,進而分析其商業(yè)模式演化[18]與營銷策略[19]等。通過延伸實驗項目的訓練,可促進學生在學習數(shù)據(jù)分析方法之前首先進行發(fā)散性思考,以提高學生解決問題的能力與對專業(yè)的認同感。
2 教學方式改革
在教學內(nèi)容創(chuàng)新的基礎上,對教學方式進行改革也是教學工作的一個重要內(nèi)容。在課程教學過程中,采用科學、合理的教學方式,與營造良好的課堂氛圍、有效傳達教學內(nèi)容、提升學生專注度等有著密不可分的關系。因此,為達到更好的教學效果,從以下方面進行教學方式改革: