盤點美國名校計算機專業(yè)的5大名課
在2015年Bloomberg評選出了美國計算機專業(yè)的5大名課,盡管過去幾年了,但這五大名課的威名依然在。“五大名課”這個稱號的公信力是非常高的,至今仍不過時。
這些課程學習的人眾多,每門課每年都有七百名左右的學生報名,這些課基本都是面向大一新生。由于都是頂級名校,因此學過這些課的大佬就實在太多了,比如微軟比爾蓋茨、蘋果斯蒂夫·沃茲尼亞克、雅虎楊致遠、計算機圖形學和虛擬現(xiàn)實之父伊凡·蘇澤蘭等等大佬。
哈佛大學計算機科學導論CS50
CS50可以說是哈佛大學一個現(xiàn)象級的課程,也是哈佛大學最受歡迎的課程之一。這門課主要面向高中生和計算機專業(yè)大一的學生,分線上版和校園版,其中校園版的CS50有800多名學生、100多個工作人員參與,最終會有2200多人參加年度的Hackathon活動。
當學完計算機科學導論CS50之后,就可以繼續(xù)學習一些進階分支課,比如Web程序開發(fā)、人工智能、游戲開發(fā)、移動應用開發(fā)、針對法學院學生的Python分析等,這些進階課都是線上免費公開的。
校園版計算機科學導論CS50正課主要是教算法思維以及解決問題的能力,涉及的議題包括抽象、算法、數據結構、封裝、資源管理、安全以及軟件工程,要上8周的課,第1周概論(進制、數字系統(tǒng))、第2周C語言、第3周數組、第4周算法、第5周內存、第6周數據結構、第7周Python、第8周SQL,最后兩周則會讓你自由選擇三個方向:Python全棧(HTML、CSS、JavaScript、Python、SQL)、移動應用開發(fā)(Java、Swift)、Lua游戲開發(fā)。
這堂課主要推薦了三本書,這三本書在國內好像聽說的比較少,不過也是有相應的中文版,其中《計算機奧秘》貴的有點離譜,而且版本也比較落后了,只有第6版,而目前已經是第10版了,不推薦購買。



學完這門課一周之后需要提交所有測試,此后的一個月需要獨立圍繞所選的三個方向開發(fā)一個項目。在此期間你可以去參加一個哈佛與耶魯等大學聯(lián)合舉辦的Hackathon,從晚上7點寫代碼寫到早上7點。
斯坦福大學程序設計導論CS106A
斯坦福的CS106A是斯坦福大學計算機專業(yè)入門的第一課,主要是圍繞Python來講解程序設計和計算機科學。這門課在2014年的時候還是教Java,現(xiàn)在教的是Python,現(xiàn)在美國名校入門第一課基本都從Python開始了。CS106A推薦的是《Python入門 第2版》這本書。

學完這么課之后可以繼續(xù)學習CS106B、CS107、CME193,以及圍繞著CS106A、CS106B等課程都配有專門的編程方面的實驗課。
CS106B則是斯坦福計算機專業(yè)的必修課,主要學習的是C++、QT。
CS107主要是基于樹莓派、C學習計算機系統(tǒng)、ARM架構。
而CME193也是基于Python的,面向的是科學家和工程師,主要學習Python的科學庫如Numpy、Scipy、Pandas、Scikit-learn、PyTorch。
C++使用的是機械工業(yè)出版社的C++程序設計,CS107教程是ARM Soc體系結構。


加州大學伯克利分校計算機程序的構造和解釋CS61A
CS61A這么課的名字是計算機程序的構造和解釋,也即是SICP,主要學習的是程序設計方法。
SICP也是一本非常知名計算機書籍,甚至可以列為計算機專業(yè)的四大名著之列。由于SICP這本書用的Lisp編程語言,而這門課改成了Python,所以學習的時候可以參考SICP這本書以及Python版的SICP在線教程。

http://Composing Programs
SICP這門課是有前置課需要學的,它需要先修類似于計算機科學導論或概論的CS10,主要學習的也是Python。除此之外還需要學習一點微積分,看過SICP這本書的都知道,這里面的案例有一定的數學要求,比如使用牛頓迭代法求開方。
學完CS61A之后接下來可以繼續(xù)學習CS61B或CS61C,CS61B主要學習的是如何構建大型的軟件項目;CS61C則是關于計算機組成以及編譯原理。
MIT人工智能6.034
這門課有兩個前置課,一個是MIT 6.01的Python課,使用的教材是《Python編程導論》;一個是MIT 18.02微積分相關的課,使用的教材是《常微分方程基礎》



CMU 程序設計基礎15-112
這門課也主要學習的是用Python來解決一些實際的問題,主要的參考書籍是《像計算機科學家一樣思考Python》以及其他配套資料。

https://runestone.academy/runestone/books/published/thinkcspy/index.html
http://runestone.academyTrinket
通過對計算機5個名課的整理,我們可以發(fā)現(xiàn),這5所世界頂級的學校入門的第一課學習的基本都是Python課程,學習的方式也各不相同。