2014年12月17日 星期三

This is CS50 (Jewel)



CS50:一堂超過 800 個哈佛學生選修的「硬課」,魅力何在?

Jewel 十二月 17, 2014 

還記得大學時期讓大家叫苦連天、怨聲載道的「硬課」、「大刀課」是哪些嗎?相信「計算機概論」這堂課應該也會被大家點名。修過的朋友現在回頭想也許你會認為不難,但對於大多數從未接觸電腦科學、從沒寫過程式的大學新鮮人來說,這堂課肯定不是淺顯易懂派的。至於同學們會去選修硬課的原因只有一個,那就是這堂課很不幸的正好是系上必修課。
然而一樣的計算機概論「硬」課,在美國哈佛大學叫做「CS50」,課程內容一樣硬、功課不但難還超多變化,今年選修人數卻超過了 800 人!究竟 CS50 魅力何在?
cs50_hall

哈佛最夯的課:CS50

cs50_class
CS50 (Introduction to Computer Science)是一堂美國哈佛大學自 1989 年開始教授的計算機概論課,即使在網路科技起飛的 2002 年,走在時代尖端的哈佛大學選修這堂課的人數一樣慘兮兮,低於 100 人。
家喻戶曉的 Facebook 創辦人 Mark Zuckerberg 曾在 2005 年受邀到 CS50 課堂上擔任客座講師,當時約有 120 人選修 CS50 ,只有 20 多個學生到場聽 Mark Zuckerberg 分享他創辦 Facebook 的經驗談1。青澀的 Mark Zuckerberg 跟空蕩蕩的演講廳:
CS50 課程為期十二週,一週上課兩次,一次一小時。上課內容從最基本的二進位、ASCII、演算法、偽代碼、C 語言語法及應用、排序法、哈希表等,到 TCP/IP、HTTP、HTML、CSS、PHP、SQL、JavaScript、Ajax,一直到網路安全性(Cybersecurity);不但將電腦科學裡最重要的基礎都帶了一次,還會結合歷史和新聞時事來講授,對初學者來說,內容是滿有分量的。
哈佛大學電腦科學系前任系主任 Harry Lewis 曾形容 CS50 這堂課「is not an easy course(不是堂簡單的課)」、「a correct reputation as being a lot of work(出名的功課重)」。這樣惡名昭彰的硬課,如今卻打敗以往最熱門的經濟學概論,以 818 名大學部學生選修的驚人數字,成為常春藤聯盟大學裡最受歡迎的選修課,其原因有二:
  1. 趨勢所致:電腦科學可以說是現在最夯的學科,畢業後工作穩定、薪水高。
  2. 授課教授 David Malan 跟他強大的 TA 軍團。

大衛和 TA 軍團

cs50-staff
讓 CS50 變得如此精彩的成功領袖 —— David Malan, 他絕對是每個人夢寐以求的明星老師!幽默風趣、親切活潑,當然也有一點 nerdy(書呆樣)。David Malan 喜歡在課堂上用影片、道具來講解一些計算機原理;而且為了幫助學生們理解,幾乎每堂課都會找學生上台做示範。
David 用燈泡來講解二進位表示法,並請學生們上台參與課堂練習:
cs50_binary1
cs50_binary2
上台的同學通常還可以得到小小的 CS50 紀念品,像是 CS50 壓力球、 3D 列印的 CS50 大象擺飾品、CS50 手機座等;有時 David Malan 還會把拿來做示範的檯燈送給學生,所以後來大家看到 David 的講桌上擺著檯燈都會很興奮,一堆人搶著舉手示範 XD。

