廖卓凡,鄧澤林,張建明,陳 曦
(長沙理工大學 計算機與通信工程學院,湖南 長沙 410004)
隨著信息科技革命進入大數據時代,人們開始注意到各行業產生的海量數據中蘊藏著產業信息和商業機會,各國的工業界和學術界都爭相研究、發掘和鼓勵大數據分析相關的技術工具。我國在大數據分析領域的人才培養和技術革新還處在起步階段,以百度、騰訊、阿里巴巴為代表的互聯網企業和以基礎設施和智能終端提供商為代表的華為公司近兩年對大數據分析人才提出了明確的需求,傳統的以掌握C、C++和Java 為主的人才需求市場遭遇了近年以Python 語言為主打的新型人才需求的大革新。Python 是一門面向對象的解釋型高級程序語言,既保持了面向對象語言在程序設計上的封裝性和強大功能,又具有解釋型語言的運行快的特點,同時它的開源使得Python 具有其他高級程序語言無法匹敵的科學計算擴展庫,非常適合大數據分析這種數據量大,又需要各種科學計算的應用。
在國外用Python 做科學計算的研究機構日益增多,一些知名大學已經采用Python 教授程序設計課程。例如卡耐基· 梅隆大學的編程基礎、麻省理工學院的計算機科學及編程導論就使用Python 語言講授,MIT 和UC Berkeley 的計算機系最近將他們入門課程的教授語言改成了Python[1]。我國高等教育今年也將Python 語言編入計算機專業研究生專業課,甚至非計算機專業研究生的選修課中。但由于我國高等院校的程序設計語言教學模式長期圍繞C/C++/Java 等傳統編程語言研究,從教學資源到教學手段,從實驗設計到考核考查制度都偏于落后,使得計算機專業研究生不會用,非計算機專業研究生看不懂,教學效果不甚理想。
由于大數據與人工智能技術近年對國內外各行業帶來積極可觀的推動效果,如何對大數據進行高效的分析,從而提取數據中的信息指導決策成為急需解決的問題。Python 語言憑借其語法精煉、輕量級運行效率和強大的開源科學計算庫成為熱門程序設計語言[2],并且不再受限于計算機行業,金融、航空、商業等具有海量數據生產能力的行業也表現出對Python 數據分析的急切需求,因此也收到高等院校里各個專業的重視[3]。但是大學課堂上的Python 語言及數據分析專業課程的教育模式仍然受傳統高級程序設計語言的教學模式影響,使得人才培養目標不夠明確[4],忽視了研究生對高級計算機語言學習的最終目的是用計算機研究并解決實際問題。同時,陳舊的教學內容也無法反映當下亟待解決的問題,無法提高學生的課堂興趣,隨之而來的是“老師講——學生聽”的單向教與學模式。基于以上分析,當前的Python語言課程教學模式無法為社會培養出靈活使用Python 解決問題的高級人才。針對這些問題,采取對策如下。
(1)解決教學內容陳舊且互不關聯的問題,教案編寫應與實際需求協同更新。由于大數據教材和教案的編寫往往滯后于技術的發展,而對學生的動手編程能力需求越來越新,越來越跨學科,因此在教學內容的安排上需要實時更新,參照業內最新的大數據分析案例組織教案。教學實施過程不僅限于照本宣科,應適當加入與本堂課知識點有關的實際大數據分析案例,深入淺出分析知識點的應用,不僅強化學生對理論知識點的理解,也可以培養學生即學即用的編程思維。教學內容的安排應從基礎到應用,由淺到深地逐步推進,且注重各知識點之間的有機關系,相互協同創新問題。
(2)解決實驗課程內容安排和組織模式沉悶的問題。教師在安排與理論課知識點對應的驗證型實驗之外,安排與實際工業或者科研項目相關的創新型實驗課題,根據Python 開發環境靈活輕量級的特點,采取學生自由答題、自主選題、合作完成的“隨時隨地做實驗”的課程組織形式,讓學生從基礎知識到實戰編程進行一個循序漸進的掌握過程。
(3)解決學生實踐與創新能力培養不足的問題。以科研或者企業中的實際問題為導向,要求學生進行團隊開發,鍛煉學生的項目領導能力和系統分析、設計等能力。
(4)解決教學評價和反饋系統不健全問題。利用信息化實踐教學平臺來保存學生的所有成績,通過統計每個學生的課堂和實驗環節的進度與成績來客觀評價學生的能力,并以此為依據來進一步完善教學內容。
綜合理工科研究生培養方案,要求不僅掌握Python 基礎語法,并能使用Numpy 庫進行科學計算,使用matplotlib 庫進行基礎圖形繪制,使用pandas 庫進行統計分析和數據預處理,使用sklearn 進行建模[5]。基于以上培養需求,設計大數據分析背景下Python 課程教學模式改革研究框架,如圖1 所示。針對目前Python 課程教學模式中存在的問題,改革可以從理論教學、實驗教學、演練平臺和考核模式方面展開,具體包括4 個方面的研究內容。

