曹潔 崔霄
摘要:新工科是基于國家戰(zhàn)略發(fā)展新需求、國際競爭新形勢、立德樹人新要求而提出的我國工程教育改革方向,是對工科學(xué)科建設(shè)的優(yōu)化再造和內(nèi)容升級,新工科的建設(shè)和發(fā)展有重要的意義。面向新工科,當(dāng)前誰能更好地處理、分析數(shù)據(jù),誰就能真正搶得時代的先機。研究數(shù)據(jù)分析課程的內(nèi)容設(shè)置,能很好地培養(yǎng)學(xué)生的創(chuàng)新能力與邏輯思維能力。本研究基于當(dāng)前數(shù)據(jù)分析最重要的編程語言Python,從數(shù)據(jù)結(jié)構(gòu)特點、學(xué)生已有的編程基礎(chǔ)、數(shù)據(jù)來源的多樣性、數(shù)據(jù)分析流程、數(shù)據(jù)分析實戰(zhàn)等五個方面探討Pvthon數(shù)據(jù)分析課程教學(xué)內(nèi)容。
關(guān)鍵詞:新工科;Python;知識體系;數(shù)據(jù)分析;教學(xué)內(nèi)容
近年,以物聯(lián)網(wǎng)、云計算、大數(shù)據(jù)、移動互聯(lián)網(wǎng)、人工智能、區(qū)塊鏈等為代表的新一代信息技術(shù)深刻地影響了人類社會的發(fā)展,高等教育領(lǐng)域也不例外。新一代信息技術(shù)也在改變著傳統(tǒng)高等工程教育的實現(xiàn)方式和教育內(nèi)容,并促使新工科的產(chǎn)生和發(fā)展。
一、新工科是工科教育發(fā)展的必然
工科是指應(yīng)用科學(xué)原理,結(jié)合生產(chǎn)實踐所積累的技術(shù)經(jīng)驗而發(fā)展起來的學(xué)科,主要特征有三:一是依據(jù)一定的科學(xué)技術(shù)原理,二是造出人工物(機器),三是解決實際問題。傳統(tǒng)工科教育過分強調(diào)課程的工程性,忽視了對學(xué)生人文素質(zhì)等方面的培養(yǎng),同時傳統(tǒng)工科的課程設(shè)置不太合理,培養(yǎng)出來的學(xué)生很難適應(yīng)新的社會發(fā)展要求。高校亟需新的工科教育教學(xué)理念,來培養(yǎng)具有創(chuàng)新能力的新興工程技術(shù)人才。
2017年12月,國務(wù)院辦公廳《關(guān)于深化產(chǎn)教融合的若干意見》提出,“適應(yīng)新一輪科技革命和產(chǎn)業(yè)變革及新經(jīng)濟發(fā)展,促進學(xué)科專業(yè)交叉融合,加快推進新工科建設(shè)”。新工科是基于國家戰(zhàn)略發(fā)展新需求、國際競爭新形勢、立德樹人新要求而提出的我國工程教育改革方向,是對工科學(xué)科建設(shè)的優(yōu)化再造和內(nèi)容升級,也是對未來工科學(xué)生培養(yǎng)目標(biāo)、培養(yǎng)方式、培養(yǎng)內(nèi)容的探索。新興的工科人才需要具備三大素質(zhì)和特點:一是他們不僅要在某一學(xué)科上研究精深,其知識結(jié)構(gòu)還應(yīng)具有“多學(xué)科交叉融合”的特征:二是他們不僅能夠運用所掌握的知識解決現(xiàn)有的問題,還應(yīng)具備學(xué)習(xí)新知識、新技術(shù)以應(yīng)對未來發(fā)展出現(xiàn)的新難題的能力,并能對未來技術(shù)和產(chǎn)業(yè)發(fā)展起到積極的引領(lǐng)作用:三是他們不僅要有精湛的技術(shù),還要熟悉經(jīng)濟、社會和管理等知識,即具有良好的人文素養(yǎng)。因而,研究適應(yīng)新一輪科技革命和產(chǎn)業(yè)變革及新經(jīng)濟發(fā)展的工科課程知識體系是當(dāng)前新工科建設(shè)的重要內(nèi)容。
二、Python數(shù)據(jù)分析課程
當(dāng)今世界對信息技術(shù)的依賴程度日漸加深,每天都會產(chǎn)生和存儲海量的數(shù)據(jù)。面對海量數(shù)據(jù),誰能更好地處理、分析數(shù)據(jù),誰就能真正搶得時代的先機。對數(shù)據(jù)的分析已經(jīng)成為了企業(yè)、政府非常重要且迫切的需求。Python程序設(shè)計語言是一種解釋型、面向?qū)ο?、動態(tài)數(shù)據(jù)類型的高級程序設(shè)計語言,具有開源、簡潔易讀、快速上手、多場景應(yīng)用等優(yōu)點。Python程序設(shè)計語言在數(shù)據(jù)分析與挖掘領(lǐng)域中的地位非常突出,已經(jīng)當(dāng)仁不讓地成為數(shù)據(jù)分析人員的一把“利器”。數(shù)據(jù)分析人員用適當(dāng)?shù)臄?shù)學(xué)模型對收集來的大量數(shù)據(jù)進行行業(yè)應(yīng)用分析,以求最大化地開發(fā)數(shù)據(jù)背后隱藏的價值,充分發(fā)揮數(shù)據(jù)的預(yù)測指導(dǎo)功能。其目的在于把隱沒在雜亂無章的數(shù)據(jù)中的有用信息集中、萃取和提煉出來。工科不同學(xué)科之間差異很大,不同學(xué)科對數(shù)據(jù)分析的內(nèi)容及能力要求差別也很大。在此,筆者主要以工科中軟件工程學(xué)科為例,基于當(dāng)前數(shù)據(jù)分析最流行的Python程序設(shè)計語言來探討數(shù)據(jù)分析的知識體系以及具體應(yīng)用的實現(xiàn),以期為新工科數(shù)據(jù)分析課程建設(shè)提供一種參考。
三、面向新工科的Python數(shù)據(jù)分析課程內(nèi)容
不同的人對數(shù)據(jù)分析有不同的定義,常見的定義有:從大量數(shù)據(jù)中提取出想要的信息就是數(shù)據(jù)分析:有針對性地搜集、加工、整理數(shù)據(jù),并采用統(tǒng)計、數(shù)據(jù)挖掘技術(shù)分析和解釋數(shù)據(jù)等就是數(shù)據(jù)分析:基于行業(yè)目的,有目的地搜集、整理、加工和分析數(shù)據(jù),提煉有價值的信息就是數(shù)據(jù)分析。綜合上述定義,筆者認(rèn)為數(shù)據(jù)分析是用適當(dāng)?shù)臄?shù)據(jù)整合方法對收集來的大量數(shù)據(jù)進行整合,為從中發(fā)現(xiàn)因果關(guān)系、內(nèi)部聯(lián)系和業(yè)務(wù)規(guī)律而對數(shù)據(jù)加以詳細(xì)研究和概括總結(jié)的過程。筆者具體地將Python數(shù)據(jù)分析課程分為五部分教學(xué)內(nèi)容,下面分別論述。
第一部分,新工科要求課程內(nèi)容要有利于培養(yǎng)學(xué)生的創(chuàng)新能力和工程實踐能力。數(shù)據(jù)分析是隨著大數(shù)據(jù)技術(shù)、云計算技術(shù)、移動互聯(lián)網(wǎng)、Web2.0技術(shù)的發(fā)展以及類型多樣的海量數(shù)據(jù)的涌現(xiàn)而出現(xiàn)的一門技術(shù),要求學(xué)生明確數(shù)據(jù)分析與大數(shù)據(jù)處理、大數(shù)據(jù)存儲、云計算、移動互聯(lián)網(wǎng)等技術(shù)之間的關(guān)系,了解大數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)特點。當(dāng)前比較常見的數(shù)據(jù)結(jié)構(gòu)有結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)、列式數(shù)據(jù)等,學(xué)生要深刻理解數(shù)據(jù)結(jié)構(gòu)的特點及價值所在,要在這個基礎(chǔ)上創(chuàng)新數(shù)據(jù)分析的方法,而不僅僅是掌握傳統(tǒng)的數(shù)據(jù)挖掘、數(shù)據(jù)倉庫等技術(shù)。
第二部分,課程以Python程序設(shè)計語言的學(xué)習(xí)為數(shù)據(jù)分析技術(shù)提供支撐。但對軟件工程學(xué)科的學(xué)生來說,他們已經(jīng)具備了基本的程序設(shè)計能力,因而教師只需簡要介紹Python程序設(shè)計語言的特點、Python安裝方法、編寫python代碼的方式等內(nèi)容,而要重點介紹python的基本數(shù)據(jù)類型,如number(數(shù)值)、string(字符串)、list(列表)、tuple(元組)、dictionary(字典)、set(集合)的操作命令。之后,教師會向?qū)W生講授Pvthon程序控制結(jié)構(gòu)、函數(shù)、類、正則表達式、文件與文件夾、數(shù)據(jù)可視化等知識。
第三部分,由于數(shù)據(jù)來源的多樣性、數(shù)據(jù)模式的多樣性,教師要向?qū)W生介紹Python各種類型數(shù)據(jù)庫的的常用操作。課程重點在于教師基于連接的數(shù)據(jù)庫特點及相應(yīng)的數(shù)據(jù)存儲模式特點開展數(shù)據(jù)分析的創(chuàng)新性應(yīng)用,從而讓學(xué)生綜合掌握Pvthon數(shù)據(jù)存儲的相關(guān)知識。因此,該門課程也需引入python語言來開發(fā)數(shù)據(jù)存儲的實際系統(tǒng)。課程教師會系統(tǒng)介紹python操作Mysql數(shù)據(jù)庫、MongoDB數(shù)據(jù)庫Pvthon操作、SQLite數(shù)據(jù)庫、Redis數(shù)據(jù)庫的常用方法。
第四部分,課程將以數(shù)據(jù)分析的流程為重點。數(shù)據(jù)質(zhì)量分析主要包括缺失值分析、異常值分析、一致性分析和數(shù)據(jù)特征分析;數(shù)據(jù)預(yù)處理主要包括講解數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)規(guī)范化、數(shù)據(jù)離散化、數(shù)據(jù)規(guī)約和數(shù)據(jù)降維。在數(shù)據(jù)分析方法方面,教師重點講解相似性和相異性的度量以及分類分析方法、回歸分析方法、聚類分析方法。值得注意的是,數(shù)據(jù)質(zhì)量分析是數(shù)據(jù)分析中數(shù)據(jù)準(zhǔn)備過程的重要環(huán)節(jié),是數(shù)據(jù)預(yù)處理的前提,也是數(shù)據(jù)分析結(jié)論有效性和準(zhǔn)確性的基礎(chǔ)。沒有高質(zhì)量的可信數(shù)據(jù),構(gòu)建的數(shù)據(jù)分析模型將是“空中樓閣”。數(shù)據(jù)質(zhì)量分析的關(guān)鍵任務(wù)是檢查原始數(shù)據(jù)中是否存在臟數(shù)據(jù)。所謂臟數(shù)據(jù),一般是指不符合行業(yè)應(yīng)用要求、不能直接進行相應(yīng)分析的數(shù)據(jù),具體包括缺失值、異常值、不一致的值、重復(fù)數(shù)據(jù)及含有特殊符號的數(shù)據(jù),其主要表現(xiàn)形式為數(shù)據(jù)缺失、數(shù)據(jù)重復(fù)、數(shù)據(jù)錯誤、數(shù)據(jù)不可用等。
同時,數(shù)據(jù)分析工作始終是以數(shù)據(jù)為中心開展的,分類、聚類、回歸、關(guān)聯(lián)分析以及可視化等工作的順利進行完全是建立在良好的數(shù)據(jù)輸入的基礎(chǔ)之上的。采集到的原始數(shù)據(jù)通常來自多個異構(gòu)數(shù)據(jù)源,數(shù)據(jù)在準(zhǔn)確性、完整性和一致性等方面存在一些問題。在數(shù)據(jù)分析和數(shù)據(jù)挖掘之前,教師要讓學(xué)生明確,首先要做的就是對數(shù)據(jù)進行預(yù)處理,處理數(shù)據(jù)中的臟數(shù)據(jù),提高數(shù)據(jù)分析的準(zhǔn)確性和有效性。數(shù)據(jù)預(yù)處理有多種方法,如數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)規(guī)范化、數(shù)據(jù)離散化、數(shù)據(jù)規(guī)約等。
第五部分,教師要講解數(shù)據(jù)分析實戰(zhàn)。筆者在這里選取文本情感分析(具體內(nèi)容主要包括:電商手機評論數(shù)據(jù)的采集、中文分詞方法、文本的關(guān)鍵詞提取、中文文本情感傾向分析、主題模型和運用LDA主題模型對電商手機評論進行主題分析等)作為案例,這是因為在購買商品時消費者希望通過其他用戶發(fā)表的評論來確定是否應(yīng)該購買。同時,許多商家也希望通過用戶評論來及時了解產(chǎn)品的優(yōu)缺點及用戶滿意度。文本情感分析技術(shù)可自動地從海量評論語料中挖掘有用信息,并對這些信息進行組織和分類,然后直觀展示給用戶和商家。此外,通過大眾輿論導(dǎo)向分析,政府部門可以了解公眾對熱門事件的情感傾向,從而掌握大眾輿論導(dǎo)向,為政府制定相關(guān)政策提供一定支持等。