歡迎回來!

我們準備了親子幣小紅包要送給你!

  • 勾選2個喜歡的活動
  • 送出,立即登入領取親子幣100點
  1. 學校教育
  2. 親子教養
  3. 健康
  4. 閱讀
  5. 購物消費
  6. 玩具
  7. 桌遊
  8. 童書
  9. 教育書
  10. 戶外活動
  11. 旅遊
  12. 藝文活動
  13. 料理
  14. 優惠訊息
  15. 折價券
  16. 紅利點數
  17. 現金抵用
  18. 第二件折扣
  19. 進修
  20. 社群活動
  21. 投資理財
謝謝有你,《親子天下》從愛與陪伴出發的10年旅程!

千人狂歡 最受歡迎的程式課

作者: 程晏鈴(天下雜誌)
千人狂歡 最受歡迎的程式課
黃明堂

神祕課號CS61A、CS10,彷彿一串密碼,從此引爆了柏克萊學生的電腦科學狂潮。是什麼樣的魅力,讓上千名「程式菜鳥」排隊上課?

下午兩點不到,加州大學柏克萊分校的薩特大門旁,人潮已經佔據學生活動中心內的所有座位,大廳也站滿了排隊人潮,有學生索性坐在活動中心外的階梯上──他們都在等待。

這門讓學生心甘情願提早到、甚至排隊等候的課,叫作「電腦程式結構與釋義」,是全柏克萊最受歡迎的課,俗稱「CS61A」。去年光是修課人數有兩千五百人;今年三千人,等同一半的柏克萊學生都上這門課。但五年前,這門課只有五百個學生。

掀起柏克萊學程式熱潮的,還有另一堂課號CS10的「程式的美麗與樂趣」,是程式設計入門課程,改良麻省理工學院的程式教學軟體Scratch,用圖像程式語言Snap!教學。

今年吸引三百人修課,甚至顛覆傳統性別刻板印象,超過一半的修課學生都是女生。由於淺顯易懂,更被美國列入高中先修課程的教材。

向非本科生遞出橄欖枝

這兩門課程在柏克萊都屬於低階入門課程。根據柏克萊校園課程報告,修課人數增加主要是來自非主修電腦科學的學生。在矽谷,電腦識讀逐漸被視為大學生核心學術與工作能力,以因應求才若渴的科技公司與新創產業。

CS61A老師、加州大學柏克萊分校電機工程與電腦科學系(EECS)教授德內洛(John DeNero),過去在Google負責Google翻譯的開發,拋下高薪開課,就是認為每個學生都應具備基礎的程式能力,跟電腦一樣思考,培養解決問題的能力。

「理解現在的世界需要不同工具,我可以改變學生的未來跟職業選擇,」他強化語氣,希望這門課有賦權的功能。

「讓學生先對程式產生興趣,再發現可以用程式做出真實的東西,」CS10老師、加州大學柏克萊分校電機工程與電腦科學系教授葛西亞(Dan Garcia)向前傾,忙著示範如何用Snap!畫出持續盛放、不停旋轉的多邊形花朵。

這兩門課吸引大量非主修電腦科學的學生,同樣追求從做中學的理念,但教學方法截然不同。

專案實作 立即給予成就感

在CS61A,三千個學生同時上課,令人難以想像。開學第一堂課,甚至塞爆全校最大的禮堂,於是德內洛開放學生在家裡遠端上課。

對他而言,學程式重點不在授課,而是每堂課後、每週至少三小時起跳的實驗和討論。

CS61A教三種程式語言,包括現在最常用的Python。德內洛認為,學程式語言需要非常多實作練習。又因為絕大部份的學生都是非電腦科學相關科系,要讓學生不受到打擊,最好的做法,就是讓學生可以看到立即成果,同時建構可以支持學生繼續學習的環境。

因此,這門課有兩百五十位助教,輪流帶每週五十個分組討論和實驗時段,甚至也有線上回答跟排程的機制,也追蹤回覆問題的時間,確保每個學生的問題能隨時被解答。

走進柏克萊蘇打教學樓三樓的實驗室,三十個學生對著電腦敲打鍵盤,有的交頭接耳討論遊戲設計的介面。今年畢業、即將到Google擔任工程師的助教葛林諾就坐在實驗室最前面,邊忙著安排週末的複習時段,邊等著學生舉手發問。

和傳統電腦科學教育不同,CS61A主打專案式教學。德內洛認為,維持學習的動機就是不讓學生失望,讓學生看到可能性。

除了每週作業,兩到三週就有個專案實作,期末則會有一個大型專題,「讓學生發現,原來他們可以用這些工具,去完成過去從沒想過可以完成的事情,」德內洛說。

舉例來說,開學第四週學生就要做出美食地圖推薦app,自動推薦、搜尋使用者曾評價過的類似餐廳;第六週學生就已經分組寫出網頁遊戲。

