眼底城事

eyes on place



想像專業應用,刺激程式設計學習意願—訪談彰師大地理系郭飛鷹助理教授

提問者:理查
受訪者:郭飛鷹助理教授

前言:在教育部持續推動程式教育的當下,為了摸清楚程式設計課程在空間相關科系的學程中,能夠扮演什麼角色,眼底城事陸續聯絡幾位在大學中任教的老師,希望談談程式設計課程如何幫助學生提升主修領域的專業素養(延伸閱讀前導文:大學空間相關科系的程式設計與運算思維)。

(圖片來源:NASA World Wind)

在這篇文章中,紀錄了與彰化師範大學地理學系的郭飛鷹助理教授文字訪談內容。郭教授目前在地理系大二開設「程式設計與資料視覺化」課程,在大一也開設「人工智慧及其應用」課程,兩門課都是涉及了 Python 程式語言的教學及應用。地理學系所面對的議題十分廣泛,無論是永續環境,還是韌性社會,都能夠是此學門下鑽研的面向。與郭教授的對話,也從討論程式設計課如何安排其中而展開。

Q1.首先想請教,在彰師大地理學系,兩門「程式設計」的課程在大學部的學程中處在什麼位置?扮演了什麼樣的角色?

「人工智慧及其應用」是學校規定每個系都必須開設的大一必修課,旨在推廣AI的學習和應用。「程式設計與資料視覺化」是系上的選修課,目的是讓對於利用程式語言來整理和視覺化大量資料有興趣的同學能夠有機會學習相關的知識和技能,並且能在未來整合系上的專業。

不過因為一些原因(詳見Q2的回答),我個人將「人工智慧及其應用」定位在程式設計的基礎學習,「程式設計與資料視覺化」則是定位在廣泛的資料科學能力培養,並不侷限在地理相關的專業整合和應用。

Q2.接著想請教,在規劃兩門「程式設計」課程時,會怎麼因應地理系學生的特性(例如地理學領域的思考方式、日常熟悉的工具、系上未來必修的數位工具)來安排授課內容?或是以另一個方式提問,兩門「程式設計」課程是如何藉由課程內容的安排,以幫助學生們在未來課業或專業方面的成長?

「人工智慧及其應用」安排在大一,但是大一學生並未先學習過微積分或是機率統計等課程,所以不太可能教導學生AI模型背後的數學理論;導致學生只能走馬看花,無法深入瞭解AI模型的原理,而過往幾屆的學生也確實反應過此問題。因此,我114-1學期接手這門課,便改成以Python程式語言的基礎作為主要教學內容,再搭配現成的Python第三方套件實作一些簡單的AI應用(如:影像判釋、語音判讀等內容)。如此既能滿足學生學習的需求、也能符合課程名稱的要求。

「程式設計與資料視覺化」在系上原本是委託資管系的老師開課,但授課內容是C#程式語言,同樣也是有學生反應跟系上的專業較難以整合。因此,我將這門課拉回來在系上自己開,並且改成以Python作為主要的授課內容,教導學生如何使用Python程式語言進行有效率的資料整理和統計圖表視覺化。

這兩門課程都選擇教授Python程式語言是因為地理資訊系統的專業軟體(ArcGIS和QGIS)都包含了Python的串接應用,使用者可以自行使用Python撰寫客製化的空間分析功能然後整合到軟體當中,不再受制於軟體沒有提供的分析功能。同時,本系的陳清目老師所開設的另外兩門進階選修課程「地理資訊系統程式運用」與「數位地球及全球環境變遷」,也是以Python作為主要工具。因此,同學們先修完我的課程之後,將比較能夠輕易上手陳老師開設的進階選修課程。

地理資訊軟體 ArcGIS 可以使用 Python 進行進階應用操作 (圖片來源:esri.com)

Q3.以此看來,Python程式語言對地理系學生來說,在空間分析、資料處理和視覺化等方面,是具有效益的。那麼在課堂中,是如何規劃課程內容或上課方式,來幫助學生的思考轉向,從偏向社會組的思考方式轉向程式演算法建構的思考方式?

相較於電資學院的課程比較強調演算法的理論、運算效率等方面,我們會從比較實務應用的角度切入;先讓學生瞭解程式設計到底能做到什麼事情,並從中讓他們體會到程式設計的優點和便利性,逐步建立他們對於程式設計的興趣,再引導他們去思考如何能夠讓自己撰寫的程式碼更簡潔或是更有效率。

