Life

Teaching Statement

兩年前申請教職時寫過一份 Teaching Statement (教學理念陳述),雖然後來忍痛放棄了在大學教書的機會,但教學仍然是我的熱忱,也是我創辦計算思維學院的初衷之一

我對於教學的執念,源自我一路走來在學習上的困擾。我自知天資有限,別人一點就通的事情,我可能要鑽牛角尖想很久,慢慢地把事情想清楚。例如,以下場景曾多次發生在我的學習過程:

上課時老師講了一個觀念,我聽不懂;轉頭看其他同學,他們卻好像都聽懂了的樣子,也沒人發問;我鼓起勇氣發問,老師卻一副「這麼簡單也要問?」的態度,彷彿我浪費了大家的時間。

可能是我運氣不好,沒遇到好的老師,總之「為什麼我聽不懂」這個陰影,在我的正規教育歷程中簡直如影隨形,長期困擾著我。直到我出國唸了博士,才慢慢地自癒了這份創傷,了解到:聽者聽不懂,通常是講者的責任。但是,我學習新東西仍然很慢,而且需要花時間建構自己的知識體系,才能把東西學懂、學通。這也是我開始教學的第二個初衷:我花了很多時間梳理自己的知識架構,希望把它分享出來,讓跟我有相同困擾的人少走一點彎路。

雖然以下的 Teaching Statement 是針對大學的教學場景,但我的教學理念與經驗同樣適用於目前設定的教學對象:跨領域的知識工作者。

Teaching Statment

「我聽過的會忘記;我看過的能記住;我做過的才真正明白。」這不僅是我個人學習的經驗,也是我的教學理念。在網路資源充足的今日,任何人想學習,特別是與計算機科學及軟體開發實務相關的知識,都能透過各式免費及付費的網路課程、影片及書籍自學。但是,大部分學生缺乏的不是教材與資源,而是學習的興趣與動機。因此,我的教學方式是以實務為導向,並且盡可能搭配程式作業,讓學生知道知識「該怎麼用」,就算自己未來用不到,至少了解這些知識在現實中是怎麼應用的。對於有興趣更深入學習的學生,我也會提供適當的參考資料,並以學習的心態與學生討論,因為我的觀點是:我知道的東西不可能比網路上的更多、更即時;學生知道的東西我也可能不知道。因此,引領學生入門,讓學生見樹也見林,是我的教學目標。

在美國的課堂上,我帶過大學生,也帶過研究生;我帶過實體課程,因應疫情也帶過全遠距課程;在學校之外,我在線上平台開設的付費技術課程 ,超過千名學生,並獲得接近滿分的評價;我出版的技術書籍 ,是當月銷售冠軍及連續兩年百大暢銷書。我在兩門研究所課程當助教時,設計了所有程式作業及期末作業,並且主持過多次團體及一對一討論課,學生們在期末教學評量給我的評價也接近滿分:

  • “This man is an actual legend. Very helpful, professional, with a good sense of humor.”
  • “He has always helped us very clearly. He knows the content very well and is a good presenter.”
  • “Still a legend as always. Honestly should’ve been the professor instead, since I learned way more from Jun-Wei the few times he’s taught us compared to Josh for the entire quarter.”
  • “He was very helpful and open to helping students if they had any questions. No bias, no signs of being annoyed, 100% professional.”

以上證據都佐證了我的教材教法是學生普遍可以接受的。

課程主題方面,我在博士班期間擔任過助教的課程如下:

  • Project in Software System Design: 大學部課程,學生分組認領來自外部 (如非營利組織或新創公司) 或內部 (如系上實驗室) 的系統開發需求,在 10 週內採用敏捷開發法 (agile method) 完成需求分析、軟體設計、實作及成果展示。我的角色包含主持討論課,提供技術教學,評分等。
  • Distributed Software Architecture: 研究所課程,講分散式軟體架構 (e.g., client-server, peer-to-peer, event-driven, REST),以及不同架構的擴充性與安全性等議題。我設計並評分了所有程式作業,包含使用 REST API 的 Android App
  • Software Security and Dependability: 研究所課程,講軟體及系統安全 (e.g., vulnerabilities, reverse engineering, web security)。我主持了多次討論課,並設計了所有程式作業,包含精心規畫的期末作業:先分組設計含有安全漏洞的網站,再以搶旗賽的方式找出別組網站的漏洞。

我的專長及比較有經驗的部份是與軟體工程、應用系統實作 (如 Web/Mobile App開發)、及程式語言相關的課程。