美國如何用課程設計培養人才?台灣從何借鏡?

換日線
換日線

作者:Shine Hsu/換日線專欄

撰寫此文的同時,我終於在去(2020)年自卡內基美隆大學(Carnegie Mellon University,以下簡稱 CMU)取得電腦工程碩士學位,正式畢業並脫離 CMU 的作業苦海。此文將紀錄這一年來,自己觀察到 CMU 在計算機科學課程與台灣教育方式上的不同之處;然而,因為我只在 CMU 待了一年,後半年更遭遇新冠肺炎疫情封城,課堂和同儕互動體驗大不相同。就學期間沒有參與研究計畫而單純修課.同時我於台灣的修課印象,也停留在多年前,因此可能將與台灣現況有些出入。接下來,將以個人視角與讀者分享,我在根據《U.S. News》 所公布之排名中,美國 CS (電腦科學)第一名的 CMU 就學所獲得的觀察與見解。

讓教授專注於「教學」,學習成果更顯著!

CMU 的部分課程,教學相對扎實全面,且擁有豐富的研究和就業資源、完整的教學制度,加上以及眾多助教的協助,還能在課程中結合使用各種業界工具、平台──然而,這一切都是建立在超過台灣一般大學 20 倍的學費,CMU 一學期的學費約是美金 25,000 元(約新台幣 70 萬元)。

因此,筆者認為台灣的大學教育,針對培養 CS 領域的能力上,在性價比和公平性上仍是大勝。不過,CMU 部分制度和教學方式,確實有可反思學習之處,並基於相同概念發展適合台灣教育系統的方式:

例如在 CMU 有設立所謂的「Professor with Teaching Track」。通常這些教授會對於教學更有熱忱,會投入更多時間研究精進課程內容、讓學習效果更好。因此,在他們的教授升等評比時,也會以教學為主要依據,研究等其他成果為輔。相信對於學校中佔大多數,並無從事學術研究的大學生和修課型碩士生們而言,能夠擁有更加良好課程體驗、學習。

一般而言,Teaching Professor 會負責系上重要的主科課程。舉例來說,在 CMU 負責「10601 Introduction to Machine Learning」的 Teaching Professor Matt Gormley,就常在課堂上帶入各種有趣生活化的例子解釋觀念。而且他的課程內容先後順序設計,或甚至是期中考試Open Book 、但可以帶一張手寫大抄的方式,都是來自他讀過的研究中,科學化驗證能有助學習的方式。近年來,他的這門課在課程評價系統上的教學評分(4.8/5)就高於平均許多。

在台灣的教授升等,似乎仍以學術研究成果為主要依據,這或許導致教授們礙於升等壓力和研究成果導向的評價系統,使得他們即便想要重新檢視設計課程卻分身乏術;亦或是部分教授本身就相對不擅於教學,或對教學的興趣不大.以至於在每個科系重要的主科課程,有時難以找到公認教學上不錯的教授,而這對於大學內佔大部分以修課為主的學生相對可惜。

1 學期 14 週,深入修習 4 門課

CMU 是出名的「作業多又重」,入學前的我,其實不怎麼相信,心想作業是能多到哪去?反正一週平日有 5 天,每天課後都寫作業總行了吧!結果,作業超乎想像的多又難。學期間忙碌時,常常一週 7 天從醒來到睡覺前,都在寫作業。

相對於台灣一學期約為 18 週左右,CMU 每學期有 14 週。根據每個 Program 的不同設計,大部分的學生每學期會修 3 至 4 門課左右。想當初在台灣一學期修 25 學分,主修選修加起來多達 10 門課左右。不同於台灣廣泛探索的修課模式,CMU 的課程設計讓學生能在單門課程中較為深入學習,且涵蓋範圍廣。不少扎實的課程完整修過後,就能大致熟悉業界對應領域的基本技能。

但也因為如此,課程時間較短,因此課業份量相對重,整體步調就更加緊湊。課堂給予每份作業的時間和間隔較短,基本上剛結束一份作業後,馬上就會出下一份,常常每週都會同時有2~3 份作業截止。

舉例來說,我修過的課程「15–213: Introduction to Computer Systems」,一學期就有 9 次的 Lab work 需要繳交;「10601 Introduction to Machine Learning」,包含手寫與程式,也有 9 次作業。跟我個人印象中台灣大多數的課程作業相比,多上不少。不過當然,CMU 也有相對不需要花費這麼多心力的「水課」,但除非特殊原因,大多數人是不會願意大筆學費得過且過。

