李杰森 劉曉莉 林潔麗 吳 臣 許 鋒 陳 忻 曾 飛
(1. 佛山科學技術學院環境與化學工程學院,廣東 佛山 528000;2. 佛山科學技術學院數學與大數據學院,廣東 佛山 528000;3. 佛山科學技術學院電子信息工程學院,廣東 佛山 528000;4. 瀚藍環境股份有限公司,廣東 佛山 528200)
自然科學和工程技術的發展,都離不開數學。科學問題及工程問題,通常都需要數學來解決。隨著社會發展,新的工程應用與實踐具有相當的復雜性,其背后的數學問題,難以通過簡單的解析計算或者小規模的數值方法得以解決,往往需要借助計算機。計算機硬件,以及算法的迅速發展,在很大程度上推動了工程應用的發展。《化工數值計算》這門課,正是需要向學生傳授這一思想,并有意識地利用工程數值計算的方法來解決化工生產中的實際問題。與數學專業開設的《數值計算》或《數值分析》課程相比,它更關注實際應用,著重數學與化工生產實際的結合。
在新工科背景下,在教授學生一定數學原理以及計算機技術之外,更應該培養學生的工程意識,提高其分析問題和使用數學工具的能力,鍛煉其以計算機手段解決問題的能力,同時也要調動學生學習的積極性。這樣,才能使《化工數值計算》課程的教學與實際應用緊密結合。
本文結合《化工數值計算》課程的特點,結合佛山科學技術學院化學工程與工藝專業(下稱佛大化工專業)的教學實踐,提出在教學方法、內容設置、考核方式等方面進行的創新。
《數值計算》(有些院校取名《數值分析》、《數值方法》或其他相近的名稱)是數學類專業一門重要的專業課程。縱觀大部分院校數學專業開設的《數值計算》課程,都有著以下兩個特點:
(1) 偏重理論,對于相關理論,講得較為詳盡,都有較為詳細的推導過程;各種算法都有相應的計算公式及誤差公式,定義抽象、證明和推導過程都極其復雜;
(2) 上機操作的內容都只是為了解決某個數學問題,例如用數值方法計算某個定積分,或求解某個微分方程等,而沒有與具體的應用結合。
《化工數值計算》課程的主要內容與《數值計算》課程大致相同,但區別比較明顯。主要區別如下:
(1) 側重點有所不同。《化工數值計算》課程相比之下更加側重實際應用,因此不像數學類專業的《數值計算》課程,相關理論的講解及推導相應地減小,更重側重化工生產實際中的數學模型的求解。
(2) 在教學目的方面,《數值計算》課程是為了鍛煉學生求解數學問題的能力,而《化工數值計算》課程則為了鍛煉學生分析和解決生產實際問題的能力。
因此,《化工數值計算》課程的教學,不能夠照搬《數值計算》課程,而是把《數值計算》課程中對基本數學知識及實踐技能與為化工生產實際相結合,在此基礎上繼承和發展,從而形成《化工數值計算》課程獨有的,適合化工專業人才培養目標的教學體系。
根據以上分析,對《化工數值計算》課程的教學,需要與學科建設、生產過程、以及實際應用等方面相結合。因此,在教學設計方面,不能夠把《化工數值計算》課程當作純數學類課程,更不能夠過分強調數學學科的嚴謹性、系統性、完整性,而是要根據這門課程所具有的實用性來精選教學內容、變革教學方式和手段、以及優化考核方式。
2017年以前佛大化工專業并沒有開設《化工數值計算》課程。學校于2017年組織修訂了人才培養計劃和教學大綱,并對人才培養規格的提出新要求。其中有兩個指標點如下:
“指標點 2-4. 能夠從數學與自然科學的角度對解決方案進行分析,并試圖改進。”
“指標點 5-2. 能夠初步運用現代信息技術工具對化工問題進行預測與模擬,并了解其局限性。”
為適應新工科背景下化工專業教育的形勢,并滿足對人才培養規格的新要求,佛大化工專業新增了《化工數值計算》課程,并制定了相應的教學大綱。課程一共32學時,其中16學時為理論課的講授,16學時為上機實驗。每周4學時,其中理論課與上機課各2學時。每周課程內容如表1所示。其理論課與數學類專業《數值計算》課程的內容相似,但在課程講授中會在不影響后面內容理解的前提下,適當略過抽象晦澀的理論。同時也不能照搬數學類專業《數值計算》課程的教學模式,要在相應內容中加入與化工生產實際緊密聯系的案例,更多的時間用于結合計算機技術,演示相關算法在MATLAB中的實現,包括代碼示例與分析。在上機的教學環節中,會給學生提出一個化工生產實際中遇到的問題,要求學生用剛學到的數值方法在該問題,老師也會進行指導。通過理論講授和上機操作的結合,力求以問題驅動教學,以本學科實際情景為出發點,引導學生進行有目的的思考,并在教師指導下分析化工實際問題,提出解決方案,通過借助計算機工具來編寫代碼解決實際問題。

