(蘇州科技大學電子與信息工程學院,江蘇 蘇州 215000)
隨著當前信息技術的不斷深化和發展,以及我國“互聯網+”、“智能制造2025”和“一帶一路”等國家發展戰略規劃的推進,大數據時代已經撲面而來,云計算與大數據技術越來越得到重視和普及,甚至已經成為企業實力競爭的核心以及國家競爭和戰略發展的核心[1][2][3][4]。云計算與大數據技術的出現再次給社會各行各業帶來技術層面更高、影響力更廣的一次全方位變革,有調查數據顯示,目前32.5%的公司正在搭建大數據平臺,32.5%的公司已經在生產環境實踐大數據,并有成功的用例或產品;24.5%的公司已經做了足夠的了解,開發準備就緒。云計算與大數據技術的普及應用和高速發展也帶來了對相關人才的巨量需求。著名研究機構IDC經過調查發現亞太區的云計算相關人才需求年增長率達32%,領英發布的《2016年中國最熱職位人才報告》中基于領英平臺上約50萬的中國各個行業人才大數據的分析表明,大數據相關人才最為稀缺。2017年100offer的調查顯示,云計算、大數據領域的人才需求,無論從市場需求、面試邀請數量還是薪資水平,都呈大幅度領先的狀況。
顯然,作為國家中、高端人才的培養基地,高等院校如何順應這一趨勢,在大學課程體系中建設具有針對性的課程[1],積極培養具備大數據分析和應用基礎知識、基礎技能的本科生,已成為擺在高校教師和管理人員面前的一個迫切任務。
然而大數據與云計算技術體系龐雜,技術覆蓋數據采集、預處理、分布式存儲、NOSQL數據庫、多模式計算(批處理、在線處理、實時流處理、內存處理)、多模態計算(圖像、文本、視頻、音頻)、數據倉庫、數據挖掘、機器學習、人工智能、深度學習、并行計算、可視化等各種技術范疇和不同的層面。相對于國內大學計算機學科的教學內容而言,一方面這些技術與現有課程體系中的很多關鍵課程、基礎課程息息相關,另一方面則由于大數據、云計算技術應用性強、綜合性高,現有課程往往缺乏較為成熟和體系化的思路來實現對大數據的課程進行支撐。因此最終大數據、云計算的課程設置大多浮于表面,獨立設置其內容,既無法利用和銜接現有課程,也無法對現有課程體系起到深化和發展作用,有學生反映大數據與云計算課程更像一門課外興趣活動課,而不是整個課程體系的有機組成部分。
由此可見,為了適應大數據與云計算等技術發展及人才培養的需求,需要從大數據與云計算和已有課程的相互協同出發,研究將大數據與云計算“嵌入”現有課程體系的方法,設計有針對性的大數據與云計算的教學目標、內容、實踐以及評價方法,從而更好的培養具備大數據相關技術能力基礎的本科人才[2][3]。
從現有的教學過程和反饋來看[4][5][6],大數據與云計算是一門應用性強、綜合性高、難度較大的課程,欲開展教學,學校在現有課程中需要滿足如下條件:首先需要保證在基礎課程方面為學生打下較為堅實的技術和能力基礎;其次,各門課程都牢固樹立以培養學生實踐能力、工程能力為核心的培養目標;最后,在課程體系建設、教學內容安排以及學生考核評估方面貫徹以動手能力和實踐創新能力為依據的原則。
蘇州科技大學電子與信息工程學院已經具備了較為堅實的基礎,計算機科學與工程專業分別入選了“江蘇省地方高校服務外包人才試點專業”、“江蘇省卓越工程師教育培養計劃(軟件類)”,建立了一套以培養實踐創新能力為核心的立體化的培養方案和計算機課程體系,其教學內容和學生考評在近幾年的教學中進行了充分的實踐檢驗,此外還通過“學生研究訓練中心”搭建了計算機專業的學生科研訓練平臺,學生的基礎技術能力、創新實踐能力培養都能夠得到保障。
在上述基礎上,基于“嵌入式”的建設思路,使用模塊化建設方法,綜合大數據與云計算的課程特點,提出了相應的課程設置思路,將其“嵌入”現有的課程體系中,其設置思路及建設后的課程體系如圖1所示。