筆者感覺 CMU 相對更強調學生應透徹了解每個觀念和其細節,而不是有大方向的印象會應用即可。因此,課程中有許多作業會要求從 0 開始實作所有的細節。或許是美國教育在國高中時期,已經設計讓學生能有相對充分的時間與空間探索興趣,因此大學則以訓練專業為主。若是在 CMU 一門內容和作業評價不錯的課程中,都是能夠透過大量的作業和課程內容相輔相成,對所學觀念有更深入完整的了解,使學生具備進入業界所需的技能和程度。反之,因為修課數量相對較少,在 CMU 要對不同領域廣泛的探索相對限制較大。

再三強調「學術誠信」,作業靠學生自己從 0 到 1

建立於歐美普遍的基督教文化上,社會相對強調誠信的重要性,在教育上也體現嚴格的學術誠信規定。尤其是在許多學生的共同大班課程的第一堂課時,教授便會再三強調「學術誠信」(Academic Integrity),講述他們會如何查驗繳交的每份作業,甚至秀出每年違反規定學生的數目,也詳加界定他們容許的討論方式,像是 high-level 的釐清觀念是被許可的,而code-level 的交流基本都是被禁止的。

以前在台灣不諱言地,我自己在某些課程作業報告,有時也會參考同學或是騰上網路上找到的正解;然而在 CMU。我所有認識的人,基本上每份作業都是靠自己慢慢拼湊出來,一部分是因為這嚴格的規定,另一方面大概也是極其昂貴的學費,讓人更努力鞭策自己學習。

強調學生親自完成每份作業,一方面是學術誠信的重要,但更是從課程中讓人感受到教授們是真心的希望能讓所有的學生,真正學會課程內容,並且融會貫通達到課程期許的目標,印象中以前在台灣修課時,大多時候程式作業只要求最後的正確性,因此常是自己隨意拼湊各路的 code snippet 後,能夠在 local 跑過測資就上傳了。對於 Code Quality/Testing/CI/CD/Colab/Documentation 著墨較少;而在 CMU 修的好幾門課都特別強調code quality 和相關工具的使用──這十分符合我先前實際在台灣工作時的業界要求。

像是在「17514 Principles of Software Construction」這門課會使用 Git & Travis 來實作project,熟悉業界團隊合作常見的 tools 和 CI/CD 流程,也會使用 Check style/SpotBug確保基本的 code quality,撰寫每個 feature 對應的 Unit Tests,每個 class/function 也需要寫上對應的 JavaDoc,而這門課更加強調設計的重要性,因此會考慮到程式的 Extensibility、API design 和 architecture,而許多其他課程會使用到 Gradescope,能夠在此平台上建立測資和執行程式,自動化程式作業的評分,十分方便。

學生與教授、助教互動即時且頻繁

每門課程基本上都會有 Piazza 或是 Slack 等協作平台,讓學生和教授、助教討論。筆者在台灣多數課程下課後和教授助教的接觸或討論較少,也沒有類似的方式能夠快速有效的找到教授、助教詢問。或許是歐美相對主動積極討論,有問題就勇於發問的風氣,二來是強調學術誠信,因此作業都得親自完成,禁止和同儕討論太細節的問題或是 debug,因此在 Piazza 、 Slack 上,便會和教授、助教有針對作業或是上課內容的大量討論,如果對於課程設計或是任何其他問題也都可以直接在上面提出。

一個蠻有趣常見的例子是,常會有人提出因為某些原因希望能夠延後某次作業的截止日期,底下便會有許多人附和。只要原因合理的情況下,大多時候教授都會順應民意,通融延後該次作業的死線。

※本文由換日線網站授權刊載,原標題為《 在「電腦科學」美國排名第一的卡內基美隆大學:如何藉課程設計培養一流人才?台灣又能從何借鏡?》,未經同意禁止轉載

更多換日線文章

為什麼我來交換後,深覺自己在臺灣的大學荒廢了三年?——談臺、紐大學教育之比較

一週花 40 小時唸書,你敢說自己是「全職大學生」嗎?──5 點對比台澳教育差異

作者簡介:

Shine Hsu,在台灣完成學業並在科技業工作過後,到美國嘗試不同職涯,探索體驗人生,希望能有所學習並帶回台灣。關心教育學習和職涯發展相關議題,希望能透過分享自身心得,提供不同觀點,同時也讓自己反思旅程中的收穫。

______________

【Yahoo論壇】係網友、專家的意見交流平台,文章僅反映作者意見,不代表Yahoo奇摩立場 >>> 投稿去