孫曉霞,劉井蓮,趙衛(wèi)績,吳亞明,李 欣,劉文龍
(綏化學(xué)院信息工程學(xué)院,黑龍江綏化152061)
隨著國家信息化建設(shè)的全面實施,我國各行各業(yè)對大數(shù)據(jù)人才的需求非常迫切,大數(shù)據(jù)方面的高級人才更是極度匱乏,培養(yǎng)適合社會需要的大數(shù)據(jù)應(yīng)用型人才,搭建大數(shù)據(jù)實踐教學(xué)課程體系,是非常必要的。
大數(shù)據(jù)技術(shù)人才的極度缺乏,為高校大數(shù)據(jù)專業(yè)建設(shè)提供了發(fā)展空間,給高校大數(shù)據(jù)人才培養(yǎng)帶來了機(jī)會。政府的大力扶持和數(shù)據(jù)產(chǎn)業(yè)鏈的不斷完善,給高校大數(shù)據(jù)人才培養(yǎng)提供了較好的生態(tài)環(huán)境,全國各高校都在積極申報“數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)”專業(yè)或開設(shè)“大數(shù)據(jù)”人才培養(yǎng)方向。2014年,清華大學(xué)設(shè)置了大數(shù)據(jù)技術(shù)的相關(guān)碩士學(xué)位,多學(xué)科交叉培養(yǎng)大數(shù)據(jù)技術(shù)人才,正式開啟了該領(lǐng)域?qū)I(yè)技術(shù)人才培養(yǎng)的工作。2016年,我國開始建設(shè)本科“數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)”專業(yè),教育部批準(zhǔn)中南大學(xué)、對外經(jīng)濟(jì)貿(mào)易大學(xué)、北京大學(xué)建立“數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)”本科專業(yè);2017年,教育部批準(zhǔn)32所高校設(shè)立“數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)”本科專業(yè),2018年,批準(zhǔn)248 所高校設(shè)立“數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)”本科專業(yè),其中黑龍江省獲批5所高校。2019年初,教育部又公布了203所高校獲批設(shè)立“數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)”新專業(yè),其中黑龍江省獲批7所高校。到2019年,我國共有406 所高校獲得招收“數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)”本科專業(yè)資格。在這些院校中,不僅有復(fù)旦大學(xué)、北京郵電大學(xué)這樣的985、211高校,也有晉中學(xué)院、宿州學(xué)院和許昌學(xué)院等新建本科院校。由于獲批招收大數(shù)據(jù)專業(yè)的院校水平參差不齊,專業(yè)建設(shè)匆忙,課程體系構(gòu)建不完善,特別是新建本科院校這一問題更加突出。
朝樂門等人提出數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)專業(yè)應(yīng)重視的特色課程,對現(xiàn)階段我國數(shù)據(jù)科學(xué)教育中普遍存在的曲解現(xiàn)象進(jìn)行了分析,并給出對策建議。詹玲在探討文華學(xué)院計算機(jī)專業(yè)大數(shù)據(jù)方向課程建設(shè)目標(biāo)的基礎(chǔ)上,從課程群規(guī)劃、理論教學(xué)、實踐教學(xué)三個方面提出了一系列提高學(xué)生綜合應(yīng)用能力的高效的方法。姜立秋探索了大數(shù)據(jù)專業(yè)課程體系、大數(shù)據(jù)實踐教學(xué)資源建設(shè)和課程內(nèi)容等問題。黃晉探討大數(shù)據(jù)課程體系結(jié)構(gòu)及教學(xué)內(nèi)容、教學(xué)形式,強(qiáng)調(diào)校企合作共同培養(yǎng)人才的重要性。培養(yǎng)方案是課程體系建設(shè)和課程設(shè)置的指導(dǎo)方針,楊洪等人對數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)專業(yè)培養(yǎng)方案進(jìn)行了系統(tǒng)分析與定義,對該專業(yè)人才實踐能力培養(yǎng)進(jìn)行了探索與實踐。劉風(fēng)華等人對計算學(xué)科大數(shù)據(jù)方向的人才培養(yǎng)的目標(biāo)、理論與實踐課程體系構(gòu)建進(jìn)行了討論。
大數(shù)據(jù)方向?qū)嵺`能力課程體系是決定大數(shù)據(jù)人才培養(yǎng)是否符合用人單位需求的關(guān)鍵環(huán)節(jié),當(dāng)前針對大數(shù)據(jù)方向的實踐課程體系研究相對較少,基于此,以綏化學(xué)院計算機(jī)專業(yè)大數(shù)據(jù)人才培養(yǎng)方向為例,從大數(shù)據(jù)人才培養(yǎng)需求和社會需求入手,圍繞程序設(shè)計、大數(shù)據(jù)分析與處理技術(shù)這兩大方向的實踐能力培養(yǎng),探討新建地方本科院校大數(shù)據(jù)人才培養(yǎng)方向的實踐課程體系構(gòu)建,有助于培養(yǎng)適合社會發(fā)展和市場需求的大數(shù)據(jù)技術(shù)應(yīng)用型人才,滿足國家信息化發(fā)展戰(zhàn)略需求。
大數(shù)據(jù)技術(shù)主要是指處理與分析實際數(shù)據(jù)的能力,具備海量數(shù)據(jù)采集、數(shù)據(jù)存儲、數(shù)據(jù)管理、數(shù)據(jù)分析與挖掘以及數(shù)據(jù)可視化的工程實踐能力。通過走訪多家使用大數(shù)據(jù)人才的用人單位,查詢各大招聘網(wǎng)站上大數(shù)據(jù)人才招聘信息,了解行業(yè)對大數(shù)據(jù)人才的具體技能需求,在得出需要技能性、應(yīng)用型大數(shù)據(jù)人才的結(jié)論基礎(chǔ)上,梳理出適合新建本科院?!皵?shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)”專業(yè)或“大數(shù)據(jù)”人才培養(yǎng)方向的實踐課程體系,確定了程序設(shè)計及算法類課程模塊群及大數(shù)據(jù)分析與處理技術(shù)課程模塊群。
大數(shù)據(jù)的挖掘和分析要借助計算機(jī)技術(shù)來實現(xiàn),而計算機(jī)技術(shù)基本能力的體現(xiàn)是程序設(shè)計水平。在大數(shù)據(jù)實踐課程體系中,應(yīng)該開設(shè)與數(shù)據(jù)挖掘和數(shù)據(jù)分析配套的計算機(jī)編程類課程,對于大數(shù)據(jù)應(yīng)用能力培養(yǎng)至關(guān)重要。為了培養(yǎng)學(xué)生程序設(shè)計能力,特別是編寫程序解決實際問題的能力,課題組對程序設(shè)計類的實踐課程從課程性質(zhì)、開課內(nèi)容、開設(shè)學(xué)期等進(jìn)行了詳盡的安排。
1.C 語言程序設(shè)計。應(yīng)該掌握數(shù)據(jù)類型、輸入輸出,順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)等基本知識,掌握利用數(shù)組、函數(shù)、字符串、指針、結(jié)構(gòu)體、鏈表進(jìn)行程序設(shè)計的方法等。建議設(shè)置為專業(yè)必修課程,大學(xué)一年級第一學(xué)期開設(shè)。
2.Java 程序設(shè)計。主要教學(xué)內(nèi)容包含語法基礎(chǔ)、程序流程、函數(shù)、數(shù)組、面向?qū)ο缶幊獭⒆址?,常用的工具類、?nèi)部類等,以及集合、泛型、異常、文件與I/O 流、多線程、圖形用戶界面編程、數(shù)據(jù)庫編程等高級應(yīng)用。建議設(shè)定為專業(yè)必修課,大一第二學(xué)期開設(shè)。
3.數(shù)據(jù)結(jié)構(gòu)(Java版本)。主要教學(xué)內(nèi)容包含線性表、棧、隊列、樹、集合和映射表、圖、排序、查找、散列等。建議定為專業(yè)必修課,大二第一學(xué)期開設(shè)。
4.Scala 程序設(shè)計。主要教學(xué)內(nèi)容包含Scala 基礎(chǔ)語法、流程控制、函數(shù)、數(shù)組、Map、Tuple,面向?qū)ο缶幊?、函?shù)式編程、模式匹配、類型參數(shù)、隱式轉(zhuǎn)換與隱式參數(shù)、對象系統(tǒng)、類型系統(tǒng)、Scala 工具和庫、宏與反射等。建議定為專業(yè)必修課,大三第一學(xué)期開設(shè)。
5.Python語言程序設(shè)計。主要教學(xué)內(nèi)容包含語法基礎(chǔ)、流程控制、字符串、列表、元組、字典、集合、函數(shù),面向?qū)ο缶幊?、圖形用戶界面、數(shù)據(jù)庫編程、網(wǎng)絡(luò)編程,以及NumPy、SciPy、Matplotlib第三方程序庫等。建議定為專業(yè)選修課,大二第二學(xué)期開設(shè)。
6.算法設(shè)計與實現(xiàn)(Python 版)。要求掌握窮舉、分治、貪婪、概率、遞推、遞歸、隨機(jī)化、回溯等算法,以及數(shù)論、動態(tài)規(guī)劃、經(jīng)典趣題等。建議定為專業(yè)選修課,大三第二學(xué)期開設(shè)。
7.Java Web 框架高級篇。課程教學(xué)內(nèi)容應(yīng)注重課程設(shè)計,在講授Struts、Hibenate、MyBatis、Spring等主流框架的基礎(chǔ)上,加強(qiáng)SSH、SSM框架整合以及案例分析等。建議定為專業(yè)選修課,大二第二學(xué)期開設(shè)。
為培養(yǎng)學(xué)生數(shù)據(jù)采集、存儲、處理能力,課程構(gòu)建如下:
1.Linus 基礎(chǔ)。Linus 是大數(shù)據(jù)課程的基礎(chǔ),是Hadoop、hbase、NoSQL、Spark、Storm 等大數(shù)據(jù)課程的先序課程。主要內(nèi)容包括系統(tǒng)安裝及相關(guān)配置、網(wǎng)絡(luò)基礎(chǔ)、OpenSSH 實現(xiàn)網(wǎng)絡(luò)安全連接、文本編輯器、用戶和用戶組管理、磁盤管理、文件和目錄管理、終端常用命令、系統(tǒng)監(jiān)測與維護(hù)。建議設(shè)定為專業(yè)必修課,大學(xué)第一年第一學(xué)期開設(shè)。
2.Hadoop。Hadoop 是整套大數(shù)據(jù)課程的基石,目前是海量數(shù)據(jù)并行處理的一個最常用的框架。課程主要內(nèi)容包括環(huán)境搭建、HDFS 文件系統(tǒng)的架構(gòu)、功能設(shè)計、HDFS Java API 使用、YARN 架構(gòu)、集群管理、應(yīng)用監(jiān)控、MapReduce 編程模型、Shuffle過程、編程調(diào)優(yōu)、分布式協(xié)作服務(wù)框架Zookeeper等。建議定為專業(yè)必修課,大一第二學(xué)期設(shè)置。
3.大數(shù)據(jù)倉庫Hive。Hive 是基于Hadoop 的一個數(shù)據(jù)倉庫工具,能將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,能將SQL 語句轉(zhuǎn)換為MapReduce 任務(wù)進(jìn)行運行。課程主要內(nèi)容包含環(huán)境搭建、原數(shù)據(jù)配置、常見交互方式、內(nèi)部表、外部表、分區(qū)表、數(shù)據(jù)遷移、常見查詢、內(nèi)置函數(shù)和UDF編程,數(shù)據(jù)的存儲和壓縮、Hive 常見優(yōu)化(數(shù)據(jù)傾斜、壓縮等)、數(shù)據(jù)清洗、導(dǎo)入(ETL)等。建議定為專業(yè)必修課,大二第一學(xué)期開設(shè)。
4.數(shù)據(jù)采集框架Sqoop/Flume/Oozie。Sqoop 是一款開源工具,主要用于在Hadoop(Hive)與傳統(tǒng)的數(shù)據(jù)庫(如MySQL)間進(jìn)行數(shù)據(jù)傳遞。主要內(nèi)容包含Sqoop 功能、使用原則,RDBMS 數(shù)據(jù)導(dǎo)入Hive 表、HDFS 上文件導(dǎo)出到RDBMS 表中,文件收集框架Flume設(shè)計架構(gòu)、原理,實時采集數(shù)據(jù),F(xiàn)lume安裝與監(jiān)控,任務(wù)調(diào)度框架Oozie 安裝部署,Oozie 調(diào)度等。建議定為專業(yè)限選課,大二第二學(xué)期開設(shè)。
5. 大數(shù)據(jù)Web 開發(fā)框架Hue。Hue 是基于Python Web框架的Django實現(xiàn),使用Hue能在瀏覽器端的網(wǎng)絡(luò)控制臺上與Hadoop 集群進(jìn)行交互分析并處理數(shù)據(jù)。主要內(nèi)容包括Hue架構(gòu)、功能、編譯,Hue 集成HDFS,Hue 集成MapReduce,Hue 集成Hive、DataBase,Hue集成Oozie。建議定為專業(yè)選修課,大三階段第一學(xué)期開設(shè)。
6.分布式數(shù)據(jù)庫HBase。HBase 是一個分布式的開源數(shù)據(jù)庫,是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統(tǒng)。主要內(nèi)容包括環(huán)境搭建、shell初步使用(CRUD等)、Schema、表的設(shè)計、表的預(yù)分區(qū)、數(shù)據(jù)存儲模型、HBase Java API 使用(CRUD、SCAN 等)、HBase 與MapReduce 集成、數(shù)據(jù)導(dǎo)入導(dǎo)出、HBase 表的屬性設(shè)置、HBase Admin 操作等。建議設(shè)為專業(yè)限選課,大三第一學(xué)期開設(shè)。
7.實時數(shù)據(jù)處理框架Storm。Storm是開源分布式實時數(shù)據(jù)處理框架,主要內(nèi)容包括Storm 原理和概念詳解、Zookeeper集群搭建及基本使用、Storm集群搭建及測試、Spout與Grouping 策略、Zookeeper 鎖控制線程操作、Storm 事務(wù)API,Storm Trident 、Storm集群和作業(yè)監(jiān)控告警等。建議定為專業(yè)選修課,大三第二學(xué)期開設(shè)。
8.技術(shù)框架Spark。Spark是大數(shù)據(jù)核心開發(fā)內(nèi)存技術(shù)框架,采用Scala 語言實現(xiàn),是當(dāng)前最流行的開源大數(shù)據(jù)內(nèi)存計算框架。主要內(nèi)容包括生態(tài)系統(tǒng)、環(huán)境搭建、Spark 應(yīng)用提交工具,變量、類、高階函數(shù),核心RDD、核心組件,Spark on YARN 運行原理、運行模式及測試,Spark HistoryServer 歷史應(yīng)用監(jiān)控,Spark Streaming 流式計算,Spark Streaming 原理、DStream設(shè)計等。建議定為專業(yè)必修課,大三第二學(xué)期開設(shè)。
除開設(shè)上述的大數(shù)據(jù)處理技術(shù)和程序設(shè)計等課程外,還應(yīng)面向?qū)W有余力的拔尖學(xué)生,開設(shè)機(jī)器學(xué)習(xí)、數(shù)據(jù)可視化等一些高端的技術(shù)性強(qiáng)的實踐課程,讓部分學(xué)生對最流行的機(jī)器學(xué)習(xí)算法,如回歸、決策樹、SVM 等有所理解,并鼓勵這些學(xué)生在高年級參加一些機(jī)器學(xué)習(xí)競賽,例如著名的kaggle競賽。
針對國家對大數(shù)據(jù)技術(shù)人才的迫切需求,本文根據(jù)我校計算機(jī)科學(xué)與技術(shù)專業(yè)大數(shù)據(jù)方向教學(xué)實踐,在分析大數(shù)據(jù)人才培養(yǎng)目標(biāo)和社會需求的基礎(chǔ)上,深入探討了大數(shù)據(jù)方向?qū)嵺`課程體系建設(shè)的重要性,確定了程序設(shè)計、大數(shù)據(jù)分析與處理技術(shù)兩個課程模塊群,搭建了一套完整的大數(shù)據(jù)實踐課程體系。希望能為新建的大數(shù)據(jù)相關(guān)本科專業(yè)實踐課程體系建設(shè)提供一個有益的參考。今后我們還要進(jìn)一步探討、總結(jié)和分析實踐經(jīng)驗,構(gòu)建更加科學(xué)合理的大數(shù)據(jù)實踐課程體系。