鄧一星,王 芳,楊榮領
(華南理工大學廣州學院 計算機工程學院,廣東 廣州 510800)
隨著我國信息化發展水平日益提高,數據資源的采集、挖掘和應用水平不斷深化。政府部門、互聯網企業、大型集團企業積累沉淀了大量的數據資源。我國已成為產生和積累數據量最大、數據類型最豐富的國家之一,大數據產業迅速成為了塑造我國競爭力的戰略產業[1]。2016年,工信部正式發布了《大數據產業發展規劃(2016—2020年)》,提出到2020年,我國要基本形成技術先進、應用繁榮、保障有力的大數據產業體系。大數據相關產品和服務業務收入突破1萬億元,年均復合增長率保持30%左右,加快建設數據強國,為實現制造強國和網絡強國提供強大的產業支撐。隨著大數據產業的爆炸式發展,對數據處理的專業技能需求也隨之激增。除此之外,更精細的分工也產生了對以統計分析、數據挖掘為主要知識背景的大數據分析師,以及以計算機技術為主要知識背景、面向大數據技術應用的大數據工程師的需求[2]。
從2017年開始,陸續有高校開設大數據技術的相關專業,同時,更多的高校也在各自的計算機相關專業中設置了大數據技術相關的方向。對于應用型本科高校而言,總體上還是能明確自己的培養目標,即以向社會培養從事大數據技術相關應用的數據工程師為主。
大數據產業屬于新興產業,大規模發展也就是不到四五年的時間,從事大數據相關工作的人才學科背景種類繁多,掌握的技能也是五花八門,很難總結歸納出究竟哪些才是作為面向應用的大數據工程師首先需要掌握的知識。這給高校在設置大數據技術相關課程時帶來了不小的難題,在實踐的過程中,確實也產生了不少的問題。
(1)課程設置簡單粗放。新興學科在課程設置上,很容易犯課程體系臃腫的毛病。以前些年非常熱門的物聯網專業(方向)為例,目前該專業(方向)在很多應用型二本、三本院校卻受到了冷遇。原因在于,作為跨通信、計算機、網絡等技術的交叉學科,物聯網專業課程體系往往同時包含了以上幾個專業的核心課程(特別是一些理論課程),不開設說不過去,但全開起來,本科層次的學生苦不堪言。學生進入社會從事具體應用的工作,又不需要掌握那么多知識。大數據技術方向的課程建設,也很容易出現這樣的問題,很多高校在計算機科學(軟件工程)專業上,加入部分數理統計類的課程,以及分布式集群框架和數據挖掘、分析的課程。但實際上,這樣的課程體系往往缺乏可操作性,也超過了本科生的承受能力。
(2)實驗教學難開展。大數據工程師能力的培養非常強調對相關平臺、工具的掌握和在平臺進行項目實操的經驗。客觀地說,許多高校的大數據實驗課,還停留在開設一些Python的編程實驗和教學生安裝和配置Hadoop平臺的階段,很難再深入組織實驗。
(3)學生課外項目實踐機會少。校內的工作室或技術團隊,主要還是以軟件開發類項目為主,學生在校內很難找到一個完整的大數據項目進行實踐,只能靠網上的一些視頻和公開數據集來簡單練習,缺乏結合企業實際業務的數據處理過程,能力提高比較慢,在實習畢業的時候,大多還是走回進行普通軟件開發的老路子。
應用型本科高校應著眼于服務區域經濟發展,培養能在生產第一線從事工程實施和管理的、能解決企業實際問題的應用型人才。大數據工程師的能力培養,不能脫離“技術+業務”這條主線,應著眼于培養掌握大數據應用系統設計、開發、調優以及運營維護的人才。這是一個系統的工程,需要從課程方案設計、實驗(實踐)教學組織乃至個性化學習和項目實踐等方面綜合考慮。
(1)課程體系要精簡,主次分明,有所取舍。不建議過多開設偏數學類的統計分析課程,開設了的課程內容也不易過深。實際上,數據工程師并不需要在數學理論和算法上進行非常深入的研究,他們更多是作為一個算法的使用者,而絕大多數的數據分析算法,都已經有了成熟的算法包可供各種開發工具調用。對于數據工程師來說,明白一個業務場景需要用什么算法,比了解算法的內涵更為重要,有些算法甚至可以在實踐中現學現用。以華南理工大學廣州學院軟件工程專業(以下簡稱本專業)大數據技術方向為例,在保留原有的高等數學、線性代數等課程的基礎之上,再把概率論和數理統計分成兩門課程,這相當于增加了統計學教學內容的學時;同時開設一門數學模型課程,讓學生掌握基本的數學建模能力。這已可保證學生具有足夠的數學基礎。對于部分傳統軟件工程和軟件開發類的課程,可以適當地剔除或轉為選修課程,為后期的大數據課程騰出學分空間,而這部分課程可供學有余力的學生選修。
(2)加強學生對數據的認識。涉及數據組織、管理和處理的課程可適當強化。除了傳統的數據庫原理課程外,增加數據導入與預處理、數據倉庫、數據挖掘以及數據可視化等課程。
(3)要求學生掌握在分布式平臺和并行計算框架上進行基本的數據分析的能力。目前本方向這方面的課程主要采用Hadoop生態圈下的產品和工具來開展教學,開設Hadoop大數據技術和大數據分析與內存計算、機器學習3門課程。
(4)保證學生對云計算有足夠的理解和應用能力,開設云計算基礎、架構等課程。云計算與大數據的關系如同手心手背,二者缺一不可。大數據需要云計算的支持才能具有更強的決策力、洞察發現力和流程優化能力,以此來適應海量、高增長率和多樣化的信息資產。從應用的角度看,一方面,隨著企業不斷把業務遷移到云端,數據基本上也都存在于云端;另一方面,利用云計算可以靈活快速地完成分布式計算框架的構建;除此之外,幾乎所有的機器學習算法或深度學習的模型,都可以很輕易在云端找到實現的工具,甚至一些常見的應用場景,都可以在云端直接進行分析。簡單地說,云計算成就了大數據,有了云計算,大數據的應用才能展開,技術門檻才能降低。
完整的大數據方向課程體系如圖1所示。
大數據實驗教學目前存在的最大問題在于,從基礎的Python編程、Linux操作系統,到Hadoop平臺,乃至Spark計算框架,似乎涉及大數據技術的每門課程都安排了相應的實驗,但各項實驗之間內容沒能形成呼應關系,不能從整體上培養學生解決實際問題的能力。本專業在軟件工程類課程的實驗教學上,已經做了比較好的嘗試。采用打通實驗課教學內容的方式,即從一個需求開始,依次展開UML建模、Java EE框架開發、軟件測試和軟件項目管理等實驗內容,取得了比較好的教學效果。相關經驗可以引用到大數據實驗教學中,從一些簡單、典型的數據集開始,展開數據預處理、大數據平臺搭建、數據分析乃至數據可視化的實驗。一個流程下來,學生對大數據處理的內容、步驟就會有一個比較完整的認識,接下去再設計1~2門集中實踐式的綜合實驗(或課程設計),讓學生獨立完成一個大數據應用項目。

