吳 濤,王世芳
(1.武漢工程大學 光電信息與能源工程學院,武漢 430205;2. 湖北第二師范學院 物理與機電工程學院,武漢 430205)
大學物理作為高等理工科學校重要的通識性課程,在大學生科學素質的培養中具有重要地位。作為具有顯著工科背景的高等學校,在推進“新工科”和“雙一流”建設的背景下,把科學計算語言深度融入大學物理理論與實踐課程的教學,在培養學生工程技能和計算思維方面可以起到重要啟蒙和推動作用。互聯網與信息技術的發展已經極大的改變了傳統的教學模式,產生了例如對分課堂[1]、翻轉課堂[2]和混合式課堂[3]等多種教學模式,移動網絡終端學習和在線教學成為當今大學生獲取知識的常態。大學物理作為一門公共基礎課程在這場新時代的教學模式變革中一直走在前列,積累了大量的在線教學資源,打造了一批從慕課到金課的在線示范課程。[4]-[7]現代物理學呈現出理論物理、實驗物理、計算物理三足鼎立的格局,而計算機的普及和發展也大力促進了大學物理圖形化、可視化教學手段的應用。在互聯網時代計算機語言的重要性已經毋庸置疑,是每一個本科生的必備技能。如何利用好現有資源和現代教育技術,在層出不窮的現代科學計算語言中選擇一門切合學生實際情況的語言與大學課程教學進行深度融合,在國家“新工科”教育形勢下培養學生計算技能、工程思維和科學素養具有重要的實際意義。
在大學物理的學習中,學生普遍反映最大的障礙就是覺得物理概念抽象、難懂,理論推導和公式繁多,物理圖像不清晰,不能學以致用。為了解決這些突出問題并響應國家“新工科”和“雙一流”專業建設的號召,筆者提出了以Python語言為基礎,充分利用自由、開源、免費的基于該語言的第三方庫vpython為主要工具對大學物理進行三維動態可視化的教學改革措施。這可以從根本解決學生對大學物理學習的畏懼心理,提高其學習興趣,進而為培養新時代創新人才打下一定的基礎。利用科學計算語言與軟件以圖形化、可視化的手段展現數學公式蘊含的物理圖像,使其變得直觀、形象,使學生獲得生動感性的認識,縮小理論與實際的差距,讓學生更加深刻的理解物理思想,形成物理圖像,可以極大的提高學生學習積極性和能動性。通過讓學生參與到利用物理原理和數學計算工具解決具體實際問題,該教學模式對學生形成計算思維、培養工程技能,使學生能夠學以致用、理論聯系實際起到重要作用,能夠激發學生學習興趣,切實提高教學效果。
Python語言是目前最流行的語言之一,簡單易學,而基于Python語言的大量自由、免費、開源軟件、科學計算擴展庫最近幾年得到了飛速發展。Python語言及其眾多的擴展庫所構成的開發環境十分適合工程技術、科研人員處理實驗數據、制作圖表,甚至開發科學計算應用程序,基于Jupyter-Lab/Notebook交互式教學平臺,可以無縫導入大量的、豐富的第三方庫來實現大學物理的三維可視化教學,尤其是利用vpython庫可以快速創建三維場景和動畫,該庫有大量內置的函數和類可用來實現大學物理教學中各種實體對象的創建,例如帶電的小球,通以電流的導線等,利用較少的代碼便可以快速編程實現物理過程與圖像三維可視化展示。最近,中國農業大學的研究者劉玉穎等在大學物理教學中引入vpython對剛體的三維運動,[8]天體的軌道運動[9]以及點電荷體系的靜電場與電荷在電場中的運動[10]進行了三維模擬,獲得了很好的教學展示效果。在大學物理交互式、可視化在線教學中,Matlab、Mathematica和origin等商業軟件完全可以由Python語言及其豐富的且更新速度很快、不斷發展進步的第三方庫所替代。
Jupyter-lab平臺能夠將說明文檔、公式、多媒體音視頻、Python程序代碼、圖表和圖形動畫都整合在一個文檔中,這一特點非常適合在公式和圖形繁多的大學物理在線教學中使用。運用這一平臺,教師可以方便的編寫大學物理課程教案、演示圖表和動畫,甚至進行公式推導演算,將理論與計算機實踐操作相結合,指導學生實現人機互動式、圖形化教學。該教學平臺在大學物理在線教學中具有以下優勢:(1)Jupyter-lab和Python語言具有強大的計算生態支持,通過網絡只需要使用pip install命令加上庫名就可以安裝大量豐富的第三方庫,非常方便快捷。例如通過安裝第三方庫vpython后便可以快速的創建大學物理中各種三維的物理模型動畫和教學場景,為形象化教學創造了條件。(2)平臺采用Python語言交互式編程,可以隨時修改參數,重新運行程序,所見即所得的觀察方式方便學生自己動手從程序運行和調試中獲取知識,讓學生成為學習的主體并實現人機互動式的教學模式成為可能,可以充分調動學生的學習積極性。(3)在Jupyter-lab平臺Python程序運行的可視化結果可以在代碼下方實時顯示出來,文字、公式、圖表、動畫和視頻都在一個界面中顯示,且能自由修改顏色、字體大小、圖表尺寸和動畫演示速度等,且支持折疊功能,這一點非常有利于教師清晰的展示理論知識點和重難點。(4)該平臺可以安裝在個人電腦上,支持window、mac和linux等操作系統,同時也支持搭建遠程服務器,允許多用戶同時遠程登陸并進行學生權限管理,在任何時候都可以通過網絡連接服務器實現教學,提供了多樣選擇性。(5)最好的學習是在做中學,在教學中引導學生利用Python語言進行編程實踐實現大學物理圖形化,在學習物理理論知識的過程中,同時也為學生訓練計算思維、工程技能提供了載體和實際應用場景,為培養學生理論聯系實際,解決實際問題的能力提供良好的環境與平臺。
Jupyter-lab作為基于web的集成開發環境,利用它可以方便地編寫教案和制作授課課件。筆者基于Jupyter-lab平臺開展了大學物理交互式在線教學的實踐與探索,下面僅舉兩例來說明該教學模式的構建過程。第一個例子是在簡諧振動的教學中,可以利用vpython庫并編程進行完整的教學展示,首先構建了簡諧振動的三維場景,給出了簡諧振動方程的理論推導、數值求解及其擴展應用、振動曲線的動態繪制,基于vpython對簡諧振動的旋轉矢量法描述進行了編程動畫展示,并進一步基于旋轉矢量法動態分析了振動的合成與分解,得出了拍的形成和李薩如圖的動態展示,最后給出了復雜振動的傅里葉分析合成圖。在本文物理圖像場景和振動曲線的展示中,利用第三方庫vpython豐富的內置三維形體對象,包括彈簧振子、長方體、小球和箭頭就可以構建出水平彈簧振子的三維運動場景,并通過python程序代碼設置彈簧倔強系數和小球受到的線性回復力,就可以自由方便的控制簡諧振動小球的三維動態運動展示,并動態同步的在畫布上畫出振動曲線,讓學生直觀、生動的獲取簡諧振動的運動圖景。具體編程實踐中,動畫展示部分可以采用for循環,也可以采用while語句,通過修改三維實物對象的pos屬性參數從而實現實物運動模擬仿真的實景動畫效果。
圖1給出了基于Jupyter-lab平臺的簡諧振動教學內容與動畫展示截圖,利用Jupyter-lab的內容折疊隱藏功能,圖1(a)展示了簡諧振動的全部教學內容截圖。圖1(b)給出了第一個部分內容的隱藏內容截圖,可以看出包含有Markdown編輯文字和LaTeX公式區,Python代碼區和三維動畫場景及畫布區。圖1(c)給出了基于vpython繪制的簡諧振動描述的動態動畫截圖。集成在Jupyter-lab平臺上的Markdown工具能夠支持廣泛使用的LaTex公式編輯語法,對復雜的物理公式與公式推導具有優秀的展示效果。Python代碼區支持語法高亮和代碼補全等功能,可以方便學生閱讀和修改代碼,具有很好的互動效果。三維動畫場景及畫布區能夠通過程序進行自由控制展示效果,特別是基于vpython的動畫場景輸出能夠利用鼠標實現旋轉、移動、放大和縮小等各種功能,方便學生從不同的角度進行觀察,同時也增強了學習過程的互動性和趣味性。