圖1 大數據分析背景下Python課程教學模式改革研究框架
傳統教學方式注重基礎知識點講解,理論性強容易削弱學生興趣。考慮到教學目標之一是讓學生編寫程序借助計算機的能力研究并實際問題,根據大數據分析需求,重新定位各編程和操作平臺課程的培養目標,全面深入更新教案,從實際生活相關聯的實例出發,運用啟發式、案例式等多種方式相結合的教學實施方案提高動手能力培養。例如,對航空公司客戶價值分析從而鎖定VIP 客戶群,對財政收入預測分析從而為來年財政投入提供參考,對家用熱水器用戶做行為分析從而改進熱水器功能等案例,就是各行業極有價值的大數據分析案例問題。
另外,在“互聯網+”時代,很多案例和源代碼可以通過互聯網共享,學生也可以自行上網搜索感興趣的案例,從而提高學習的主動性。“互聯網+”的特點之一是與傳統業深度融合,因此教學資源可以借用互聯網資源更新教案、多媒體課件,從而豐富教學材料,提高課堂互動性,激發學生的內在學習動力。同時,教師設計簡易的案例作為教學示例,以身作則演示良好的程序設計思維和習慣,能提高學生編寫代碼的興趣,減少對編程的心理恐懼,從而達到讓學生編寫出可讀性好和穩定性高的程序。進一步地,再結合“互聯網+”里的優秀案例,讓學生感受如何編碼才是符合編程規范,嚴格按照軟件企業對規范編程的要求,潛移默化學會編寫規范的和優秀的編程代碼。
傳統高級程序設計語言的實驗課,極其依賴開發環境,并且具有集成開發環境的安裝文件體積大、安裝過程復雜等缺點[6],對初學者的興趣與熱情具有極大打擊性。而Python 由于其內核資源完全開源并且可以在線獲取,因此具有豐富的在線Python 編程平臺,使得學生只要擁有一臺可以上網的電腦就能立即進行Python 編程的學習、驗證和創造性實驗操作。
根據Python 語言的開發平臺特點,設計不拘于實驗室和平臺的Python 語言課實驗組織方式,教師需要組織與理論內容有機結合的最新最熱門案例,將之設計改編為適合學生消化的實驗課題,并對實驗課題的難易程度進行分級,學生可以根據自己對理論知識的掌握程度自由選擇項目。考慮到程序設計項目的合作性,實驗課題允許多個學生自由組隊,共同完成實驗,然后,通過實驗課題答辯的方式,解釋各個成員承擔的任務和完成過程。
筆者及其教學改革團隊利用本校的教學與實驗網絡化平臺“學寶”,建立了立體化的“教、學、練”資源庫,實現不僅限于校園網的全開放式訪問,方便學生隨時、隨地能接收課程作業和實驗更新、在線練習和提交實驗報告、實時查詢實驗反饋,與教師進行實時交互。實現學生隨時隨地進行編程練習,教師可以隨時對學生的作業、實驗完成情況進行檢查與反饋。
充分利用學校校園網的資源搭建教學與實驗網絡化平臺,建立立體化的“教、學、練”資源庫。通過這個平臺,教師將不限于授課年級,提供統一的理論教學的電子教案、教學大綱與教學日歷,有利于教師之間進行資源共享和取長補短,也便于不同年級、不同專業的學生使用Python 課程教學資源,最大化教學資源的使用率。同時,鼓勵學生利用這些教學資源進行自主學習和網絡學習,為零起點或高起點學生提供進行自我提升的途徑。理論課程的作業和課堂上沒有消化的問題,可以通過平臺進行討論,使得教學的反饋和互動途徑得到多樣化,學生學習的主動性和靈活性得到提高,滿足了不同層次的學生學習的需要,也使教師對教學資源得到及時的反饋,有利于提高教學資源質量。
由于Python 的開發環境是在線免安裝的,因此更方便利用網絡教學資源。教學團隊只需基于云平臺,構建可視化、可監控的虛擬實驗平臺,完善全網開放的設計題庫,豐富題庫,實現不僅限于校園網的全開放式訪問,方便學生隨時、隨地能接收實驗內容更新、在線練習和提交實驗報告、實時查詢實驗反饋,與教師進行實時交互。
傳統的高級計算機程序設計語言的考試方法分為閉卷和機試兩類。閉卷筆試考試由于其偏理論記憶和無法驗證的局限,已逐漸被機試取代,但是實踐證明,依賴于大型實驗室機房的機試容易因為機器故障、系統不兼容和局域網受限等問題,降低機試的效率和學生的應試積極性。因此,Python 語言的考核以“理論知識點答題+案例解決”為內容,以分布式在線完成為方式進行在線考核。學生只需要在指定時間段內上交答案、解決方法和代碼即可,不受地理位置和具體時刻的限制。
針對Python 課程培養學生實際解決問題的教學目的,實行“教考分離”的機制,避免編程知識點死角。并結合多種計分方式綜合評定學生的成績,主要分為平時成績、期中成績和期末成績。平時成績通過出勤率、實驗課題程序的設計思維和運行、實驗報告的撰寫等綜合給出,平時成績占總成績的60%。期中與期末成績根據兩次在線測試進行,期中成績與期末成績加權平均占總成績的40%。
值得一提的是,不同專業對于Python 的數據分析要求不同,以上研究框架對于非理工科專業的Python 課程模式也同樣適用。可根據本專業對于具體大數據問題的分析要求,調整以上4個環節的占比和難易程度。
為高等院校的研究生Python 數據分析及應用課程設計的案例驅動式改革的框架,用來解決如何在當前大數據分析高級人才需求背景下的Python 課程改革問題,并從理論教學、實驗教學、演練平臺和考核模式4 個方面給出教學改革擬解決的關鍵問題及相應的參考解決方案。這些研究結論對于高校各專業培養大數據分析人才具有良好的參考意義。通過一個學期的改革方案實施嘗試,選修了本門課程的研究生基本都具備了自行查閱Python 使用手冊、自行選擇開發平臺進行Python 數據分析的能力,75%的研究生在發表科研論文時選擇了用Python 語言作為分析和仿真語言。下一步的工作將以研究生具體的一門Python 數據及其應用課程為例,探討改革研究的進一步改進過程。