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