聶建輝 朱松豪
摘要:作為一門(mén)跨平臺(tái)的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,Python以其簡(jiǎn)潔性、易讀性以及可擴(kuò)展性,在科學(xué)計(jì)算中得到了越來(lái)越多的應(yīng)用。本文介紹了Python科學(xué)計(jì)算課程教學(xué)方法的一些改革措施,以尋求激發(fā)學(xué)生學(xué)習(xí)主動(dòng)性的方法,提高學(xué)生解決實(shí)際問(wèn)題的能力,提高教學(xué)質(zhì)量。
關(guān)鍵詞:Python;科學(xué)計(jì)算;教學(xué)改革
一、引言
Python是一門(mén)面向?qū)ο蟮母呒?jí)程序設(shè)計(jì)語(yǔ)言,其秉承了“優(yōu)雅”、“明確”、“簡(jiǎn)單”的設(shè)計(jì)理念,語(yǔ)法結(jié)構(gòu)簡(jiǎn)單清晰。經(jīng)過(guò)多年的發(fā)展,當(dāng)前Python既可以實(shí)現(xiàn)程序腳本的快速開(kāi)發(fā),又可以用于大規(guī)模軟件的設(shè)計(jì)實(shí)現(xiàn)。同時(shí),由于具備了眾多第三方開(kāi)源庫(kù)的支撐,如NumPy、SymPy、Matplotlib、Pytorch等,Python在科學(xué)計(jì)算領(lǐng)域的優(yōu)勢(shì)愈加突出。與廣泛使用的商業(yè)軟件Matlab相比,Python是一門(mén)真正的通用計(jì)算機(jī)語(yǔ)言,應(yīng)用范圍更加廣泛,且完全免費(fèi)并開(kāi)放源碼。
Python科學(xué)計(jì)算是工科專(zhuān)業(yè)普遍開(kāi)設(shè)的一門(mén)工具性課程,通過(guò)對(duì)該課程的學(xué)習(xí),學(xué)生能夠系統(tǒng)的掌握一門(mén)高級(jí)編程語(yǔ)言,同時(shí),又能夠熟悉數(shù)值計(jì)算、符號(hào)計(jì)算和圖形繪制方面的編程方法,為后續(xù)研究和工作打下堅(jiān)實(shí)的基礎(chǔ)。
二、教學(xué)方法改革內(nèi)容
本文結(jié)合作者在實(shí)際教學(xué)中遇到的問(wèn)題,分幾個(gè)方面探討教學(xué)改革的有關(guān)內(nèi)容。
1.提高對(duì)課程重要性的認(rèn)識(shí)
在很多國(guó)外高校Python是學(xué)習(xí)信號(hào)處理、數(shù)理統(tǒng)計(jì)、人工智能等課程時(shí)的必講內(nèi)容,是攻讀相關(guān)學(xué)位必須掌握的一個(gè)計(jì)算工具[1]。而國(guó)內(nèi)高校對(duì)Python編程重要性的認(rèn)識(shí)尚不足,通常還是以C或C++作為程序設(shè)計(jì)的入門(mén)語(yǔ)言。由于語(yǔ)法復(fù)雜,許多學(xué)生會(huì)產(chǎn)生畏難思想,進(jìn)而導(dǎo)致學(xué)習(xí)效果不佳。同時(shí),很多學(xué)校將Python課程安排在大學(xué)二年級(jí),由于此時(shí)還處于通識(shí)教育階段,專(zhuān)業(yè)課程尚未開(kāi)始,因此,學(xué)生很難在體會(huì)到Python科學(xué)計(jì)算對(duì)于所學(xué)專(zhuān)業(yè)重要性和幫助作用,更談不上在后續(xù)專(zhuān)業(yè)課程中的應(yīng)用Python解決相關(guān)問(wèn)題。為了克服上述問(wèn)題,教師應(yīng)該在教學(xué)之初首先對(duì)Python科學(xué)計(jì)算與本專(zhuān)業(yè)需要學(xué)習(xí)的專(zhuān)業(yè)課程之間的聯(lián)系進(jìn)行詳細(xì)說(shuō)明,并用一些實(shí)例展示Python在解決數(shù)學(xué)問(wèn)題和工程問(wèn)題方面的優(yōu)勢(shì)和簡(jiǎn)易性,從而使學(xué)生能夠認(rèn)識(shí)到課程的重要性,并激發(fā)學(xué)習(xí)興趣。
2.增加演示教學(xué)
當(dāng)前,課堂授課的形式主要還是以教師講解,學(xué)生被動(dòng)接受為主[2]。這種教學(xué)方式單一、枯燥,不利于調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性,教學(xué)效果不佳。為此,在教學(xué)過(guò)程中需要增加動(dòng)態(tài)演示環(huán)節(jié)。通過(guò)演示程序設(shè)計(jì)、程序編寫(xiě)、程序運(yùn)行、程序調(diào)試的過(guò)程,使學(xué)生對(duì)相關(guān)知識(shí)能有清晰明了的掌握,進(jìn)而激發(fā)學(xué)生學(xué)習(xí)興趣,提高學(xué)習(xí)效果。同時(shí),對(duì)于Python在科學(xué)計(jì)算中的應(yīng)用,應(yīng)當(dāng)重點(diǎn)演示。如在Numpy數(shù)值計(jì)算部分,可以演示如何快速解決線性代數(shù)課程中需要繁瑣計(jì)算的矩陣求逆、SVD分解等內(nèi)容;在SymPy符號(hào)計(jì)算部分,可以通過(guò)演示線性方程和微分方程的求解方法,是學(xué)生體會(huì)到符號(hào)計(jì)算的強(qiáng)大功能;在Matplotlib繪圖部分,可以逐步講解圖形繪制的過(guò)程,并采用由粗糙到精細(xì)的思路,演示如何使最終圖形在布局、配色、標(biāo)識(shí)等方法達(dá)到最佳效果。
3.突出應(yīng)用
Python科學(xué)計(jì)算是一門(mén)應(yīng)用型的課程,其重要作用在于能夠?yàn)槠渌n程的學(xué)習(xí)和實(shí)驗(yàn)驗(yàn)證提供工具。因此,在教學(xué)中,不應(yīng)忽略對(duì)學(xué)生應(yīng)用技能的培養(yǎng)[3]。在教學(xué)過(guò)程中我們發(fā)現(xiàn),一種能夠有效提高學(xué)生應(yīng)用能力的方法是案例式教學(xué)。如在講解深度學(xué)習(xí)相關(guān)內(nèi)容的過(guò)程中,通過(guò)給出一個(gè)典型的分類(lèi)案例,將整體任務(wù)劃分為幾個(gè)小的模塊,再講解如何通過(guò)Python和Pytorch相互配合,實(shí)現(xiàn)諸如數(shù)據(jù)加載、數(shù)據(jù)亂序、自動(dòng)求導(dǎo)、權(quán)重更新等過(guò)程。通過(guò)案例式教學(xué)能夠使整個(gè)教學(xué)變得生動(dòng)具體、直觀易學(xué)。此外,為了進(jìn)一步拓展學(xué)生的應(yīng)用能力,可以通過(guò)學(xué)生自主選題、自主分組的形式完成一些實(shí)際問(wèn)題的解決,并匯報(bào)解決方案,通過(guò)親自動(dòng)手解決問(wèn)題,讓學(xué)生體會(huì)Python在實(shí)際應(yīng)用中的重要作用。
4.結(jié)合專(zhuān)業(yè)方向
開(kāi)源和廣泛的第三方支持是Python語(yǔ)言的一大特點(diǎn)。發(fā)展至今,在各個(gè)領(lǐng)域方向基本都可以找到對(duì)應(yīng)的第三方工具包,如控制系統(tǒng)工具箱、信號(hào)處理工具箱、圖像處理工具箱、神經(jīng)網(wǎng)絡(luò)工具箱、函數(shù)擬合工具箱等等。要想把這些第三方擴(kuò)展包的所有功能都熟悉和掌握難度很大。因此,應(yīng)當(dāng)針對(duì)授課對(duì)象的專(zhuān)業(yè)背景重點(diǎn)介紹1-2個(gè)與其密切相關(guān)的工具箱的使用方法,如對(duì)于人工智能方向的學(xué)生,可以著重介紹PyTorch或TensorFlow的相關(guān)知識(shí),將兩個(gè)工具箱中的基本數(shù)據(jù)類(lèi)型、數(shù)據(jù)轉(zhuǎn)換過(guò)程、網(wǎng)絡(luò)框架搭建過(guò)程、模型訓(xùn)練等過(guò)程講解清楚,同時(shí),要使學(xué)生了解兩個(gè)工具箱各自的優(yōu)勢(shì)和特點(diǎn);對(duì)于計(jì)算機(jī)專(zhuān)業(yè)的學(xué)生,可以重點(diǎn)介紹網(wǎng)站搭建、爬蟲(chóng)等方面的工具箱,而對(duì)于通信相關(guān)領(lǐng)域可以重點(diǎn)介紹數(shù)字信號(hào)處理方面的第三方庫(kù)[4]。
三、結(jié)束語(yǔ)
Python科學(xué)計(jì)算是一門(mén)與實(shí)際應(yīng)用密切相關(guān)的課程,其教學(xué)內(nèi)容又與線性代數(shù)、高等數(shù)學(xué)等理論課程又密切聯(lián)系,學(xué)習(xí)好Python科學(xué)計(jì)算對(duì)于培養(yǎng)學(xué)生理論聯(lián)系實(shí)際的能力具有重要意義。在教學(xué)過(guò)程中,應(yīng)首先使學(xué)生正確認(rèn)識(shí)到課程的重要性,然后采用演示教學(xué)的方法,可以大大提高學(xué)生學(xué)習(xí)的積極性和主動(dòng)性;同時(shí),通過(guò)案例式教學(xué),在教學(xué)中引入實(shí)際工程問(wèn)題能夠有效培養(yǎng)學(xué)生獨(dú)立思考和解決問(wèn)題的能力;最后,通過(guò)針對(duì)性的講解,能夠使學(xué)生能夠熟悉與其專(zhuān)業(yè)最緊密的工具箱的使用方法。
參考文獻(xiàn):
[1]張涵翠,沈煒,周維達(dá).《Python程序設(shè)計(jì)》課程教學(xué)—興趣型教學(xué)方式探索[J].高教學(xué)刊,2020(36):13-16+21.
[2]楊曉玲.基于人工智能的數(shù)字圖像處理課程教學(xué)改革實(shí)踐[J].職業(yè)技術(shù),2021,20(01):61-65.
[3]李潛,高賢波,陳慧玲,肖二鋼.混合式教學(xué)在《Python程序設(shè)計(jì)》課程中的應(yīng)用[J].產(chǎn)業(yè)與科技論壇,2020,19(22):170-171.
[4]劉瓊,吳熳,王連成,柴一峰,劉明偉.淺談Python語(yǔ)言在通信原理教學(xué)中的應(yīng)用[J].產(chǎn)業(yè)與科技論壇,2020,19(22):47-48.
南京郵電大學(xué)通達(dá)學(xué)院教學(xué)改革研究項(xiàng)目(JG31520020)。
作者簡(jiǎn)介:
聶建輝(1984.1-),男,漢族,山東東營(yíng)人,南京郵電大學(xué),工學(xué)博士,副教授,從事計(jì)算機(jī)圖形學(xué)、離散幾何處理、視覺(jué)測(cè)量研究;
朱松豪(1973.2-),男,漢族,江蘇如皋人,南京郵電大學(xué),工學(xué)博士,副教授,從事機(jī)器學(xué)習(xí)、多媒體內(nèi)容的分析、模式識(shí)別研究。
(南京郵電大學(xué)自動(dòng)化學(xué)院 人工智能學(xué)院?210023)