表1 《化工數值計算》課程的授課內容及安排
由于專業課程設置的原因,佛大化工專業學生普遍數學功底不太扎實,計算機應用能力也較為欠缺,由此對《化工數值計算》課程教學的開展來兩方面的問題:
(1) 課程中枯燥乏味、錯綜復雜的數學公式及其推導,會把學生嚇倒,特別是第一次課,過多的數學內容會讓學生產生畏懼心理,產生對課程的排斥情緒,甚至厭學。
(2) 學生不熟悉程序設計的基本思想,缺乏基本動手能力,對于代碼檢查排錯也是無從下手,因此他們不能熟練運用計算機處理實際問題,更不會通過計算機編程來解決實際問題。
這些問題會給學生帶來較大的困難,對授課老師來說更是個很大的挑戰。針對這些問題,我們提出了如下解決方法。
針對第一個問題,如上所述,《化工數值計算》課程應當弱化數學理論教學,強化算法應用,強調數學與計算機的工具性,堅持以生產實踐為導向。在第一次課,就要給學生介紹數值計算在化工生產中的應用,特別是學生在本專業課程的學習中會遇到的問題。例如,《化工熱力學》中遇到的立方型狀態方程的求解,《化工原理》中對流傳熱系數的計算,《物理化學》中反應動力學參數的確定,以及《物理化學》和《化工熱力學》都會涉及相平衡的計算。這些問題能夠給學生設置一個場景和明確的目標,就是要解決這些實際問題;而解決這些實際問題需要用到一定的數學工具,并且把這些手段通過計算機編程來實現。相比一開始就展現一大堆數學原理,這樣的課程導入符合《化工數值計算》課程的特點,也一定程度上避免學生畏懼心理。
在講授各部分內容時,在不影響課程連貫性的前提下,適當省略一些數學理論,尤其是過于復雜的部分,僅簡單介紹數學基礎,把更多的時間用于講解算法的應用。同時列出參考書目或相關資料,讓有興趣且學有余力的同學可以深入了解。例如,數學類專業《數值計算》課程在講解非線性代數方程的數值解時,會先講述迭代法的基本思想,接著討論迭代收斂性以及誤差限,然后再講述常用的一種數值方法——Newton-Raphson迭代,并推導其迭代公式,即
其中xn為輸入值,xn+1為輸出值,當|xn-xn+1|小于給定誤差時認為迭代收斂。在《化工數值計算》課程則直接進入主題。由于Newton-Raphson迭代的推導只需要一元微分學及平面解析幾何的簡單知識,在課上也可考慮把上述公式推導出來。但是,更重要的就是要給學生講解這個迭代公式的應用。
針對第二個問題,首先要選用門檻較低,較容易上手的編程語言。MATLAB具有用法簡單、靈活、結構性強、延展性好等優點,學生容易快速掌握基本的語法。同時,MATLAB有著較多內置函數,能夠把常用的算法通過簡單的函數命令來實現,與本課程要弱化數學理論的宗旨相一致。相比之下,C語言、Fortran語言等用法較為復雜,沒有內置函數,也難以很快上手。雖然,通過LAPACK等庫能夠實現部分與MATLAB內置函數相類似的功能,但這些庫的安裝較為復雜,可靠性不好,且在主流Windows操作系統中難以兼容。綜合這些因素,《化工數值計算》課程選用了MATLAB作為編程語言。
此外,Python語言也有著一定優勢,例如用法也較為簡單,靈活,通過NumPy,matplotlib等第三方庫也能實現MATLAB的大部分主要功能。因此,Python也是個不錯的選擇。但目前佛大化工專業開設《化工數值計算》課程的時間不長,而課程的建設還需要一定積累,因此還不能同時兼顧Python。在以后的教學中,將逐步實現MATLAB與Python同時并時,在課上同時講授兩種語言,學生可以在兩種語言中自由選擇。
其次,在理論課程中,要詳細講解MATLAB的基本操作,并作必要的演示。在第一次理論課的時候,就重點明確程序設計的基本思想,講解MATLAB的操作,并給學生演示較為常見的程序結構的實現,例如分支判斷,for循環與while循環,子函數及調用,m文件的編寫,等等,并且在上機實踐課讓學生上機操作,熟悉MATLAB的使用,為后續的內容打下基礎。在后面的課程中,需要還需要鞏固加強MATLAB的操作技能。


