5/20/2017

下學期我要教演算法

我越來越不務正業?會不會誤人子弟啊?

資管系本來有四班,因為少子化,系上將原本班級分出去,成立新的學系或學程,目前是一班。

每學期開課前,每位老師填寫 6 個志願,再由系課程委員會決定每位老師的授課。為了配合學校的政策,減少必修課;但是,學生必須在三個模組中選二個模組修課,才能畢業。不過,選修課要 15 個人才能開課。根據多年的觀察和教書心得,更加覺得基礎的東西非常重要 (1, 2)演算法是計算機軟體的基礎,也屬於較多人選修的軟體設計模組,所以把演算法當成 6 個志願之一,也希望我可以透過教書的過程中提升自我的能力
 
去年剛教的計算機概論,因為系上希望班導能夠教導生,所以改派大一班導教;系上真正的演算法專家因課程也很多,所以,我 (真的?!) 分到演算法。沒想到,人算不如天算,今年的課程委員會將演算法移出軟體設計模組。

多年前的學生畢業專題發表會有一組做旅遊規劃示範的例子是 9 個旅遊景點學生說:『因為旅行推銷員問題  (TSP) 是 NP-complete所以利用基因演算法求次佳解』。當時我問了 學生問題,仍然得不到滿意的答覆。不過,心中納悶的是,學了一學期的必修課,為什麼還是如此的想法呢?

一般的教法有問題導向或技巧導向,技巧導向或許較容易吸收。但是,當我們面對一個新的問題時通常不知道要用哪一種技巧,所以我會兩種方法並重。針對幾個重要的問題,先說明實際的應用,在不同的章節中提出不同的解法,然後比較這些方法的複雜度和與最佳化的差距 (suboptimality)。

以 Levitin 的 Introduction to the Design and Analysis of Algorithms 為例第三章的窮舉搜尋法就是旅行推銷員問題透過網路上的開放程式碼將教導學生如何驗證這些程式碼的正確性以及一些簡單的測試方法也將出不同程度的作業以配合不同學習動機的學生例如所有人都要執行 TSP 的結果知道不到十秒就可以算出  9 站的最佳解不需要基因演算法要求學習動機高的學生修改部分的程式內容觀察程式結果的變化也將增加實際應用中的考量面向例如旅遊停留所需要的時間或者特定地點吃飯的限制等等

也將採用周信宏老師的建議,讓學生針對課程之外的問題,做一個完整的整理與報告,培養主動學習的能力。

沒有留言:

張貼留言