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