
摘? 要:針對目前研究生專業選修課教學中采用教師講課、學生寫讀書報告等教學形式,缺少工程素養的系統性訓練等問題,在“大數據處理技術”課程中,探究專業選修課的教學改革方法。在講授大數據知識的同時,通過設計與實現小組項目,培養學生系統分析與設計能力,以及團隊協作和解決工程問題的能力。實踐證明,面向能力培養的教學方式效果良好,學生高度認可。
關鍵詞:新工科;大數據;工程能力;教學研究
中圖分類號:TP392? ? ?文獻標識碼:A
文章編號:2096-1472(2021)-01-47-03
Abstract: Currently, teacher lectures and reads reports are popular teaching methods in current postgraduate professional elective courses, which lacks of systematic training of engineering literacy. Therefore, it is necessary to explore a new teaching method for data processing technology course. The new teaching method aims to cultivate students capabilities of system analysis and design, teamwork and engineering problem solving capabilities, through design and implementation of group projects. The capability-oriented teaching method has proved to be effective and highly recognized by students.
Keywords: new engineering; big data; engineering ability; teaching research
1? ?引言(Introduction)
新工科致力于培養德才兼備的具有深度學習、人工智能和大數據處理與分析等多元化技術的創新型人才,使之具有較強的工程實踐能力[1]。隨著大數據應用的興起,對大數據應用人才的需求急劇增長。大數據應用人才應具備數據科學相關的專業知識和工程能力。專業知識包括人文社會科學知識、數據科學基礎知識和數據科學專業知識[2]。大數據創新型人才的培養首先必須培養學生跨學科的數據思維,同時還應培養他們具備工程應用的能力。“大數據處理技術”是湖南大學信息科學與工程學院面向碩士研究生開設的選修課程,旨在系統地介紹大數據處理和應用開發相關知識與技能[3]。“大數據處理技術”課程在傳授研究生大數據專門知識的同時,特別強調培養他們解決新工科工程問題的能力。
2? ?課程現狀(Course status)
目前國內一些大學研究生選修課程的教學形式主要是采用任課老師講解部分內容,博士生做幾個技術講座,研究生寫一篇讀書報告或者是寫一篇課程論文,老師根據讀書報告或者課程論文給出學生課程成績。這樣的教學方式存在著一些問題,要學生在一個學期的課程學習中寫出一篇有價值的論文實在是困難。如何提高研究生課程的授課質量?如何實現從知識傳授到能力培養的轉變?如何把學生的被動學習轉變為自主學習,提高學生的終身學習能力?這些問題需要高等教育的管理人員和任課教師深入思考。
3? ?課程教學模式(Course teaching mode)
目前許多大學都開設大數據分析相關課程,不同大學開設的大數據課程,其知識的側重點都不一樣。但是,基本上可以分成下面幾類:一是針對數據分析和數據挖掘的課程;二是針對并行與分布式編程架構和模型的課程,主要是對Hadoop MapReduce以及Spark生態系統的講述;三是面向非結構化數據處理與存儲管理的NoSQL數據庫和NewSQL數據庫技術以及面向云存儲的課程[4]。
通過查閱世界一流大學大數據相關課程,采用下面的知識點作為大數據應用技術課程的主要教學內容:大數據存儲與管理技術、大數據編程模型、大數據分析和可視化技術,以及商業智能和數據湖等新的大數據應用技術[5]。
課程學習是研究生面臨的一個重要學習過程,專業課程學習可以使研究生掌握更廣泛的專業知識,在未來的研究中發揮重要作用。研究生專業選修課教學應該根據課程的性質和學生的特點,采用不同于以往的教學方式和教學模式。教學模式不應該是單一的,需要結合課程特點采用多種教學方法。在“大數據處理技術”研究生課程教學中,采用授課、技術講座、課程實驗、討論會、課程小組項目等多種方式進行。課程講解大數據生態系統中的軟件架構和相應的軟件產品與處理技術,對學生難以理解的重要理論知識作出詳細和深入闡述,使學生掌握核心的數據科學專業知識。針對每一個重要的知識環節,安排獨立的實驗,學生必須單獨完成。通過實驗,使學生掌握大數據生態系統的基礎和核心技術,結合實際的操作和編程實驗,鞏固課堂教學內容,使學生將所學理論與實際技能相結合,能夠應用主流的大數據開發技術和開發工具。此外,課程需要結合當前研究的熱點問題,通過提出問題和分小組完成一個大數據相關的工程項目。通過運用軟件工程的原理與方法,小組成員全程參與問題描述、需求分析、算法(系統)設計、編程實現到測試等每一個開發環節,培養學生系統分析與設計能力以及團隊協作和解決工程問題的能力。
4? ?課程教學目標(Course teaching objectives)
大數據已經成為企業和公司使用信息增進用戶體驗和改變運營模式的極其重要的新技術。如何有效使用大數據?如何從大數據分析中獲取知識和智慧?“大數據處理技術”課程將把最新的大數據處理技術介紹給學生,幫助學生掌握從海量的異構數據源中對大數據進行存儲與管理、高效處理、有效應用與分析的技能。
4.1? ?理論教學目標
課程涵蓋大數據技術的基本概念、大數據生態系統、大數據存儲模型、大數據編程模型、大數據分析技術、大數據可視化技術和大數據主流應用技術。
4.2? ?工程能力培養目標
學生解決工程問題能力的培養通過課程實驗以及設計課程中綜合性的工程項目來達成。工程能力的培養問題不僅僅是個人的問題,工程問題的解決需要團隊協作。“大數據處理技術”課程希望通過項目小組的形式,培養學生團隊合作、有效溝通、項目管理和終身學習的能力[6]。(1)團隊合作,讓學生分成討論與項目小組,因為工程項目無法一人獨立解決,需與他人合作。(2)有效溝通,討論課讓學生書面及口頭報告,大家一起討論,形成最終解決方案。(3)主動學習、終身學習,讓學生主動學習,減少教師課堂講授。學生須設計實驗來驗證、解決問題,須自己或團隊搜集資料、尋求資源、增進專業素養。(4)項目管理,讓學生嘗試執行項目,規劃任務和時間。
5? ?課程教學實施(Course teaching implementation)
5.1? ?課時安排
“大數據處理技術”為研究生選修課,共48學時,課程通過課堂講授、課程實驗、文獻閱讀、小組討論、課程小組項目和期末考試等環節來組織教學。教師用32課時講解核心的大數據生態系統架構和關鍵技術,選修課程的學生2—4人組成項目小組,必須完成一個與大數據處理技術相關的工程項目。教師安排4個課時點評學生的文獻閱讀報告和小組擬進行的工程項目開題報告,對工作量、難易程度、實驗數據來源、關鍵技術和算法等方面進行把關。每個項目小組就項目的開題報告、實驗環境搭建、實現的關鍵技術與算法設計、編程實現、系統測試、問題描述與解決方案等內容在課堂上進行討論。由各研究生小組成員講解或演示,共6次,12課時,教師參與討論與引導,學生遇到問題時給出解決方案的建議。
5.2? ?理論教學內容
“大數據處理技術”課程的主要內容分為四個部分:大數據處理與算法、大數據存儲與管理、大數據分析與可視化、大數據應用技術。課程內容和主要知識點如表1所示。
5.2.1? ?大數據存儲與管理
近十多年來,對存儲和處理大規模數據集的需求不斷增長,一直推動著數據存儲技術和并行計算技術以及數據庫技術快速發展。從本地存儲到集群,從分布式存儲到云數據庫存儲,數據存儲方法得到了極大的增強[7]。數據庫系統已從傳統的關系數據庫系統進化到最新的基于NoSQL和支持數據庫完整性約束的NewSQL數據庫系統。大數據除結構化的數據外,主要涉及大量的非結構化數據,NoSQL和NewSQL是非結構數據存儲的新方法。大數據存儲建立在分布式文件系統之上,HDFS是使用最廣泛的分布式文件系統。NoSQL數據庫的類型很多,有文檔的、圖的、列簇的和鍵值等[8]。課程將講解大數據存儲模型和管理技術,大多數NoSQL數據庫系統都是開源的,因此很容易納入大數據課程的實驗環節中。
5.2.2? ?大數據編程模型
并行分布式計算與處理模型是大數據應用系統架構的核心。大數據編程模型提供了編寫大數據應用系統通用的接口,為構建大數據應用程序系統提供了簡單的途徑。大數據通常涉及在集群上的分布式并行計算技術。MapReduce是主流的并行計算算法框架,它可以支持各種數據密集型程序,是事實上的大數據編程模型。大數據處理的核心是采用兩個基本過程對象Mapper和Reducer,它通過兩種特殊的計算方式Map和Reduce歸約到集群不同節點上進行處理[9]。大數據處理另外一個廣泛應用的算法框架是基于Spark平臺中實現的彈性分布式數據集RDD(Resilient Distributed Dataset)。通過使用RDD,用戶不必擔心底層數據的分布式特性,只需要將具體的應用邏輯表達為一系列轉換處理,就可以實現管道化,從而避免了中間結果的存儲,大大降低了數據復制、磁盤I/O和數據序列化的開銷。
課程將通過比較具體的代碼示例,全面闡述大數據框架Hadoop和Spark中的不同編程模型。
5.2.3? ?大數據分析與可視化
可視化已成為從大數據分析結果中提取有意義信息并帶來價值的一項核心技術。有效地工具和技術,可以輕松地可視化雜亂的海量大數據,通過可視化大數據來改善企業的經營決策能力。為了實現強大的數據分析和出色的可視化,在Hadoop上使用R語言將提供一個彈性的數據分析平臺。R語言提供了最流行的開放源代碼數據統計分析軟件包,Hadoop強大的數據處理能力和R強大的可視化分析能力相結合的Rhadoop,提供了很好的大數據分析平臺。課程將介紹R語言和Tableau等可視化工具。
5.2.4? ?大數據應用技術
隨著大數據技術的不斷更新和迭代,數據管理工具得到了飛速的發展,相關概念層出不窮,如從最初決策支持系統(DSS)到商業智能(BI)、數據倉庫、數據湖、數據中臺等。數據湖是企業所有數據的單一存儲,包括源系統數據的原始副本,以及用于報告、可視化、分析和機器學習等任務的轉換數據。數據湖可以包括各種類型的數據:關系數據庫的結構化數據、半結構化數據(CSV、日志、XML、JSON);非結構化數據(電子郵件、文檔、PDF)和二進制數據(圖像、音頻、視頻)。Hadoop是最常用的部署數據湖的技術。數據中臺是一個承接技術、引領業務、構建規范定義的智能數據處理平臺。許多企業已經開始嘗試使用大數據和云技術來構建數據湖和數據中臺,并支持數據驅動的智能決策。如今,世界上頂級的公司和大型企業已經部署或正在部署數據湖和數據中臺。課程將向學生介紹這些新的技術,讓學生了解企業大數據應用的真實現狀。
5.3? ?課程實驗設置
大數據處理技術課程安排了多次實驗,老師編寫了實驗指導書,對大數據實驗環境的構建、開發平臺和開發工具都有基本的規定。對大數據主要技術都安排了至少一次的實驗內容,需要學生在規定的時間內、課外獨立完成。所有實驗為一個整體,有其延續性,如果不能完成當次實驗將會影響下次實驗。每次實驗后,必須認真填寫實驗報告,在要求的時間提交實驗報告的電子版,超過規定時間,該次實驗成績以零分計。
5.4? ?小組課程項目
大學的核心任務是培養人才,大學教學的本質應該是以學生為中心,以能力為本位的研究型教學,以培養學生的自主學習、終身學習、研究性學習和解決工程問題的能力。“大數據處理技術”課程教學體系的另外一個重要組成部分是學生按2—4個人組成一個課程討論與項目小組,項目小組的人數不能超過5人。學生自選具有一定難度和工作量的與大數據處理相關的研究或工程類題目,鼓勵結合導師的研究工作選擇項目,完成一個項目的開發。各小組進行查閱資料、文獻閱讀、進度分享、實驗操作、成果展示等多個階段。在查閱文獻、資料的過程中,訓練學生的文獻檢索能力以及理解能力,組內每位成員參與討論,增強溝通能力。
(1)項目小組的組織與控制
項目小組成員要求有熟悉Java、Linux或Unix等技術的學生。小組長負責任務的劃分,組織、討論詳細設計,組織和協調本小組的開發、文檔整理等工作,確保開發過程中及時完成各個里程碑任務。研究生課程沒有配備助教,但是“大數據處理技術”課程采用自愿報名的方式選擇一位課代表,負責協助主講教師管理課程的相關事宜,包括實驗報告的歸檔,記錄每組討論內容。項目的討論課上,要求所有小組成員都能有機會上講臺講解,而不只是項目組長的事情,鍛煉學生的表達能力。
(2)項目小組需要提交的技術文檔
課程需要填寫、檢查、整理和歸檔項目的過程報告。開題報告的目的是為了評估課程設計選題的內容和難度是否達到一定要求,主要內容包括:小組成員信息(人員、學號、聯系信息)、各個成員初步的項目分工計劃、項目題目、研究問題背景、主要技術難點、主要解決方法和算法設計思路等。小組項目總結報告主要包括的內容:小組信息(人員、學號、聯系信息);小組具體的分工,需要明確說明各成員在整個課題中分工負責完成的內容,所做貢獻的比例;研究問題的背景、主要技術難點、解決方法和算法設計思想;詳細的設計說明,包括詳細算法設計、程序框架、功能模塊、主要類的設計說明、程序運行和實驗結果的說明及分析,在完成系統的功能、性能、擴展性等方面存在的不足和可能的改進之處。
5.5? ?成績評定方法
課程強調學生大數據素養和能力培養,課程的考評采用課程實驗成績、小組項目、考勤和期末考試綜合評定的方法進行,期末成績=個人課程實驗25%+小組項目35%+期末考試30%+考勤10%。
6? ?結論(Conclusion)
“大數據處理技術”課程的授課,讓學生熟悉了大數據管理和分析的基本概念和主流技術;能夠勝任處理大數據應用程序所面臨的挑戰,并可提出可擴展性的解決方案。“大數據處理技術”課程采用學生小組項目的方式,在教師講解專業知識的同時,學生通過一個小組,完成大數據應用開發項目工程能力的培養。通過論文宣講、學生匯報討論,教師依據自己的經驗點評,學生的收獲很大。這一教學形式很受歡迎,效果良好。
大數據技術涵蓋的主題非常多,要在一個學期的課程中全面涵蓋大數據處理和應用的技術是不現實的,還有許多重要的技術,比如大數據的數據采集與預處理、大數據流處理以及大數據安全與隱私保護等只能引導學生在課后自學。
參考文獻(References)
[1] 陳燕.新工科研究進展與前瞻[J].天津大學學報(社會科學版), 2020,22(3):214-222.
[2] 田緒紅,鄺穎杰.大數據應用人才的知識、能力、素質結構及其培養[J].計算機教育,2017(8):57-60.
[3] DePratti, R., Dancik, et al. Challenges in designing an introductory course in big data programming[J]. Journal of Computing Sciences in College, 2015, 30(6):104-105.
[4] Adam H. Villa. Motivating the development of an advanced database systems course[J]. Journal of Computing Sciences in College, 2016, 31(3):119-127.
[5] Yuri Demchenko. Big Data Platforms and Tools for Data Analytics in the Data Science Engineering Curriculum[C]. International Conference on Cloud and Big Data Computing, 2019:60-64.
[6] 劉爽,陳鵬,王巍,等.基于工程教育認證背景的民族院校大數據課程體系設計[J].計算機時代,2020(5):74-77.
[7] Xiong,W., Hawley, D., Monismith, D. NoSQL in database education[J]. Journal of Computing Sciences in College, 2015, 30(5):151-152.
[8] Grolinger, K., Higashino, W.A., Tiwari, A.. Data management in cloud environments: NoSQL and NewSQL data stores[J]. Journal of Cloud Computing: Advances, Systems and Applications, 2013, 22(2):1-24.
[9] 劉萍.基于Hadoop與Spark的高校校園大數據平臺研究.軟件工程,2018,21(5):15-18.
作者簡介:
戴牡紅(1964-),男,碩士,教授.研究領域:數據科學.