(a)

(b)
數學類《數值計算》課程普遍會通過定時閉卷書面考試的形式,對學生的基礎理論、基本方法的掌握,也可能同時結合上機操作。書面作答的考試形式可能會引起學生機械式的死記硬背,而缺乏算法的理解以及應用能力。而《化工數值計算》課程需要弱化數學理論的要求,側重實際操作,因此佛大化工專業《化工數值計算》課程按實際情況,通過上機操作進行考核,并包括平時上機實驗與期末上機考核。其中上機考核成績占40%,平時成績占60%。優化后的考核方式能夠強化課程內容的應用價值,更能客觀科學地考查學生的實際應用能力,更能符合化工專業的學科特點以及學生的學情。
(1) 平時成績。平時成績以平時上機表現及實驗報告的完成情況來綜合評定;學生需在老師面前展示代碼及運行結果,并回答相關問題。上機表現包括上機過程與同學和老師的討論,程序運行情況,以及對老師提問的問答。實驗報告要根據當次上機的內容撰寫,內容包括五部分:實驗目的、實驗原理、實驗環境(計算機硬件和軟件系統)、實驗過程與結果、討論分析及感想。同時要求學生把源代碼也要提交給任課老師查閱,防止編造實驗結果的情況出現。為了突出對學生分析問題及實際操作的能力的考查,實驗報告中“實驗過程與結果”、“討論分析及感想”這兩部分為重點考查的內容,模板如圖2所示。

圖2 實驗報告模板
(2) 期末上機考核成績。期末上機考核是在機房隨堂進行,每人一臺電腦終端,可上網查閱資料,也可以帶其他紙質版或者電子版資料,但相互之間不可交流,老師也不會進行指導,所有工作必須獨立完成。教師根據課程講授的內容,選擇與化工生產實際相關的實驗題,盡可能多地覆蓋課程所涉及的重要算法。學生需要當場進行程序設計,解決考題中提出的問題,并當場完成實驗報告,實驗報告要求與平時一樣。學生完成上機考核內容后,要求學生當場演示程序運行的結果,并就運行結果回答相關問題。教師根據實驗報告及表現給學生評定上機考核成績。
《化工數值計算》課程,不僅具有很強的理論性,而且具有明顯的實用性,并與化工生產實際緊密聯系,具有顯著的代表性。本文以佛大化工專業《化工數值計算》為例,結合的相應的化工專業學科特點,給出了本課程建設與改革的一些建議。通過課程的開設,希望能夠培養學生理論聯系實際的優秀品質,提高分析及解決問題的工程素質。同時也希望本文能夠給《化工數值計算》課程的一線教師們帶來一定的啟發和參考。