圖1 大數據方向課程體系
此外,正如前面所述,云計算為大數據提供了強有力的支撐,云計算的實驗教學也不可忽視。很多學校會采用類似OpenStack這樣的開源云平臺來開展實驗,但這樣做缺點也很明顯。首先加大了實驗教學的難度,在開源平臺的實驗中,若配置稍微出點問題,糾錯改正的過程往往讓教師苦不堪言,這違背了云計算方便易用的初衷;其次,在實驗室搭建的云平臺,也很難提供足夠強大的計算能力來實現大數據實戰的需求。在大數據應用領域,企業更傾向于采用商業云平臺,按需獲得足夠強大的計算能力。本專業在獨立學院中率先建立了AWS Academy,與AWS展開了實驗課程的合作,由AWS來協助設計云計算基礎、架構和開發的實驗教學內容,提供真實的AWS云環境進行實驗,并鼓勵學生參與到后續的大數據項目中,使用AWS Segmaker等機器學習或深度學習工具。
實踐是檢驗真理的唯一標準,教學之外,還應為學生創造更多的課外項目實踐機會。通過鼓勵教師參與大數據相關研發項目并吸收學生參與具體工作,是一個不錯的手段。為此,華南理工大學廣州學院由計算機工程學院和管理學院共同組建了智能商務研究所,為珠三角企業提供大數據相關的技術服務。參與研究所項目的老師近10人,并在此基礎上組建了大數據學生團隊,每屆學生總數為30~40人,學生中的一部分參與研究所的具體項目研發,一部分在老師指導下進行大學生創新創業實驗項目,還有一部分通過參加Kaggle比賽或天池比賽,不斷累積項目經驗。
方案提出并在華南理工大學廣州學院軟件工程專業實施以來,取得了比較好的效果。首先改變了學生扎堆往Web開發方向上擠的局面,學生的就業面得到了拓寬,已有相當一部分學生能夠在云計算、數據分析相關的公司和崗位實習或就業,就業質量也得到了顯著提高;其次,學生有了一定的大數據應用的知識基礎后,便可以積極參與大數據相關的應用研究工作,近兩年來,計算機工程學院和智能商務研究所已開展“獨立學院學生多維興趣數據的挖掘與分析”“AI智能制單”“海關通關信息自動分類”等6項課題,此外還有國家級大創項目1項,省級大創項目1項。
在此方案基礎上,華南理工大學廣州學院與教育部學校規劃建設發展中心以及中科曙光集團于2018年7月成功簽約數據中國“百校工程”產教融合創新項目,校企政三方共建大數據應用創新中心,打造兼具人才培養、科研創新和服務行業與地方發展功能的大數據應用協同創新網絡。
在大數據從理論研究轉向大規模應用實踐的今天,各行業對大數據工程師的需求量激增,如何開展大數據工程師的培養工作,是擺在應用型本科院校面前的一個現實問題。本文針對高校中比較常見的在軟件工程專業下設置大數據方向這種方式,對其課程設置、實驗教學和實踐環節進行分析,試圖找出一條有效的大數據工程師培養方案,為其他高校提供一些可供參考和借鑒的經驗。