圖1 基于Jupyter-lab平臺的簡諧振動教學內容與動畫展示截圖
第二個教學實例是在大學物理分子熱運動的教學中,理想氣體與分子熱運動的物理圖景發生在三維空間,而且微觀粒子不斷的發生頻繁碰撞,其運動狀態隨時間發生變化,運動情況非常復雜,但是在熱平衡的時候分子運動速率表現出統計規律性。這些抽象的物理概念是大學物理課程學習的關鍵,但是這些過程的可視化、圖像化不易從實驗中獲得,為了讓學生掌握這些概念,就可以借助vpython模擬物理過程還原物理圖景,加速學生的理解和掌握。圖2給出了基于vpython分子熱運動三維動態模擬結果與分析,其中圖2(a)給出了分子熱運動的vpython三維動態模擬動畫截圖,圖2(a)中還給出了代表性紅色小球表示的特定氣體分子的無規則熱運動軌跡,圖2(b)以柱狀圖的形式給出了分子速率分布模擬的統計結果和麥克斯韋速率分布律的理論曲線。值得指出的是,圖2(b)中的柱狀圖是通過模擬硬球碰撞的過程統計得出在不同時刻對應的不同速率區間的分子個數,隨著時間的推移,通過圖中的柱狀圖的形式可以動態的顯示分子的運動速率分布會越來越接近麥克斯韋速率分布律,可以通過圖形動態的展示兩者逐漸趨于一致,最后仿真模擬的分子熱運動速率分布統計結果和紅色的麥克斯韋速率分布律理論曲線吻合的很好,讓學生從微觀的角度有更加直觀的認識和理解。對該教學的程序代碼,可以引導學生進一步進行修改,例如可以編程統計計算出微觀粒子的平均自由程和平均碰撞頻率,這也是大學物理教材中接下來的章節內容,這些可以作為課外作業留給學生思考和完成。在教學實踐中,學生普遍反映基于Jupyter-lab平臺的教學模式形象、生動,在學習掌握理論知識的同時提高了計算機應用水平,顯示出良好的教學效果。實踐表明,該教學模式提供了促進學生物理概念理解與物理圖像建立的新手段,對提高學生學習興趣,培養學生計算思維,為“新工科”教學模式改革提供了新的途徑。