接下來是功不可沒的「CS50 Staff」,也就是曾經修過 CS50 的學長姐們自願回來擔任這堂課的助教或助手。對於這些幕後功臣,我稱他們為「TA 軍團」,軍團裡每個人都有不同的專長、各司其職,整個CS50 網站都是由 David Malan 的 TA 軍團們架構跟維持。有些人協助 Office Hour 的教學;有些人主持 90 分鐘的「課外課」,讓學生們自由參加,稱作 Sections;有些人拍攝小短片來講解課堂上簡略提過的觀念,稱 Shorts ;有些人則是擔任後製,幫忙放音樂、拍攝影片、錄影、照相等;今年有一名 TA 兼 DJ 會在課堂前後放音樂,還有一位 TA 專門幫大家做課堂筆記(Notes)... 說是「軍團」一點也不為過吧!
2014 CS50 Staff 小短片:
而且隨著學生越來越多、TA 軍團越來越強大、課堂上的設備也越來越先進。有超大的觸控螢幕取代以往的白板,還有 Google Glass、MYO Armband 等最新科技產品當作道具,讓大家開開眼界。
cs50_armband

迴圈小趣事

幾年前,有次上課 David Malan 教大家寫 PHP 來發簡訊,用 CS50 全部學生的資料庫,有大家的名字、手機號碼、還有電信公司,示範寫一個迴圈,讓程式去抓第一位學生的資料並傳送簡訊、抓第二位學生資料並傳送簡訊、重複這個迴圈,直到資料庫裡的第一名到最後一名學生都收到一封示範簡訊。
由於當天出席率剛好不太高,可愛的 David 於是出了個主意,決定將這封發給全部 CS50 學生的簡訊內容改成:「你為什麼沒來上課? 」(Why aren't you in class? )
原本應該是挺好玩的,不過程式出了點小 bug,迴圈沒有寫好,變成資料庫上第一位學生會收到一封簡訊、第二位學生收到兩封簡訊、第十位學生收到十封簡訊 ...
結果當天沒來上課又排在資料庫後面的同學,收到了幾十封「奪命連環 text」,缺席的同學都快嚇死了!當天晚上 David 跟助教信箱裡收到好幾封長長的「懺悔信」,信裡表示今天實在是有急事在身、不得不翹課,以後絕對會乖乖出席 ...

特別活動

CS50 Hackathon 駭客松

每年在接近期末的時候,會舉辦一次 CS50 Hackathon (駭客松),從晚上七點到隔天早上七點,參加的學生要為自己的期末報告(Final Project)訂下目標,利用這個活動跟大家齊聚一堂,各自為期末報告熬夜趕工,David 和 TA 軍團們則會在場協助大家,而且還免費供應披薩、三明治、飲料讓大家補充體力。這場活動成為許多人修完 CS50 最棒的回憶!
2014 CS50 Hackathon 宣傳影片:

CS50 Fair 期末展覽會

CS50 課程最後一天則是期末展覽會,每位 CS50 學生都會到場,在電腦上展示自己的期末報告,可能是一個遊戲、一個 APP、一個網站、或是好用的程式。除了 CS50 的學生跟家人朋友以外,哈佛大學及其他大學的教授們也會來參觀,還可能會有業界人士來挖掘人才,是一個交流表現的好機會。
2013 CS50 期末展覽會:

Guest Lecture 客座演講

每年 CS50 都會在期末前邀請一位哈佛校友/科技名人來演講,給學生們一些「內行人」的意見,像 2005 年邀請的是 Mark Zuckerberg,今年則邀請剛從 Microsoft 卸任 CEO 的 Steve Ballmer 來演講。值得一提的是,Steve Ballmer 來擔任客座講師之後,捐了約 6000 萬美金給哈佛大學電腦科學系,希望能聘請更多的教授、吸收更多的學生,擴展哈佛大學在電腦科學領域的版圖。
Steve Ballmer 還拍了一段「推銷 CS50」的影片,跟以前他推銷 Windows 1.0 的影片對照看更有趣:
在 David Malan 跟 TA 軍團的用心帶領下,CS50 對學生來說不只是一堂課,更是一個社群、一個大家庭。也難怪從 2007 年 David 接手 CS50 以來,選課人數從 200 多人攀升到今年 800 多人的盛況。
cs50_enrollment
CS50 2014 回顧影片:

你也能修 CS50!

最重要的是,CS50 的一切資源都開放給全世界,你可以到 edX 平台上選修這堂課,修完還可以拿到免費的學習認證,或是付費取得 edX 跟學校認證的證書。不在乎證書的話,現在就可以直接上 CS50 網站觀看今年的上課影片,或是跟著大家一起「開課」,下一次的開課日期是 2015 年 9 月。
CS50 網站上應有盡有、超級完善,每堂課進行高清現場直播,沒跟上直播的朋友也不用擔心,上課影片都會放在網站上,並且精心後製過,有片頭、片尾小影片、逐字稿、投影片、程式碼、還有課堂筆記供大家下載,超棒的吧!非常推薦大家好好利用 CS50 提供的資源。
cs50_lecture

沒經驗?沒關係!

這種讓人心生恐懼的硬課,很多人會擔心自己沒經驗、沒背景,擔心功課應付不來。對於有這些疑慮的朋友,首先要搬出 David Malan 會在第一堂課對學生們說的話:「選修 CS50 的學生平均 100 個人有 78 個人對電腦科學一點經驗都沒有。」
cs50_78
所以如果你是那屬於那 78 個人,完全不用擔心,你和其他 77 個人在同一個起跑點上;對於其他對電腦科學有經驗的 22 個人,也不要覺得這堂課無聊,這堂課有適合不同程度學生的作業,學生可以按照自己的學習狀況來選做普通版本駭客版本 (Hacker Edition)
一名巴西的高中生 Gabriel Guimaraes 在網路上無意間發現了 CS50 這堂課,立刻沈迷其中,花三個星期把一學期的課全部上完,而且想把這麼棒的課介紹給其他的學生,於是他寫信給 David Malan,希望能使用 CS50 的資料,並翻譯成葡萄牙文,放到他的網站「CC50」上,提供其他巴西學生使用。最後他還親自下場教課,將他教學的影片放在網站上。
你能猜到 Gabriel Guimaraes 現在在哪裡唸書嗎?沒錯,他去年進了哈佛大學,對於這種企圖心強、實踐度高的學生,哈佛當然是二話不說立刻收囉!而且 Gabriel 還加入了 CS50 TA 軍團,繼續壯大軍團的聲勢。
cs50_gabriel-guimaraes
由於 CS50 實在太受歡迎,耶魯大學已經決定放下兩校百年來的鬥爭,上個月宣布將哈佛的 CS50 引進耶魯校園,讓所有的耶魯學生明年也能選修!CS50 簡直是帶來和平帶來愛啊。
David Malan 在課堂上宣布這個消息:
如此的好課,我以過來人的身份,真心推薦對電腦科學有興趣的初學者修 CS50。跟著上課其實不難,老實說還是個非常愉快的過程,一小時的課程當然教材會有點濃縮,尤其到了後期,可能會沒辦法吸收大量的資訊,建議大家搭配 TA 們的教學短片一起看,可以有效幫助你理解上課無法仔細講解的部分。
CS50 作業倒是滿多的,有些也不太簡單,沒有乖乖跟著做作業是我修這堂課最大的遺憾。希望大家都可以連同作業一起跟著完成,扎扎實實的上完這 12 個星期的課,一定會非常有收獲!說不定會因此改變你的職業規劃喔!

  1. 想靠網路科技創業的朋友可以聽聽 Mark Zuckerberg 的這段演講,在大家發問的過程中,Zuckerberg 不斷強調大家創業前期擔心的很多事情,都沒有實際動手做來得重要,那才是把時間用在對的事情上;Zuckerberg 也提到,現在創業家可以不必擔心資金,用很小的資本額跟很少的人力觸及到廣大使用者;像 Facebook 一樣,一開始只是在宿舍裡寫的網站,每個月花個 $100 美金到外面租伺服器,結果在短短的時間內累積使用者、風靡美國校園,這是過去的時代裡不可能有的機會。

沒有留言: