郝靜,平夢婷,陳建文,王仲梅
摘? 要: 科學計算是一門理論與實踐結(jié)合的專業(yè)課程,該課程對學生的綜合能力培養(yǎng)有著至關(guān)重要的作用。針對課程對傳統(tǒng)軟件依賴性強,學生缺乏實踐與學習動力等問題,提出將Python程序設(shè)計語言及Jupyter大數(shù)據(jù)分析平臺融入科學計算課程的教學改革方法,并在教學內(nèi)容和教學方式上給出了具體的措施。以數(shù)據(jù)科學與大數(shù)據(jù)技術(shù)專業(yè)課程教學改革為例,這些方法和措施的采用顯著地提高了學生的應(yīng)用和創(chuàng)新能力,證明了教學改革的有效性。
關(guān)鍵詞: 科學計算; 教學改革; Python編程; 大數(shù)據(jù)
中圖分類號:G642? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2022)01-90-03
Research on teaching reform of scientific computing course with Python language
Hao Jing, Ping Mengting, Chen Jianwen, Wang Zhongmei
(College of Science, Hunan University of Technology and Business, Changsha, Hunan 410205, China)
Abstract: Scientific computing is a professional course which combines theory and practice, it plays an important role in the cultivation of students' comprehensive ability. In view of its strong dependence on traditional software and the lack of practice and learning motivation of students, this paper puts forward the teaching reform of integrating Python programming language and Jupyter big data analysis platform into the scientific computing course, and gives specific measures on teaching content and teaching methods. Taking the teaching reform of the data science and big data technology specialties as an example, the adoption of these methods and measures has significantly improved the application and innovation ability of students, which proves the effectiveness of the teaching reform.
Key words: scientific computing; teaching reform; Python programming; big data
0 引言
科學計算是數(shù)據(jù)科學與大數(shù)據(jù)技術(shù)專業(yè)的一門重要課程。目前,智能計算和仿真模擬是計算機科學和計算數(shù)學領(lǐng)域熱門研究課題,相關(guān)研究成果能應(yīng)用于工程、氣象、飛行器等許多重要領(lǐng)域。
當前國內(nèi)開設(shè)的課程均依托于Matlab等編程軟件,然而Matlab軟件受到國外開發(fā)商的使用限制,因此須尋找一種開源的編程軟件實現(xiàn)科學計算和仿真模擬。
Python是一款開源軟件,具有簡單、可拓展性強等特點,其中利用機器學習和深度學習求解偏微分系統(tǒng)的研究工作受到學術(shù)界特別的關(guān)注。在“新工科”理念下,國內(nèi)外許多高校陸續(xù)開設(shè)了Python語言程序設(shè)計相關(guān)課程[1],利用該軟件的通用性和豐富生態(tài)系統(tǒng)來實現(xiàn)混合式教學??茖W計算與Python編程語言是數(shù)據(jù)科學與大數(shù)據(jù)技術(shù)專業(yè)的兩門核心課程,在解決數(shù)據(jù)科學任務(wù)與挑戰(zhàn)方面具有獨特優(yōu)勢地位。兩者相結(jié)合,不僅能提高教學質(zhì)量,還能突破以往傳統(tǒng)的Matlab計算生態(tài)系統(tǒng)限制,改變傳統(tǒng)的教學思維,幫助學生更好的掌握科學計算知識,對于專業(yè)人才培養(yǎng)具有重要意義。本文教學改革框架如圖1所示。
1 改革的必要性
1.1 不過度依賴Matlab等商業(yè)軟件
傳統(tǒng)上,微分系統(tǒng)的數(shù)值求解和仿真模擬一般由Matlab等軟件實現(xiàn)。Matlab等計算軟件功能強大,但其作為一款國外商業(yè)軟件,購買須花費大量資金;而且開發(fā)商對軟件的功能使用上有所限制。為了不被“卡脖子”,我們必須盡快依托開源軟件實現(xiàn)算法的開發(fā)與突破,尤其是在工程測量中一直占據(jù)重要技術(shù)地位的偏微分方程計算領(lǐng)域。Python是一款開源軟件且第三方庫十分豐富,具有通用性的特點,隨著越來越多開發(fā)者的介入,Matlab大多數(shù)應(yīng)用均可被Python取代。
1.2 課程教學需加強
對于數(shù)據(jù)科學與大數(shù)據(jù)技術(shù)專業(yè)的學生來說,對程序設(shè)計和數(shù)值求解的能力要求較高。目前,國內(nèi)大多數(shù)高??茖W計算課程的程序由Matlab軟件來完成,而Matlab語言與Python具有差異性,容易混淆編程規(guī)則,因此給學生在編程語言的實操上帶來困難。相比之下Python語言具有簡單易學、可拓展性強的特點,同時大數(shù)據(jù)專業(yè)的學生精通Python語言,因此利用Python進行科學計算難度較小,專業(yè)適配性更強。
1.3 實踐教學與課堂教學需緊密結(jié)合
科學計算是一門理論與實踐密切結(jié)合的課程,應(yīng)用能力的培養(yǎng)應(yīng)該占據(jù)教學的中心地位。傳統(tǒng)上,課堂教學與實踐教學環(huán)節(jié)往往脫節(jié),教學效果不理想。大數(shù)據(jù)分析平臺Jupyter可以解決這一問題,該軟件集教案設(shè)計、PPT制作、Python程序運行、可視化、網(wǎng)頁制作、Latex文檔編譯等多功能于一身,實現(xiàn)課堂教學與實踐操作同步進行。改革科學計算課程的教學方式方法,有利于錘煉學生應(yīng)用計算機軟件的能力,提升獲得感和創(chuàng)新活力。
1.4 課程考核方法有待改革
科學計算這門課程,目前大部分高校采用單一的期末筆試來考查學生的學習情況,這樣的考核方法已經(jīng)不適應(yīng)專業(yè)發(fā)展形勢,學科間的交叉融合需建立在課程考核改革的基礎(chǔ)之上。該課程需重視算法設(shè)計、程序?qū)崿F(xiàn)、上機操作等過程的考核。具體可通過以下方式實現(xiàn):引入動畫、實例庫、計算機輔助教學和課件等資源,促進數(shù)值計算方法課程的軟件建設(shè);利用計算機教學科研網(wǎng)絡(luò)平臺和數(shù)據(jù)科學與大數(shù)據(jù)技術(shù)實踐教學平臺來提高數(shù)值計算方法課程的硬件設(shè)施水平等[2]。
2 科學計算課程教學改革思路
科學計算技術(shù)是數(shù)據(jù)科學與大數(shù)據(jù)技術(shù)專業(yè)學生必備技能,是實現(xiàn)專業(yè)創(chuàng)新發(fā)展的重要法寶。改革主要目標是:將Python語言應(yīng)用到科學計算中,實現(xiàn)對于幾類偏微分系統(tǒng)以及復雜流體系統(tǒng)的數(shù)值求解和仿真模擬,突破以往傳統(tǒng)的Matlab計算生態(tài)系統(tǒng),解決智能計算與仿真模擬的軟件依賴問題以達到教與學的統(tǒng)一。具體有四個方面內(nèi)容。
2.1 利用機器學習算法求解偏微分方程
機器學習和深度學習主要包括線性回歸、決策樹、邏輯斯蒂回歸、支持向量機、隱馬爾可夫模型、神經(jīng)網(wǎng)絡(luò)等。不同于傳統(tǒng)差分方法,利用機器學習算法求解偏微分方程可以通過構(gòu)建無網(wǎng)格算法進行設(shè)計,避免網(wǎng)格剖分,解決維度爆炸的問題。在課程教學過程的初級階段,學生可以通過Python進行調(diào)包,實現(xiàn)簡單的偏微分方程的求解;進階階段,可以向?qū)W生們展示一些利用Python語言的第三方庫和深度學習算法求解偏微分方程的程序,幫助學生掌握算法設(shè)計思路,進而解決來源于物理、工業(yè)工程、流體的數(shù)值模擬仿真等困難問題。
2.2 利用Jupter實現(xiàn)教學環(huán)節(jié)一體化
Jupyter notebook是一個交互式自動筆記本,支持多種自動編程應(yīng)用語言,它是以網(wǎng)頁的形式打開,在網(wǎng)頁上實現(xiàn)即時代碼開發(fā)、文檔編寫、可視化、Markdown、Python程序運行等。教師在科學計算課程的教學中可以引入Jupyter大數(shù)據(jù)分析平臺,結(jié)合代碼進行講解,實時編譯運行,做好充分的講解與演示,以生動的形式展現(xiàn)課程的教育教學全過程。課后的實驗報告、終期考核可以結(jié)合Jupyter完成,提交生成PDF文檔,方便瀏覽且自動識別程序結(jié)果。Jupyter實質(zhì)上是一個Web應(yīng)用程序,它便于創(chuàng)建和共享文字化的程序文檔,可以將解題思路和代碼共存于一個程序文檔,既便于老師查看,也便于日后回顧。通過Jupyter打造具有鮮明特色的個性化課程教學體系,促使教學進程向縱深發(fā)展。
2.3 實現(xiàn)專業(yè)課程的層級推進與無縫銜接
科學計算屬于一門承上啟下的課程,實際是介于基礎(chǔ)理論和實踐教學課程間的一門核心課程,主要講授數(shù)值算法、微分方程數(shù)值解法。課程內(nèi)容包括:差分方法;常微分方程數(shù)值解法;偏微分方程數(shù)值解法;有限元方法等[3]。后續(xù)將安排深度學習、數(shù)學模型、大數(shù)據(jù)技術(shù)與應(yīng)用等高級課程,實現(xiàn)專業(yè)課程之間的無縫銜接,持續(xù)優(yōu)化數(shù)據(jù)科學與大數(shù)據(jù)技術(shù)等專業(yè)人才培養(yǎng)方案。在科學計算課程教學環(huán)節(jié)中,教師除了注重學生的程序設(shè)計思想的培養(yǎng),還應(yīng)該先開設(shè)機器學習、數(shù)據(jù)挖掘等課程,在算法的實現(xiàn)過程中引導學生自主學習TensorFlow、Scipy等第三方庫,有效訓練學生的基本技能。
2.4 考核改革的專業(yè)針對性
相比于其他的課程,科學計算更注重考核學生的實踐能力,考核形式應(yīng)多元化,考核方式主要為隨堂測試、上機實踐、期中實驗報告、期末考試等。上機操作和實驗報告有助于提高學生的操作能力,通過完成Python語言編程設(shè)計,實現(xiàn)對算法設(shè)計的深刻理解[4],同時教師可將優(yōu)秀的實驗報告編撰成《科學計算論文集》,積累教學素材。期中多頻次實驗報告以具有實際背景的微分方程為求解對象,構(gòu)造數(shù)值算法,利用Python編程實現(xiàn)。期末考試既考察學生數(shù)值計算理論、Python應(yīng)用能力,也考核學生算法設(shè)計思想,考核分數(shù)由平時表現(xiàn)(30%)+ 分組報告與綜合項目(30%)+ 期末綜合測試(40%)綜合打分。數(shù)據(jù)科學與大數(shù)據(jù)技術(shù)專業(yè)主要培養(yǎng)學生數(shù)據(jù)采集處理、特征工程、模型訓練與優(yōu)化能力,而科學計算技能在其中扮演這關(guān)鍵的角色,因此有針對性的對專業(yè)技能課程的考核進行改革,有利于以學生為中心的科學理念形成和學科建設(shè)的健康發(fā)展。
2.5 開展學科競賽和項目研究
問題驅(qū)動式教學在高等教育中的重要性和科學性已經(jīng)被廣大師生認可。在科學計算課程的教學進程中,教師利用學科競賽和課題研究引導學生開展知識探索和原始創(chuàng)新,有利于提高學生參與度、發(fā)揮創(chuàng)造力和想象力,有利于挖掘年輕人的潛能。當然,在問題驅(qū)動式教學中,教師的個人綜合能力直接決定了改革的實施效果。高水平的學術(shù)指導就像音樂指揮家,非演奏本體卻主導整個表演過程。以湖南工商大學大數(shù)據(jù)專業(yè)教學改革為例,在實踐教學改革后,學生參與實踐競賽的興趣有了明顯提高,該專業(yè)學生數(shù)學競賽的參與度提高了30%,同時全國大學生數(shù)學建模競賽的參與度達到了80%。
3 結(jié)束語
科學計算是數(shù)據(jù)科學與大數(shù)據(jù)技術(shù)專業(yè)學生需要掌握的一項重要技能。課程的開設(shè)不僅可以通過簡化假設(shè)建立數(shù)學模型向?qū)W生完整的展示完整的解題過程,還可以借助數(shù)值方法和數(shù)學軟件幫助學生進行理解[5]。對于科學計算課程教學改革的成效,在諸如全國大學生數(shù)學建模、統(tǒng)計建模、大數(shù)據(jù)分析等大賽中得以顯現(xiàn),學生取得優(yōu)異成績的同時,還播下了創(chuàng)新創(chuàng)業(yè)的種子。這些成績的取得與教學方法的不斷探索和改革是密不可分的,實踐證明,利用Python軟件對數(shù)據(jù)科學與大數(shù)據(jù)技術(shù)專業(yè)學生的科學計算課程進行改革,能催生最大潛能,提升學生獲得感和創(chuàng)新精神。在實踐教學和實訓方面,基于Python語言的科學計算課程教學改革還有進一步提升的空間。
參考文獻(References):
[1] 劉衛(wèi)國,奎曉燕.Python語言程序設(shè)計教學體系建設(shè)[J].計算機教育,2017,(8):13-17
[2] 王海軍,曹德欣,陳興同,胡建華,楊然.基于科學計算和實踐創(chuàng)新能力培養(yǎng)的數(shù)值計算方法課程改革與實踐研究[J].大學教育,2016(8):135-136,150
[3] 李丹丹.淺析Python在大數(shù)據(jù)課程教學改革中的作用[J].教育現(xiàn)代化,2019,6(82):115-116
[4] 魏冬梅,王秀華,王影,陳一夫,汪思德.基于Python的程序設(shè)計通識課程建設(shè)與教學實踐[J].計算機教育,2019,2:69-73
[5] 趙國忠.科學計算核心課程教學的幾點思考[J].陰山學刊(自然科學版),2018,32(3):106-108