首頁>技術>

哈佛校園裡流傳著這樣一句話:「如果你沒聽說過CS50,那麼,請不要說你讀過哈佛。」

由著名的「撕書教授」戴維·馬蘭(David Malan)任首席講師,Facebook聯合創始人馬克·扎克伯格和前微軟執行長史蒂夫·鮑爾默都曾做客座談。

課程介紹

這是哈佛大學對計算機科學的知識型企業的介紹,適用於具有或沒有基礎程式設計經驗的專業和非專業的程式設計藝術,教會學生如何演算法思考和有效解決問題。

主題包括抽象,演算法,資料結構,封裝,資源管理,安全性,軟體工程和Web開發。語言包括C,Python,SQL和JavaScript以及CSS和HTML。

對計算機科學和程式設計有廣泛而深入的瞭解如何從演算法上思考並有效解決程式設計問題諸如抽象,演算法,資料結構,封裝,資源管理,安全性,軟體工程和Web開發等概念熟悉多種語言,包括C,PHP和JavaScript以及SQL,CSS和HTML如何與經驗豐富,志趣相投的社群互動如何開發和向同行展示最終的程式設計專案

講師介紹

David J.Malan

帥帥的Professor Malan是哈佛大學工程與應用科學學院的Gordon McKay 教授,也是CS50.的首席講師。

他分別於1999年、2004年和2007年在哈佛大學獲得計算機科學學士、碩士和博士學位。

他還有個酷酷的代號:撕書教授。

Doug Lloyd

自2020年以來,Doug Lloyd一直是CS50遠端學習計劃的主任。

Brian Yu

哈佛大學計算機科學高階講師,他於2019年獲得哈佛大學計算機科學與語言學學士學位。

有趣的課堂

程式設計知識通常枯燥而無味,但這門課程卻能讓你體會到學習的樂趣。

舉例來說,在以「演演算法」為核心的課程裡,老師舉了有趣的例子:

假如班上有7 位同學,今天作業要依照分數由高至低排序,你要怎樣做?

人類的可能做法是把所有的作業分成兩堆,一邊是還沒看過的,一邊是排好順序的,分數假如是86、60、73、92、98、70、81 :

先比較最前面的兩個數(86、60),高的86 放上面,低的60 放下面,放進有順序的一堆裡;接著拿出第三個數字73 ,小於86、大於60 ,因此排進中間;第四個92 ,大於86 ,因此取代它排在最上面……. 直到排完所有數字。

聽起來很合理、很迅速,但假如今天你要排序的位置,是一張成績登記表從高到低必須紙本手寫上去時,問題就來了。當「第一名的分數」在比較的過程中被更新了,你就必須把後面所有分數都往後移一個位置,擦掉再寫就會很辛苦。對記憶體來說就是如此。

這種作法叫做Insertion sort 。

而除此之外當然還有非常多作法(例如兩兩比較交換位置的Bubble sort、分成兩半排序再合併的Merge sort),每種作法需要的步驟當然不一樣多,最後迴歸到哪種做法會使用到較少的步驟,也就是對程式來說有比較高的效能。

CS50 是哈佛大學校園以及 edX 上人數最多的課,哈佛每年有 800+ 在校生,edX 上有來自全球的一百萬註冊學習者。

在9個習題集(即程式設計作業)和最終專案中獲得滿意分數的學生有資格獲得證書。這是一個自定進度的課程,您可以按照自己的時間表參加CS50x。

課程官網:https://cs50.harvard.edu/college/2020/fall/

24
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • redis哨兵docker部署及springboot執行