歡迎光臨
每天分享高質量文章

將 Python 結合到數學教育中 | Linux 中國

身兼教師、開發者、作家數職的 Peter Farrell 來講述為什麼使用 Python 來講數學課會比傳統方法更加好。

— Don Watkins

 

數學課一直都是很討厭的一件事情,尤其對於在傳統教學方法上吃過苦頭的人(例如我)來說。傳統教學方法強調的是死記硬背和理論知識,這種形式與學生們的現實世界似乎相去甚遠。

Peter Farrell[1] 作為一位 Python 開發者和數學教師,發現學生在數學課程中遇到了困難,於是決定嘗試使用 Python 來幫助介紹數學概念。

Peter 的靈感來源於 Logo 語言之父 Seymour Papert[2],他的 Logo 語言現在還存在於 Python 的 Turtle 模塊[3]中。Logo 語言中的海龜形象讓 Peter 喜歡上了 Python,並且進一步將 Python 應用到數學教學中。

Peter 在他的新書《Python 數學奇遇記Math Adventures with Python[4]》中分享了他的方法:“圖文並茂地指導如何用代碼探索數學”。因此我最近對他進行了一次採訪,向他瞭解更多這方面的情況。

Don Watkins(LCTT 譯註:本文作者): 你的教學背景是什麼?

Peter Farrell: 我曾經當過八年的數學老師,之後又做了十年的數學私教。我還在當老師的時候,就閱讀過 Papert 的 《頭腦風暴Mindstorms[5]》並從中受到了啟發,將 Logo 語言和海龜引入到了我所有的數學課上。

DW: 你為什麼開始使用 Python 呢?

PF: 在我當家教的時候,需要教學一門枯燥刻板的數學課程,這是一個痛苦的過程。後來我引入了 Logo 語言和海龜,我的學生剛好是一個編程愛好者,他非常喜歡這樣的方式。在接觸到函式和實際的編程之後,他還提議改用 Python。儘管當時我還不瞭解 Python,但看起來好像和 Logo 語言差別不大,我就同意了。後來我甚至堅持在 Python 上一條道走到黑了!

我還曾經尋找過 3D 圖形方面的軟體包,用來模擬太陽系行星的運動軌跡,讓學生們理解行星是如何在牛頓的萬有引力定律作用下運動的。很多圖形軟體包都需要用到 C 語言編程或者其它一些很複雜的內容,後來我發現了一個叫做 VisualPython 的軟體包,它非常方便使用。於是在那之後的幾年裡,我就一直在用 Vpython[6] 這個軟體包。

所以,我是在和學生一起學習數學的時候被介紹使用 Python 的。在那段時間里,他是我的編程老師,而我則是他的數學老師。

DW: 是什麼讓你對數學感興趣?

PF: 我是通過傳統的方法學習數學的,那時候都是用手寫、用紙記、在黑板上計算。我擅長代數和幾何,在大學的時候也接觸過 Basic 和 Fortran 編程,但那個時候也沒有從中獲取到靈感。直到後來在從編程中收到了啟發,編程可以讓你將數學課上一些晦澀難懂的內容變得簡單直觀,也能讓你輕鬆地繪圖、調整、探索,進而發現更多樂趣。

DW: 是什麼啟發了你使用 Python 教學?

PF: 還是在我當家教的時候,我驚奇地發現可以通過迴圈來計算對同一個函式輸入不同引數的結果。如果用人手計算,可能要花半個小時的時間,但計算機瞬間就完成了。在這樣的基礎上,我們只要將一些計算的過程抽象成一個函式,再對其進行一些適當的擴展,就可以讓計算機來計算了。

DW: 你的教學方法如何幫助學生,特別是在數學上感覺吃力的學生?如何將 Python 編程和數學結合起來

PF: 很多學生,尤其是高中生,都認為通過手工計算和畫圖來解決問題的方式在當今已經沒有必要了,我並不反對這樣的觀點。例如,使用 Excel 來處理資料確實應該算是辦公室工作的基本技能。學習任何一種編程語言,對公司來說都是一項非常有價值的技能。因此,使用計算機計算確實是有實際意義的。

而使用代碼來為數學課創造藝術,則是一項革命性的改變。例如,僅僅是把某個形狀顯示到屏幕上,就需要使用到數學,因為位置需要用 x-y 坐標去表示,而尺寸、顏色等等都是數字。如果想要移動或者更改某些內容,會需要用到變數。更特殊地,如果需要改變位置,就需要更有效的向量來實現。這樣的最終結果是,類似向量、矩陣這些難以捉摸的空洞概念會轉變成實打實有意義的數學工具。

那些看起來在數學上吃力的學生,或許只是不太容易接受“書本上的數學”。因為“書本上的數學”過分強調了死記硬背和循規蹈矩,而有些忽視了創造力和實際應用能力。有些學生其實擅長數學,但並不適應學校的教學方式。我的方法會讓父母們看到他們的孩子通過代碼畫出了很多有趣的圖形,然後說:“我從來不知道正弦和餘弦還能這樣用!”

DW: 你的教學方法是如何在學校里促進 STEM 教育的呢?

PF: 我喜歡將這幾個學科統稱為 STEM(科學、技術、工程、數學Science, Technology, Engineering and Mathematics) 或 STEAM(科學、技術、工程、藝術、數學Science, Technology, Engineering, Art and Mathematics)。但作為數學工作者,我很不希望其中的 M 被忽視。我經常看到很多很小的孩子在 STEM 實驗室里參與一些有趣的專案,這表明他們已經在接受科學、技術和工程方面的教育。與此同時,我發現數學方面的材料和專案卻很少。因此,我和機電一體化[7]領域的優秀教師 Ken Hawthorn 正在著手解決這個問題。

希望我的書能夠幫助鼓勵學生們在技術上有所創新,無論在形式上是切實的還是虛擬的。同時書中還有很多漂亮的圖形,希望能夠激勵大家去體驗編程的過程,並且應用到實際中來。我使用的軟體(Python Processing[8])是免費的,在樹莓派等系統上都可以輕鬆安裝。因為我認為,個人或者學校的成本問題不應該成為學生進入 STEM 世界的門檻。

DW: 你有什麼想要跟其他的數學老師分享?

PF: 如果數學教學機構決定要向學生教導數字推理、邏輯、分析、建模、幾何、資料解釋這些內容,那麼它們應該承認,可以通過編程來實現這些標的。正如我上面所說的,我的教學方法是在嘗試使傳統枯燥的方法變得直觀,我認為任何一位老師都可以做到這一點。他們只需要知道其中的本質做法,就可以使用代碼來完成大量重覆的工作了。

我的教學方法依賴於一些免費的圖形軟體,因此只需要知道在哪裡找到這些軟體包,以及如何使用這些軟體包,就可以開始引導學生使用 21 世紀的技術來解決實際問題,將整個過程和結果可視化,並找到更多可以以此實現的樣式。

赞(0)

分享創造快樂