廖卓凡,鄧澤林,張建明,陳 曦
(長沙理工大學(xué) 計算機與通信工程學(xué)院,湖南 長沙 410004)
隨著信息科技革命進入大數(shù)據(jù)時代,人們開始注意到各行業(yè)產(chǎn)生的海量數(shù)據(jù)中蘊藏著產(chǎn)業(yè)信息和商業(yè)機會,各國的工業(yè)界和學(xué)術(shù)界都爭相研究、發(fā)掘和鼓勵大數(shù)據(jù)分析相關(guān)的技術(shù)工具。我國在大數(shù)據(jù)分析領(lǐng)域的人才培養(yǎng)和技術(shù)革新還處在起步階段,以百度、騰訊、阿里巴巴為代表的互聯(lián)網(wǎng)企業(yè)和以基礎(chǔ)設(shè)施和智能終端提供商為代表的華為公司近兩年對大數(shù)據(jù)分析人才提出了明確的需求,傳統(tǒng)的以掌握C、C++和Java 為主的人才需求市場遭遇了近年以Python 語言為主打的新型人才需求的大革新。Python 是一門面向?qū)ο蟮慕忉屝透呒壋绦蛘Z言,既保持了面向?qū)ο笳Z言在程序設(shè)計上的封裝性和強大功能,又具有解釋型語言的運行快的特點,同時它的開源使得Python 具有其他高級程序語言無法匹敵的科學(xué)計算擴展庫,非常適合大數(shù)據(jù)分析這種數(shù)據(jù)量大,又需要各種科學(xué)計算的應(yīng)用。
在國外用Python 做科學(xué)計算的研究機構(gòu)日益增多,一些知名大學(xué)已經(jīng)采用Python 教授程序設(shè)計課程。例如卡耐基· 梅隆大學(xué)的編程基礎(chǔ)、麻省理工學(xué)院的計算機科學(xué)及編程導(dǎo)論就使用Python 語言講授,MIT 和UC Berkeley 的計算機系最近將他們?nèi)腴T課程的教授語言改成了Python[1]。我國高等教育今年也將Python 語言編入計算機專業(yè)研究生專業(yè)課,甚至非計算機專業(yè)研究生的選修課中。但由于我國高等院校的程序設(shè)計語言教學(xué)模式長期圍繞C/C++/Java 等傳統(tǒng)編程語言研究,從教學(xué)資源到教學(xué)手段,從實驗設(shè)計到考核考查制度都偏于落后,使得計算機專業(yè)研究生不會用,非計算機專業(yè)研究生看不懂,教學(xué)效果不甚理想。
由于大數(shù)據(jù)與人工智能技術(shù)近年對國內(nèi)外各行業(yè)帶來積極可觀的推動效果,如何對大數(shù)據(jù)進行高效的分析,從而提取數(shù)據(jù)中的信息指導(dǎo)決策成為急需解決的問題。Python 語言憑借其語法精煉、輕量級運行效率和強大的開源科學(xué)計算庫成為熱門程序設(shè)計語言[2],并且不再受限于計算機行業(yè),金融、航空、商業(yè)等具有海量數(shù)據(jù)生產(chǎn)能力的行業(yè)也表現(xiàn)出對Python 數(shù)據(jù)分析的急切需求,因此也收到高等院校里各個專業(yè)的重視[3]。但是大學(xué)課堂上的Python 語言及數(shù)據(jù)分析專業(yè)課程的教育模式仍然受傳統(tǒng)高級程序設(shè)計語言的教學(xué)模式影響,使得人才培養(yǎng)目標(biāo)不夠明確[4],忽視了研究生對高級計算機語言學(xué)習(xí)的最終目的是用計算機研究并解決實際問題。同時,陳舊的教學(xué)內(nèi)容也無法反映當(dāng)下亟待解決的問題,無法提高學(xué)生的課堂興趣,隨之而來的是“老師講——學(xué)生聽”的單向教與學(xué)模式?;谝陨戏治?,當(dāng)前的Python語言課程教學(xué)模式無法為社會培養(yǎng)出靈活使用Python 解決問題的高級人才。針對這些問題,采取對策如下。
(1)解決教學(xué)內(nèi)容陳舊且互不關(guān)聯(lián)的問題,教案編寫應(yīng)與實際需求協(xié)同更新。由于大數(shù)據(jù)教材和教案的編寫往往滯后于技術(shù)的發(fā)展,而對學(xué)生的動手編程能力需求越來越新,越來越跨學(xué)科,因此在教學(xué)內(nèi)容的安排上需要實時更新,參照業(yè)內(nèi)最新的大數(shù)據(jù)分析案例組織教案。教學(xué)實施過程不僅限于照本宣科,應(yīng)適當(dāng)加入與本堂課知識點有關(guān)的實際大數(shù)據(jù)分析案例,深入淺出分析知識點的應(yīng)用,不僅強化學(xué)生對理論知識點的理解,也可以培養(yǎng)學(xué)生即學(xué)即用的編程思維。教學(xué)內(nèi)容的安排應(yīng)從基礎(chǔ)到應(yīng)用,由淺到深地逐步推進,且注重各知識點之間的有機關(guān)系,相互協(xié)同創(chuàng)新問題。
(2)解決實驗課程內(nèi)容安排和組織模式沉悶的問題。教師在安排與理論課知識點對應(yīng)的驗證型實驗之外,安排與實際工業(yè)或者科研項目相關(guān)的創(chuàng)新型實驗課題,根據(jù)Python 開發(fā)環(huán)境靈活輕量級的特點,采取學(xué)生自由答題、自主選題、合作完成的“隨時隨地做實驗”的課程組織形式,讓學(xué)生從基礎(chǔ)知識到實戰(zhàn)編程進行一個循序漸進的掌握過程。
(3)解決學(xué)生實踐與創(chuàng)新能力培養(yǎng)不足的問題。以科研或者企業(yè)中的實際問題為導(dǎo)向,要求學(xué)生進行團隊開發(fā),鍛煉學(xué)生的項目領(lǐng)導(dǎo)能力和系統(tǒng)分析、設(shè)計等能力。
(4)解決教學(xué)評價和反饋系統(tǒng)不健全問題。利用信息化實踐教學(xué)平臺來保存學(xué)生的所有成績,通過統(tǒng)計每個學(xué)生的課堂和實驗環(huán)節(jié)的進度與成績來客觀評價學(xué)生的能力,并以此為依據(jù)來進一步完善教學(xué)內(nèi)容。
綜合理工科研究生培養(yǎng)方案,要求不僅掌握Python 基礎(chǔ)語法,并能使用Numpy 庫進行科學(xué)計算,使用matplotlib 庫進行基礎(chǔ)圖形繪制,使用pandas 庫進行統(tǒng)計分析和數(shù)據(jù)預(yù)處理,使用sklearn 進行建模[5]?;谝陨吓囵B(yǎng)需求,設(shè)計大數(shù)據(jù)分析背景下Python 課程教學(xué)模式改革研究框架,如圖1 所示。針對目前Python 課程教學(xué)模式中存在的問題,改革可以從理論教學(xué)、實驗教學(xué)、演練平臺和考核模式方面展開,具體包括4 個方面的研究內(nèi)容。
圖1 大數(shù)據(jù)分析背景下Python課程教學(xué)模式改革研究框架
傳統(tǒng)教學(xué)方式注重基礎(chǔ)知識點講解,理論性強容易削弱學(xué)生興趣。考慮到教學(xué)目標(biāo)之一是讓學(xué)生編寫程序借助計算機的能力研究并實際問題,根據(jù)大數(shù)據(jù)分析需求,重新定位各編程和操作平臺課程的培養(yǎng)目標(biāo),全面深入更新教案,從實際生活相關(guān)聯(lián)的實例出發(fā),運用啟發(fā)式、案例式等多種方式相結(jié)合的教學(xué)實施方案提高動手能力培養(yǎng)。例如,對航空公司客戶價值分析從而鎖定VIP 客戶群,對財政收入預(yù)測分析從而為來年財政投入提供參考,對家用熱水器用戶做行為分析從而改進熱水器功能等案例,就是各行業(yè)極有價值的大數(shù)據(jù)分析案例問題。
另外,在“互聯(lián)網(wǎng)+”時代,很多案例和源代碼可以通過互聯(lián)網(wǎng)共享,學(xué)生也可以自行上網(wǎng)搜索感興趣的案例,從而提高學(xué)習(xí)的主動性?!盎ヂ?lián)網(wǎng)+”的特點之一是與傳統(tǒng)業(yè)深度融合,因此教學(xué)資源可以借用互聯(lián)網(wǎng)資源更新教案、多媒體課件,從而豐富教學(xué)材料,提高課堂互動性,激發(fā)學(xué)生的內(nèi)在學(xué)習(xí)動力。同時,教師設(shè)計簡易的案例作為教學(xué)示例,以身作則演示良好的程序設(shè)計思維和習(xí)慣,能提高學(xué)生編寫代碼的興趣,減少對編程的心理恐懼,從而達到讓學(xué)生編寫出可讀性好和穩(wěn)定性高的程序。進一步地,再結(jié)合“互聯(lián)網(wǎng)+”里的優(yōu)秀案例,讓學(xué)生感受如何編碼才是符合編程規(guī)范,嚴(yán)格按照軟件企業(yè)對規(guī)范編程的要求,潛移默化學(xué)會編寫規(guī)范的和優(yōu)秀的編程代碼。
傳統(tǒng)高級程序設(shè)計語言的實驗課,極其依賴開發(fā)環(huán)境,并且具有集成開發(fā)環(huán)境的安裝文件體積大、安裝過程復(fù)雜等缺點[6],對初學(xué)者的興趣與熱情具有極大打擊性。而Python 由于其內(nèi)核資源完全開源并且可以在線獲取,因此具有豐富的在線Python 編程平臺,使得學(xué)生只要擁有一臺可以上網(wǎng)的電腦就能立即進行Python 編程的學(xué)習(xí)、驗證和創(chuàng)造性實驗操作。
根據(jù)Python 語言的開發(fā)平臺特點,設(shè)計不拘于實驗室和平臺的Python 語言課實驗組織方式,教師需要組織與理論內(nèi)容有機結(jié)合的最新最熱門案例,將之設(shè)計改編為適合學(xué)生消化的實驗課題,并對實驗課題的難易程度進行分級,學(xué)生可以根據(jù)自己對理論知識的掌握程度自由選擇項目??紤]到程序設(shè)計項目的合作性,實驗課題允許多個學(xué)生自由組隊,共同完成實驗,然后,通過實驗課題答辯的方式,解釋各個成員承擔(dān)的任務(wù)和完成過程。
筆者及其教學(xué)改革團隊利用本校的教學(xué)與實驗網(wǎng)絡(luò)化平臺“學(xué)寶”,建立了立體化的“教、學(xué)、練”資源庫,實現(xiàn)不僅限于校園網(wǎng)的全開放式訪問,方便學(xué)生隨時、隨地能接收課程作業(yè)和實驗更新、在線練習(xí)和提交實驗報告、實時查詢實驗反饋,與教師進行實時交互。實現(xiàn)學(xué)生隨時隨地進行編程練習(xí),教師可以隨時對學(xué)生的作業(yè)、實驗完成情況進行檢查與反饋。
充分利用學(xué)校校園網(wǎng)的資源搭建教學(xué)與實驗網(wǎng)絡(luò)化平臺,建立立體化的“教、學(xué)、練”資源庫。通過這個平臺,教師將不限于授課年級,提供統(tǒng)一的理論教學(xué)的電子教案、教學(xué)大綱與教學(xué)日歷,有利于教師之間進行資源共享和取長補短,也便于不同年級、不同專業(yè)的學(xué)生使用Python 課程教學(xué)資源,最大化教學(xué)資源的使用率。同時,鼓勵學(xué)生利用這些教學(xué)資源進行自主學(xué)習(xí)和網(wǎng)絡(luò)學(xué)習(xí),為零起點或高起點學(xué)生提供進行自我提升的途徑。理論課程的作業(yè)和課堂上沒有消化的問題,可以通過平臺進行討論,使得教學(xué)的反饋和互動途徑得到多樣化,學(xué)生學(xué)習(xí)的主動性和靈活性得到提高,滿足了不同層次的學(xué)生學(xué)習(xí)的需要,也使教師對教學(xué)資源得到及時的反饋,有利于提高教學(xué)資源質(zhì)量。
由于Python 的開發(fā)環(huán)境是在線免安裝的,因此更方便利用網(wǎng)絡(luò)教學(xué)資源。教學(xué)團隊只需基于云平臺,構(gòu)建可視化、可監(jiān)控的虛擬實驗平臺,完善全網(wǎng)開放的設(shè)計題庫,豐富題庫,實現(xiàn)不僅限于校園網(wǎng)的全開放式訪問,方便學(xué)生隨時、隨地能接收實驗內(nèi)容更新、在線練習(xí)和提交實驗報告、實時查詢實驗反饋,與教師進行實時交互。
傳統(tǒng)的高級計算機程序設(shè)計語言的考試方法分為閉卷和機試兩類。閉卷筆試考試由于其偏理論記憶和無法驗證的局限,已逐漸被機試取代,但是實踐證明,依賴于大型實驗室機房的機試容易因為機器故障、系統(tǒng)不兼容和局域網(wǎng)受限等問題,降低機試的效率和學(xué)生的應(yīng)試積極性。因此,Python 語言的考核以“理論知識點答題+案例解決”為內(nèi)容,以分布式在線完成為方式進行在線考核。學(xué)生只需要在指定時間段內(nèi)上交答案、解決方法和代碼即可,不受地理位置和具體時刻的限制。
針對Python 課程培養(yǎng)學(xué)生實際解決問題的教學(xué)目的,實行“教考分離”的機制,避免編程知識點死角。并結(jié)合多種計分方式綜合評定學(xué)生的成績,主要分為平時成績、期中成績和期末成績。平時成績通過出勤率、實驗課題程序的設(shè)計思維和運行、實驗報告的撰寫等綜合給出,平時成績占總成績的60%。期中與期末成績根據(jù)兩次在線測試進行,期中成績與期末成績加權(quán)平均占總成績的40%。
值得一提的是,不同專業(yè)對于Python 的數(shù)據(jù)分析要求不同,以上研究框架對于非理工科專業(yè)的Python 課程模式也同樣適用??筛鶕?jù)本專業(yè)對于具體大數(shù)據(jù)問題的分析要求,調(diào)整以上4個環(huán)節(jié)的占比和難易程度。
為高等院校的研究生Python 數(shù)據(jù)分析及應(yīng)用課程設(shè)計的案例驅(qū)動式改革的框架,用來解決如何在當(dāng)前大數(shù)據(jù)分析高級人才需求背景下的Python 課程改革問題,并從理論教學(xué)、實驗教學(xué)、演練平臺和考核模式4 個方面給出教學(xué)改革擬解決的關(guān)鍵問題及相應(yīng)的參考解決方案。這些研究結(jié)論對于高校各專業(yè)培養(yǎng)大數(shù)據(jù)分析人才具有良好的參考意義。通過一個學(xué)期的改革方案實施嘗試,選修了本門課程的研究生基本都具備了自行查閱Python 使用手冊、自行選擇開發(fā)平臺進行Python 數(shù)據(jù)分析的能力,75%的研究生在發(fā)表科研論文時選擇了用Python 語言作為分析和仿真語言。下一步的工作將以研究生具體的一門Python 數(shù)據(jù)及其應(yīng)用課程為例,探討改革研究的進一步改進過程。