圖1 “嵌入式”大數據與云計算課程設置思路
該體系將大數據與云計算課程“嵌入”現有課程體系過程中,其前期支撐課程為傳統計算機基礎知識和基礎能力課程,后續發展課程則為具體特色應用方向,從而體現大數據與云計算課程的核心和關鍵作用。
在上述思路指導基礎上,本校在大數據與云計算課程的教學組織方面也進行了相應的探索,主要從如何銜接和協同現有課程體系方面入手,從模塊化、實踐化角度,通過與現有課程相關聯的實踐案例驅動和典型場景設計等,在教學內容組織、學生組織和管理以及教學效果的考核與評定三個方面展開討論。
大數據與云計算課程的教學內容本身覆蓋面較廣,知識點分散,另外還需要考慮與現有課程體系的銜接和協同,因此教學內容組織的主要做法包括理論知識點的模塊化劃分和實踐內容的案例驅動與典型場景設計,分別說明如下。
1.理論知識點的模塊化劃分
課程教學內容采用模塊化協作體系,分三個模塊:框架平臺及運維、大數據存儲技術、大數據分析與處理技術,三個模塊具體說明如下。
模塊1:框架平臺與運維,主要教學內容包括:云計算與大數據技術概述(云計算技術的歷史演化及特點、云計算平臺相關的Linux系統基本操作方法、Google相關的云計算、虛擬化技術和計算框架介紹、基于Google平臺的典型大數據應用場景);基于Google File Systemde的分布式文件平臺配置和運維(基于典型場景的GFS、Hadoop等應用平臺的搭建方法、常用的Hadoop配置運維方法、MapReduce Job的運行過程與原理);Spark部署及應用(基于典型場景的Spark生態系統、Spark架構功能和技術特點、Spark的安裝和配置)。
模塊2:大數據存儲技術,主要教學內容包括:基于Google File System的分布式數據存儲技術(GFS、Colossus以及HDFS系統架構與原理、相關平臺功能與運行原理、相關分布式文件系統基本操作方法);基于Google技術的數據庫技術基礎(Bigtable、HBase、Hive等非關系型數據庫的技術特點和典型應用場景、Hive等基于分布式文件數據倉庫的技術特點和典型應用場景);基于Google技術非關系型數據庫應用(Bigtable、HBase、Hive等的數據庫體系結構及配置運維方法,Bigtable、HBase的基本操作方法及典型應用場景,基于Hive的HiveQL基本操作以及典型應用場景)。
模塊3:大數據分析與處理技術,主要教學內容包括:基于Map-Reduce的大數據分析技術(分布式計算理論初步、Map-Reduce編程框架和數據流處理流程、Map-Reduce編程的分布式輸入與輸出、基于Eclipse的Map-Reduce編程環境配置與使用和基本開發技術);基于Google技術的數據分析與處理(面向BigTable、HBase非關系型數據庫的數據分析和處理技術、面向Hive分布式文件的數據倉庫的數據分析和處理技術);包括Caffeine引擎在內的Google新技術及典型應用場景介紹。
2.基于案例驅動和典型場景設計的實踐內容設計
與理論知識相對獨立的特點不同,實踐內容設計則可以充分考慮與現有課程的協同,尤其是現有課程在實踐方面的協同,具體設計安排如表1所示。

