學程式的朋友們應該多多少少都有聽過哈佛的 CS50 這門通識課(aka 在哈佛無人不曉、可謂陰曹地府的重課),今天我們就來破解關於 CS50 的 3 個迷思 Here we go!
CS50 教 50 種程式語言嗎?
CS 代表 Computer Science 這我能理解,不過 50 究竟代表什麼呢?難道是教會你 50 種程式語言嗎?
根據小白谷歌的結果課程後的數字為哈佛課程的難易度指標 (1-99),因此 CS50 僅為中間難度的課程🤦♀️
修完 CS50 就是程式高手?
CS50 真能如傳說說言,帶你從程式小白到專精多種語言 (Python、C、SQL) 的高手嗎?若要問如此現實面的問題,除了需要非常認真把每堂課程都確實聽完、理解,作業都寫完並檢討,最大的癥結點就是課程的內容了,就讓我們來看看 David Malan (CS50 主講師)想帶給修習這門課的同學哪些知識吧!
“Introduction to the intellectual enterprises of computer science and the art of programming.”
在課綱之中,David 揭開了他開立這堂課的目的:讓所有領域的人(尤其人文領域的學生)在認識編程 (programming) 之美的同時,能夠找到自身和 computer science 的交叉點,進而應用所學(問題解決的能力)至所屬領域,以帶來更有價值的激盪和跳脫既有觀點的討論。
🔥 涵蓋領域:討論主題包括抽象化(abstraction)、 演算法(algorithms)、資料結構(data structures)、封裝(encapsulation)、資源管理(resource management)、資訊安全(security)、軟體工程(software engineering),和網路開發(web development)
週進度 < 課程從第零週開始,為期九週 >
第零週:Scratch
第一週:C語言
第二週:陣列
第三週:演算法
第四週:記憶體
第五週:資料結構
第六週:Python
第七週:SQL
第八週:補充(自第八週後開始分流)
第九週:遊戲:Lua 腳本語言;網頁前端: HTML、CSS、JavaScript;行動裝置:iOS: Swift; Android: Java
一瞥作業(共九回,另一期末專案)
題組 0: Scratch 初體驗
題組 1: 用迴圈終端機列印文字、檢查信用卡
題組 2: 檢查字串是否符合特定級數、文字加密
題組 3: 投票系統
題組 4: 相片濾鏡、刪除照片救援
題組 5 : 使用雜湊表檢查錯字,測試程式效能
題組 6 : Python、使用二維陣列找尋 DNA 字串
題組 7 : SQL 資料庫
題組 8 : 個人靜態網頁、股票購買互動式網站
CS50 不會適合我…
你也許看過網路上太多文章把 CS50 魔化成地獄課等級,但事實上 CS50 不如想像的恐怖,以下是小白做的簡單優缺分析,大家可以分析比較~潰ㄋ
優點:
- 觀看所有課程皆為免費,如果需要特殊證照才需要額外付費(一般證書由 edX 發放,需每個題組包括期末專案正確率都高於 70% 方能獲得)
- 講師語速快但表達清楚,可以同時訓練英文聽力和專注力
- 講師講完一個概念後就會開放提問,這時你就可以聽聽聰明的哈佛學生會怎麼問問題嘍
- 貫穿多個程式語言,從 scratch 到 C 再到 Python,使初學者對於 programming language 有更深入的了解(語言之間語法的比較等等)
- 從最粗淺的觀念循序漸進到較困難的,對於完全初學的程式學習者可能相對難易度高,不過對於有一些程式語言基礎的朋友不僅可以有更全面的掌握,更能在同時認識多種程式語言時把先前不理解的觀念融會貫通
- 曾邀請過許多業界大咖,譬如:Facebook 創辦人Mark Zuckerberg 和 微軟的前 CEO Steve Ballmer
- 有龐大中英社群 (community) 陪你共度寫作業的煎熬時光
- 教學團隊錄有 walkthrough 影片帶你快速看過作業重點
缺點:
- 作業需要耗時數個小時,且著重思考邏輯(燒腦,不是重複性的技術練習)
- 對於無程式基礎新手進度和時間壓力大
綜合建議:
- 對於完全程式菜雞的人可能要先充實一個程式語言,大概懂程式邏輯後(從 C 或 Python 下手)再進修 CS50 會比較理想。當然~ 如果你願意全心投入,也許你也能像 ⅔ 的 CS50 同學一樣,learn programming from scratch!
- 對於學習半年以上的程式學習者收看此堂課會非常有幫助,也許會打通任度二脈,非常建議參考看看
平台&延伸
除了在 edX 教育平台之外, Youtube 和 iTunes 上也能聽課(以上都提供 2019 最新版本)
另外,如果欲求不滿還可以參考 CS50 AI (Python)、CS50 Web (Python & JS)、CS50 Games Development、CS50 Mobile App (React Native),以上都放上連結給你們參考
蝦皮資深工程師來襲🤩,立即點擊圖片獲得更多資訊👆
精彩內容預告:機器學習實作(新手友善)、 Chrome Extension 擴充套件
🎏 最後,如果有興趣看到更多知識性的分享或是收看更多有趣的不同領域的科技知識,歡迎參考👉 下班後讀書會講堂 🎏
參考文章:
- CS50 學習筆記 https://vocus.cc/cs50x/5f24f553fd897800014775da
- https://www.inside.com.tw/article/4209-harvard-cs50
- https://crossing.cw.com.tw/article/7200
- https://blog.techbridge.cc/2017/11/11/cs50/