朱佳俊, 李吉有,張躍輝
(上海交通大學 數學科學學院,上海 200240)
線性代數是數學學科本科教學的重要基礎課程之一,課程的基本內容是利用矩陣作為工具來研究向量空間及其線性變換[1]。線性代數具有高度的抽象性與廣泛的應用性,是人類思維高度發展的象征。在當代社會的科技發展和工程實踐中,線性代數被廣泛應用于經濟、通信、密碼、圖像、建筑等多個領域[2-5],是不可替代的數學工具,并且它也是學習其他代數學科的基礎。因而,讓廣大學生理解并掌握線性代數的理論與思想方法具有重要意義。
當前世界范圍內新一輪科技革命和產業變革正在加速進行,數學學科作為新工科發展的基礎和支撐,在培養學生深厚的數學功底的同時,也應當加強學生們實踐能力的培養,讓學生不僅僅會求解數學問題,還能將所學得的數學知識快速地應用于工程實踐中。
以“問題驅動”的模式將線性代數教學內容有機地結合起來,在教學過程中激發學生的學習興趣和熱情,培養學生學數學、用數學的能力。通過在課堂教學、習題課教學、課后作業等環節結合編程進行實踐教學,在加強學生對課程內容掌握的同時提高學生解決實際問題的能力。在課程結束后通過調查問卷來對教學過程和效果進行反饋、分析,從而不斷促進線性代數課程的教學改革。
學生在學習線性代數課程時,遇到的最大困難是對抽象的概念難以理解掌握[1],這也是教好這門課程所面臨的一個重要挑戰。如何讓學生弄懂線性變換的作用,了解什么是向量空間,理解矩陣乘法為什么要這樣定義,這是授課教師需要仔細思考的問題。
目前,很多學生在學習這門課程時,經常會問學習線性代數有什么用?這個問題雖然功利,但是僅僅用培養邏輯思維能力和培養欣賞數學之美的能力作為答案,學生自然不甚滿意。這時候適當的實際案例能夠更好地激發學生的學習興趣。
線性代數課程的教學內容較多,其中大部分內容又是學習其他數學課程的基礎,教師必須花費足夠的課時才能使學生理解、掌握這些內容。如何在有限的課時里講好這門課就成了一個難題。習題課在課程的教學中實際上扮演著重要角色,它能解答同學學習過程中的疑難困惑,幫助同學們拾遺補缺,鞏固學生們對所學知識的掌握程度,提升同學們對課程的學習效果。但是傳統的習題課大多停留在助教抄寫習題解答的階段,對學生的實質幫助并不大。通過對習題課進行改革,在習題課中添加編程實踐的環節,諸如求逆矩陣,特征值,標準型等的程序算法的實現步驟,不僅能夠加深同學們對其中計算過程的理解,還能夠大幅度提高同學們對線性代數理論的學習興趣。
為了提高線性代數課程的教學效果,很多學者已經進行了不斷的嘗試和研究。文獻[6-9]中研究了Matlab軟件在線性代數教學中的應用;文獻[10-11]中從教學內容、教學方式和考核環節對線性代數教學改革進行了探索;鄧勇等[12]探討了“數學證明”對學習理解的促進作用;王利東等[13]探討了從應用實例出發的課程教學模式;郝志峰[14]探討了在課程教學中融入數學文化的教學模式;朱琳等[15]對國外的教學設計與實踐成果進行了總結分析;師欽賢[16]研究了在課程中開展“問題驅動式”的教學設計問題。
在教學過程中,同學們在理解線性代數的概念時經常會遇到困難。主要的障礙來自于這些概念過于抽象的特性,而將抽象的概念講明白、講透徹就是對老師們教學能力的要求。
回顧人們認識、學習的過程,可以發現人們通常是通過具體的實例來完成對抽象概念理解的。比如認識樹這個概念,當然會有科學上的定義,但是在實際生活中,通過某一棵或者幾棵真實的樹的實例來學習往往會有更好的學習效果。在數學概念的學習上也概莫如是。
線性變換是線性代數中的一個基本而重要的教學內容,其數學的定義十分明確:設U與V是兩個線性空間,U到V的一個映射σ如果滿足可加性條件與齊次性條件,則稱σ是U到V的線性變換[17]。抽象的定義確實具有很強的概括性,但是學生看到這樣的定義很難產生直觀的理解。這時候結合編程的展示,通過一些具體的實例就可以讓學生更快地明白什么是線性變換,它有什么作用,進而快速掌握這一概念。