表1 實踐內容及協同課程設計
從表中可以看出,每個模塊都有相關的協同課程,因此在實驗指導、操作以及評價時可以充分考慮將已有課程的知識點以及實驗相連接,例如Hadoop平臺的安裝與Linux的操作命令協同,Hbase的存儲操作與數據結構的算法協同;MR編程思路及步驟與程序設計基礎和算法分析課程協同,等等,只要能夠將實踐內容的設計與相關課程進行充分協調,最終都能很好的與課程進度相融合。
除了和其他課程協調以外,每個模塊的實踐內容之間也能夠充分協同,即不同模塊的實踐最終可以匯總為一個整體案例,并與JavaEE開發技術、Web應用開發等課程進一步融合,從而完成一個具備較為完整功能的實際商業應用,下面給出幾個參考案例。
案例1:帶推薦系統的電子商務平臺設計與實現,基于大數據與云計算平臺部署,能夠對用戶購買活動數據進行包括關聯性等在內的大數據分析,從而進行推薦,并基于Web或APP向用戶提供訪問的應用平臺。
案例2:搜索引擎設計與實現,基于大數據與云計算平臺部署,能夠對網頁進行爬取以及進行PageRank等在內的大數據分析,從而實現搜索,并基于Web或APP向用戶提供訪問的應用平臺。
案例3:餐飲評價網站設計與實現,基于大數據與云計算平臺部署,能夠對用戶餐飲活動和評價進行統計等大數據分析,從而進行評價、推薦,并基于Web或APP向用戶提供訪問的應用平臺。
3.教學課時安排和組織方法
作為一門實踐課,從本校現有反饋來看,大數據與云計算課程需要增加實踐學時,使其達到所有學時的一半左右較為合理,除此以外,實踐案例和場景大多需要團隊討論和合作,因此還需要安排一定的課外時間,進行項目中的需求討論、分析、概要框架的設計以及用戶手冊的編寫等,而理論內容教學則可壓縮。
具體組織方面,學生先確定所進行的案例和場景,在項目啟動前,教師根據場景安排確定較為具體的目標,在每個模塊階段開始時讓學生團隊討論、分析需求,然后分階段部署平臺,實現框架,設計核心算法,完成詳細設計。學生進行開發實現、測試之后還要再回到課堂,完成用戶手冊等文檔工作。最后,每個小組的具體應用需要在課堂上進行公開演示,通過全班學生和教師的評價之后才算完成實驗。
根據軟件開發的需求,以上三個模塊的項目進行過程中,學生應以團隊方式完成,但由于每個項目的難度和內容并不一致而呈增量式發展趨勢,因此學生的團隊組成也并非一成不變,筆者采取以下方案:
在課程第1模塊階段,不采用團隊方式,所有學生獨自完成任務,教師組織學生互相考評,從而方便學生互相之間了解技術能力、思考方式以及個人喜好等因素,利于在第2模塊階段開始進行自由組隊,最終全班按4~6人左右組成若干個團隊。為了避免團隊間過度的能力不均衡,教師可以對組團進行微調。
除了組團以外,教師還需要在每個模塊階段開始前進行一定的輔導。特別是在前兩個模塊階段,由于學生一般都是第一次接觸類似項目,教師應該詳細介紹項目的設計流程,尤其應該介紹其他課程如Linux操作系統、數據結構、算法與程序設計等方面的知識,另外幫助學生做好分組工作,指派組長及成員的工作內容,并強調分工合作。另外,每次模塊階段之前,教師還要幫助學生做需求分析,提供一些建議,引導學生設計一個合理的目標。具體實踐中,教師還要幫助學生處理一些算法以及設計方法方面的輔導工作。總之,教師輔導的重點在于幫助學生學會自己解決問題,而不是幫助學生解決問題,即“授人以漁”,而非“授人以魚”。
學生在剛接觸一門課程的時候,最關注的問題往往是如何通過考試。大數據與云計算課程的最終成績由考試成績和項目實踐成績組成,其中考試成績只占30%,而剩余部分全部依賴于學生的項目實踐成績。因此,學生只有在平時就努力學習,努力完成項目實踐,才能獲得良好的成績,這樣不僅可以使日常教學獲得良好的效果,也減輕了學生考試的壓力。
項目實踐成績的組成則由演示陳述、平臺運維、算法設計等類別構成,其中演示陳述將占較大比重,該部分成績的評定方法為:每個項目階段工作完成之后,用公開演示的辦法來引導學生參與評價,由于是公開評價,所以每個學生小組都處在競爭之中,另外演示需要學生上臺演講,也培養了學生口才等一些綜合素質方面的才能。最后將各方面的成績通過綜合,構成平時成績,成績較為公平和公開。
通過本校近兩年的實踐,基于“嵌入式”思想的大數據與云計算這門課程取得了良好的教學效果,整體而言,“嵌入式”大數據與云計算課程具備以下優勢:
(1)能有效結合現有課程的培養特色,體現出寬口徑教學課程以及學生實踐能力訓練的優勢,能夠為學生開展大數據應用和分析課程學習提供堅實的基礎。
(2)采用“案例驅動、典型場景教學、理論與實踐一體化”的教學方法,遵循了高等工程教育的理念和認知規律。
(3)多模塊、分階段的項目案例,促進學生的自主學習能力、團隊協作能力、交流溝通能力的提升。
(4)充分呼應現有學科培養方法和目標,培養學生的創新思維與創新能力,全面開發學生的潛力。
今后,我們在下一步的課程教學改革過程中將采取更有深度和廣度的研究,以使得大數據與云計算課程和計算機學科傳統課程結合得更為緊密,同時深化大數據及相關技術的核心和關鍵性,為計算機學科教育發展提供思路和支撐。