圖2 基于vpython分子熱運動三維動態模擬結果與分析
Jupyter-lab平臺作為一種新興的交互式教學平臺,通過導入vpython庫開展三維可視化編程模擬各種物理過程,除了特別適合大學物理教學外,還可以滿足不同學科領域的教學需求,在國外高校的互動式教學中有較廣泛的應用。從教學試點和實踐來看,學生通過vpython的編程模擬能力的訓練后,可以應用他們獲得的技能應用到其它物理或學科問題上,作出了很多令人耳目一新的物理現象的模擬結果。學生在學習的過程中,雖然需要投入較多的精力完成課后編程作業,但是對做出來的成果非常有成就感,也能幫助他們更深刻的理解物理圖景和物理公式背后的物理意義。但是,我國在Jupyter-lab平臺應用于互動式教學方面與國外相比,起步時間略晚,內容上限于編程語言的互動教育,特別是在大學物理互動式教學應用上還很少見,在具體實際操作中還不夠成熟,擬解決的主要問題體現在如下幾點:(1)精選符合學生實際能力水平和各模塊內容難易適當的能夠融入vpython數值仿真的大學物理教學課堂演示內容,并編寫程序。(2)在教學中引導并培養學生自覺使用科學計算語言解決物理教材中遇到問題的意識和能力,形成計算思維,培養工程意識和工程能力。(3)在教學實踐中,整理出一套適合理工科高校大學物理各模塊與Jupyter-lab平臺相融合的教學內容,并形成比較規范的教學流程和教學體系。(4)探索和完善基于Python語言與vpython三維動態模擬的大學物理模塊化“新工科”教學模式,建立評價學生學習效果與培養質量的指標與考核體系。