下午兩點不到,加州大學柏克萊分校的薩特大門旁,人潮已經佔據學生活動中心內的所有座位,大廳也站滿了排隊人潮,有學生索性坐在活動中心外的階梯上──他們都在等待。
這門讓學生心甘情願提早到、甚至排隊等候的課,叫作「電腦程式結構與釋義」,是全柏克萊最受歡迎的課,俗稱「CS61A」。去年光是修課人數有兩千五百人;今年三千人,等同一半的柏克萊學生都上這門課。但五年前,這門課只有五百個學生。
掀起柏克萊學程式熱潮的,還有另一堂課號CS10的「程式的美麗與樂趣」,是程式設計入門課程,改良麻省理工學院的程式教學軟體Scratch,用圖像程式語言Snap!教學。
今年吸引三百人修課,甚至顛覆傳統性別刻板印象,超過一半的修課學生都是女生。由於淺顯易懂,更被美國列入高中先修課程的教材。
向非本科生遞出橄欖枝
這兩門課程在柏克萊都屬於低階入門課程。根據柏克萊校園課程報告,修課人數增加主要是來自非主修電腦科學的學生。在矽谷,電腦識讀逐漸被視為大學生核心學術與工作能力,以因應求才若渴的科技公司與新創產業。
CS61A老師、加州大學柏克萊分校電機工程與電腦科學系(EECS)教授德內洛(John DeNero),過去在Google負責Google翻譯的開發,拋下高薪開課,就是認為每個學生都應具備基礎的程式能力,跟電腦一樣思考,培養解決問題的能力。
「理解現在的世界需要不同工具,我可以改變學生的未來跟職業選擇,」他強化語氣,希望這門課有賦權的功能。
「讓學生先對程式產生興趣,再發現可以用程式做出真實的東西,」CS10老師、加州大學柏克萊分校電機工程與電腦科學系教授葛西亞(Dan Garcia)向前傾,忙著示範如何用Snap!畫出持續盛放、不停旋轉的多邊形花朵。
這兩門課吸引大量非主修電腦科學的學生,同樣追求從做中學的理念,但教學方法截然不同。