圖1 線性變換的作用演示
通過具體的實例演示,先讓學生有了感性的認識,再學習數學的抽象概念,幫助他們理解、掌握抽象的概念,從而取得更好的教學效果。
大部分學生在學習過程中希望知道高度抽象的線性代數理論到底有什么用。在教學設計中,可以對部分教學內容采用“問題驅動”式來進行。例如在對矩陣分解這一核心內容進行講解時,其中的奇異值分解(SVD)就有著“數據壓縮”這一重要的應用。
奇異值分解是將任意的m×n階矩陣A分解成為兩個酉矩陣與對角陣的乘積,即A=UDV*。其中U是m階酉矩陣,V是n階酉矩陣,D是m×n階對角陣,D=diag(σ1,σ2,…,σr,0,…,0)m×n,而σ1,σ2,…,σr,0,…,0(共n個)則稱為A的奇異值。

(1)
假定取前100個較大的奇異值,即r=100,則此時需要傳輸的數據為100+100×2 560+100×1 920=448 100個數據,數據壓縮率為9.12%。
這是奇異值分解的簡單應用,但是通過這樣以“問題驅動”的教學方式,以編程為展示手段,既能很好地達到相關內容的教學目標,同時又能激發起學生們學習的興趣,并進一步培養學生應用數學知識,解決實際問題的能力,拓寬他們的視野,突破知識的局限。
在線性代數的教學中,習題課也起著查漏補缺,鞏固學習效果,拓寬學生視野的作用,它是課程教學的有益補充。但是傳統的習題課大多停留在助教抄寫習題解答的階段,對學生的實質幫助并不大。通過對習題課的改革,來探求提高學生學習效果的途徑。
如今,實際生活中各種計算問題已經基本由計算機來具體實現了,其高效的計算能力遠遠超過人們的手工計算。但是學生在學習課程時,仍然必須把具體的計算方式熟練掌握,這不僅是課程的要求,同時也是計算能力的鍛煉,因而必要的練習不能減少或省略。于是考慮利用習題課的機會來使學生熟悉、掌握具體的實踐應用。
現有的很多軟件已經能夠直接進行矩陣的各種變換以及求解,往往只需要一兩個命令就能實現,但是這些命令具體是怎么實現的,學生并不了解。通過在習題課上講解與學生自身實踐相結合,以諸如求轉置矩陣、逆矩陣、矩陣乘積、特征值、特征向量以及各種矩陣分解等問題為實例,具體實現這些函數的功能。學生可以驗證其在解答課后練習時用到的具體計算步驟在函數算法實現過程中的作用。并且在具體調試過程中,也能讓學生注意到容易被忽略的條件,例如在求逆矩陣時需要先判斷行列式是否為零等。表1展示了線性代數課程內容與編程相結合的練習題,考慮到問題的難易程度,分為獨立完成題和分組完成題。

表1 習題課練習題
在學生的動手實踐中培養學生解決實際問題的能力,使其擺脫數學就是在紙上不停演算證明的枯燥感,讓他們能熟練掌握解決實際工程問題的數學工具,并且進一步鞏固他們對于具體算法的掌握能力。
通過對所教授的學生以問卷形式的方式進行調研,了解具體教學成效。參與對象為本校數學科學學院大一學生,分為兩個教學班,共計100人。
針對教學環節,就學生每周課前預習時間、完成作業時間、課后復習時間、上課內容理解比例這些問題作了調查,統計結果見表2。
由表2可以看出學生們課前預習的習慣并不好,他們在完成作業和課后復習上花費的時間較多,在上課內容的理解上同學們反饋一般,這與他們之前的預習時間少有較大關聯,而這也直接導致了他們課后需要花費更多的時間來加深對課程內容的理解和掌握。
針對習題課環節,就習題課對課程的幫助、學生對編程習題指導的需求、編程語言的選擇這些問題作了調查,統計結果見表3。

表2 教學環節調查統計表

表3 習題課環節調查統計表
注:編程語言選擇上有多選情況
由表3可見,同學們普遍還是認為新形式的習題課對課程內容有助益,但在實際上課過程中發現有較多同學沒有編程基礎,在實際操作中面臨困難,故而他們對編程習題的指導需求強烈。而在編程的語言上Matlab和C語言是比較普遍的選擇。
針對課程的總體教學效果,調研了學生們的感興趣比例,統計結果見表4。

表4 課程興趣程度調查統計表
由表4可以看出本課程還是能激發大部分學生的學習興趣的,作為基礎性的課程其教學的目標除了給學生打下扎實的基礎外,激發起學生們對數學的熱情,引導他們學會他們欣賞數學之美,也是衡量一門數學課程是否合格的標準之一。
線性代數作為數學學科本科教學的重要基礎課程之一,其在培養學生邏輯思維能力和夯實數學基礎方面有著重要的作用。通過在教學環節引入編程的實踐應用,從學生對概念的認知、知識的獲取的過程入手,對教學進行合理設計,輔以相應的習題課環節,加深了學生對抽象概念的理解和對具體計算過程的掌握,激發學生學習興趣的同時培養他們將所學知識應用于解決實際問題的能力。寓教于樂,寓學于用,以期為培養出具有扎實數學功底,而又能解決實踐問題的復合型人才奠定堅實基礎。