人文社會科學 x 資訊教育:

在文學院教程式設計!?


陳正賢
Alvin Cheng-Hsien Chen

國立台灣師範大學英語學系

2023年01月12日

背景介紹

  • 國立臺灣師範大學英語系(語言學組)
  • 研究所課程

  1. 本次簡報中,所分享之教學課程網頁,皆可由以上網址取得連結。

文學院、英語系與程式設計

  • 研究需求
    • 量化方法
    • 資料文本與大數據
    • 客觀論證
  • 市場需求
    • 機器學習蓬勃發展
    • 對於人工智慧的求知慾
    • 文組生的危機意識

教學經驗分享

  • 教學題材設計
  • 心得與挑戰分享

教學題材設計

  • 利用R Markdown 建置課程靜態網頁。

  • R語言課程,利用R Bookdown 建置課程教材

  • Python語言課程,利用Jupyter Book建置課程教材。

  • 常態性維護課程網頁,不僅可以幫助學生有效地取得課程內容,同時有助於未來應用。
  • 通常在學習一個程式語言之後,往往在未來真正應用時,還是必須常常回過頭去查看過去的筆記、Documentation等等。
  • 因此,課程網頁不僅是教材,也是參考資源
  • 利用網頁標注工具,Hypothes.is,讓學生能參與課程內容除錯、建議與更新。

  • 透過由的課後練習設計,讓學生可仿照課程內容實作,同時,延伸至更複雜的任務。

  1. 課後練習題的設計,或許是最花時間的,因為必須增強難度,同時,必須給予學生標準答案
  2. 標準答案對文院學生,或許是一種可以降低他們學習焦慮的策略?

教學心得與挑戰

程式語言教學,就像「外語教學」!

  • 每一個「涵式」,就像學習一個全新的外語「詞彙」! 語意、功能、語境與用法,對學生都是必要的。
  • 程式碼撰寫,如同語言寫作,有既定約定俗成「格式」! (如:參數名稱命名限制、程式碼Indent格式等等)
  • 每一個(程式)語言,都有自己獨特的「片語」。
  • 如何由「單句」進入「篇章」,將是語言完成溝通任務的關鍵。(如:自訂函式與控制結構)。
  • 廣泛閱讀」終究是語言進步的不二法門!(如:多多分析他人程式碼撰寫)。

文院生的「線性思考(Thinking in Pipelines)」

  • 文學院的學生,大多數的同學根本沒有接觸過程式語言。
  • 他們最大的挑戰是,程式語言當中的「Zero Tolerance of Ambiguity」,這正好與學生們所熟悉的自然語言,形成強大對比。
  • 要學習如何將日常語言當中的「自動腦補語意」,明確地轉譯成程式碼中的清楚步驟,這是挑戰!

「開個檔案,這麼複雜啊!?」

到底要給學生多「完整」的教材內容?

  • 實作當然會希望給予學生實際操作、撰寫程式碼的經驗,那麼,課堂內容改怎麼提供給學生,「」與「」更有效率呢?
  • 什麼檔案都不給學生,請學生直接參考課程網頁內容?
  • 給予學生程式碼檔案?(RPython 原始碼)
  • 給予學生完整課程內容說明與原始碼? (R MarkodwnPython Notebook 檔案)

看似「不足為道」的每一步,可能都是學生的一大步!

  • 如何透過網路社群尋求協助?(如: Stack Overflow)
  • 如何透過程式語言官方Documentation,找尋自己需要的資料?
  • 如何安裝軟體?
  • 如何克服跨平台問題?(如: Windows, Mac OS)
  • 如何選擇適合的Package,完成任務?

結語

  • 程式語言教學,不管在教材設計、教學方法,與外語教學有許多類似的地方。
  • 如同英語TESOL已成為一個公認的discipline,「程式語言學教學」的未來是令人期待的!
  • 在令人不安的雙語政策下,程式語言教學更是難上加難!
  • 「文學院學生「要/能」寫程式!?」,這是肯定的!

感謝大家!


本次簡報中,所分享之教學課程網頁,皆可由以上網址取得連結。