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