今年大一的瓦夏也坦言,作業負擔很重,卻也認為透過實作訓練,更習慣將大問題解構成小問題思考的流程。

每到學期末,德內洛總習慣問一個問題:「是否對電腦科學更有興趣?」超過八五%的學生,願意將電腦科學列為主修選項之一。

儘管每個修過CS61A這門課的學生都說難度高,但德內洛從沒想過讓這門課變簡單,「開一門令人挫折的課,比開心的課還容易,但要從挫折中看到進步,運用電腦運算思惟解決全新的問題。」

抓住創意的一瞬

相較於學生眼中太過困難的CS61A,CS10更是針對非電腦科系主修的學生,主打透過好玩的學習讓學生有興趣,觸發學習程式的契機。

這堂課教的程式開發軟體Snap!,不同於過去一般認知一行又一行的文字程式碼,而是將程式碼圖像化,使用者可以自創新模組、命名新功能,再依邏輯思惟將這些模組堆疊、設計指令。

結合翻轉學習模式,在CS10,每個學生都配備一個控制器,可以在課堂上和教授互動。全身散發著熱情的葛西亞也很習慣戴著耳麥,在偌大的禮堂裡穿梭講課。

那天談的是如何程式中的抽象概念,對他來講,寫程式更多是關於所謂的想法(big ideas),而不是細節,「我要向學生證明,從遊戲學習他們也學得到big ideas,將有創意的想法,化作真實的產物。」

他口中的big ideas,指的是程式語言裡面談到的迴圈、抽象化、通則化等概念。

雖然讓學生從遊戲中學習,這套軟體卻可以套用在不同的程式語言,透過遊戲學習程式的基礎概念,並運用基礎概念,解構大問題變小問題。

「先讓學生思考,自己想做什麼題目,抓住有創意的動機,再跟他們說需要具備什麼工具,」電機工程與電腦科學系兼任講師弗里蘭(Gerald Friedland)認為,傳統電腦科學教育太強調理論跟數學模型,很多課程的教法甚至都還停留在七○年代,而學生不知道自己有能力做出產品,甚至覺得跟自己無關,就沒有動機學習。

除了電腦運算思惟之外,這門課讓學生在期末用Snap!這套軟體做開放式專案,不指定題目和形式,學生想做什麼都可以,去年學生還結合Arduino設計自己的作品。

玩出改變社會的可能性

葛西亞興奮地拿起電腦,就想展示給《天下》記者看各種專案。他如數家珍,有的團隊設計機器人,能透過感測器找到迷宮出口;還有學生畫笑臉,讓電腦辨識追蹤笑臉的線條弧度;更有跳舞機器人會記得人類肢體動作,記錄下來後跳成舞蹈。

弗里蘭也舉例,曾有學生直接到辦公室說想做總統大選,想結合民調數據,但因為問題太大,還得找統計系的教授合作。

葛西亞很自豪,這堂課的角色就是作為引子,讓學生不會排斥接觸電腦科學。

「那時候大家都學得很開心啊!」今年柏克萊經濟系畢業的林志學現在在新創公司當產品設計師,他回憶這堂課像在玩積木,兩、三人一組做小遊戲,好玩也學會邏輯思考。

除了讓大家有興趣,還得開拓視野。在這堂課,可以聽業師跟「課」友回來,分享自己如何在專業領域運用過去學到的經驗。

不管是CS61A或CS10,這兩門在柏克萊最受歡迎的程式課,初心就是讓更多學生知道,自己是有能力藉由數位工具和思惟的轉變,看到改變的可能。

「這是第一堂課,不管學生未來會不會從事相關的工作,最重要的是學過這門課就會知道什麼都有可能,」葛西亞這麼說,他的眼神裡有著期待,期待更多學生願意為了改變社會,影響世界而往下深耕。

延伸閱讀:

五年後,你的工作在哪裡?

瘋狂教授的夢想續航:Gogoro、Tesla、保時捷背後都有台大機械幫

狂講冷笑話是一種病?

總是疲倦無比的14個原因

你的壓力指數 爆表了嗎?

您覺得這篇文章...

分享你的想法,送親子幣

1則留言/看更多留言

我想留言

  • 周建宏

    謝謝分享,非常實用的文章!

    2017-01-11 檢舉
選校 私立、實驗學校選擇必備教戰指南

私立、實驗學校選擇必備教戰指南

選校 全台4000+學校特色資料庫免費查詢

全台4000+學校特色資料庫免費查詢

您的發問已送出,專家會盡快回答,感謝您耐心等候。我們會寄發通知email;或請您時常登入會員區,確認專家是否回答了唷!


請您為這次的「發問流程」評分?

目前問題的「分類」,您覺得:

送出

您想刪除發問的原因是?

已經知道答案
透露個人資訊
不想問了
其他原因
刪除問題
HashTag 檢舉