Q4.除了能在未來銜接其他課程所需的Pyhton知識外,你認為程式設計課程還能在哪些方面幫助地理系的學生?

並非所有地理系的學生都是空間資訊專長,對於人文地理或是自然地理感興趣的學生可能不會選修進階的程式設計相關課程。不過,程式設計對他們而言,依然是有助於完成專題報告或是學位論文的工具。例如人文地理有大量的訪談紀錄或是史料文獻,可以透過程式設計擷取出經常出現的字詞,搭配文字雲的視覺化呈現,能讓讀者一目瞭然這些資訊中的共通關鍵字,快速掌握研究的重點。另一方面,自然地理有許多野外測量和調查的資料,程式設計能夠協助快速整理資料並且進行初步的資料探勘,藉此判斷所蒐集到的資料之品質好壞狀況,以及是否需要進行補強或是調整原本的量測方式。

文字雲能以圖像化呈現文獻中的關鍵字詞變化(圖片來源:WIREs Energy Environ 2015. doi: 10.1002/wene.180

Q5.截至目前的教學經驗中,你認為地理系的學生在參與程式設計課程時,所面臨最大的困難或困境是什麼?

由於我是114-1學期才會第一次開設這兩門課程,所以目前並未有在彰師大地理系教導程式設計課程的相關經驗;不過以我之前在台大地理系擔任助教的教學經驗來說,大概會有兩個方面的問題。首先,因為地理系的學生組成大多來自社會組,所以對於程式設計這種需要大量邏輯思考的學科可能會比較難上手,需要放慢講解的節奏並搭配較多的實例進行教學。第二,在學習的過程中,學生可能會對於程式設計這項能力的必要性感到懷疑,特別是在學習基礎的階段,尚未與地理相關的專業進行結合時。而在興致缺缺的狀況下,就更容易導致學生無法投入在學習中,與前一點形成惡性循環。因此,必要時,我們會搭配一些地理專業的內容進行示範,藉此激發學生的學習意願。

Q6.郭老師提到在擔任助教的經驗中,學生對於程式設計這項能力的必要性感到懷疑,而課程安排的應對方式,是搭配地理專業的內容進行示範來激發學生的學習意願。請問這樣的策略,有多大程度達到激發學生學習意願的效果?

這個效果有點難以量化,不過可以感受得到學生的學習意願和狀況有明顯改善。就好比我在Q3的回答一樣,先讓學生瞭解程式設計能夠在實務應用上完成怎樣的任務,以及未來可能可以如何與系上的專業科目進行整合,就比較能夠激發出學習的興趣和動力。

Q7.除了前述所提到邏輯思考門檻,以及基礎階段未與地理專業結合之外,你認為還有沒有其他潛在的原因影響學生的學習意願?

我認為還有一個原因可能是學生在高中時期對於大學地理系的課程組成還不是很熟悉,沒有預期到會有程式設計或是比較偏向量化分析的相關課程,以至於入學後發現實際狀況與原本的想像有一些落差,影響了學習意願。這部分可能需要透過大學端這邊加強推廣和介紹,讓高中生在選填志願時對於地理系有足夠的認識。

我是彰化師範大學地理系的助理教授郭飛鷹,我的研究興趣係以地理計算(Geo-computing)的方式來理解「群聚」、「時間動態」和「空間流動」這三項重要的地理元素,以及它們之間的交互作用所產生的地理現象。具體研究成果包含了:地理群聚隨著時間進行演化的過程、或是偵測空間流動(例如人口移動)所形塑出的地理群聚、考量時間周期的空間模擬模型、以及偵測地理空間中的無形之跨域流動等議題。近期研究則聚焦在整合街景影像辨識與圖神經網絡(Graph neural network, GNN)等技術,探討街道空間在不同脈絡下的角色功能差異。
除了學術文章的出版之外,我也使用了各種多元的方式呈現學術研究成果。包括MST-DBSCAN演算法的Python開源程式碼(https://github.com/wenlab501/pysda)、或是天下雜誌與東森新聞針對防疫分區研究進行採訪(https://web.cw.com.tw/covid19-taipei-lockdown/)、以及NTU Highlights刊登模擬模型的研究成果(https://ntubeats.ntu.edu.tw/enews/94/09.html)。相信這些多元化的呈現方式有助於向社會大眾推廣學術研究的內容和貢獻,以及數學與地理的結合所帶來的價值。
我將持續在這條道路上前進,也非常歡迎對這些議題感興趣的各位師長前輩與後進一同交流討論。


發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *