標籤:

北京大學 程序設計與演算法 Coursera 專項課程:專家成長之路?

北京大學 程序設計與演算法 Coursera 專項課程:專家成長之路——這個項目怎麼樣


Coursera2013年10月進駐中國,我從2014年初開始接觸,算是較早接觸Coursera的一批用戶了,看著它一步步成長,逐漸改變中國的教育,讓普通人也能學習高校的課程,真心是我覺得很偉大很喜歡的一家公司,它的願景和使命真心讓我佩服!最初是沒有專項課程的,這個模式也是Coursera一步步思考出來的。重點來了!首先,附上專項課程鏈接:https://www.coursera.org/specializations/biancheng-suanfa。然後,重要的話說三遍,這是一門良心課程!這是一門良心課程!這是一門良心課程!(據說一門公開課製作運營等費用差不多就要幾百萬了),不得不說,排除智力,學習努力程度等因素,就關於各大高校程序入門課程來對比,我學過清華,北大,北郵,浙大,哈爾濱工業大學這些學校的一些計算機課程,不得不說清華北大學生能更快的吸收理解的原因一部分也是好學校的功勞,真的講得深入淺出,哪怕是我一個讀研的,再次看這些課程都覺得能查漏補缺,真的是把一個不懂計算機的人,一步步引導你讓你理解計算機原理,然後教會你編程,學習這種思維,而不是一上來就告訴你C語言怎麼用,專項課程中主要分為四塊,第一塊是「計算導論與C語言基礎」和「C程序設計進階」,以前本是一門課,叫「計算概論」(原鏈接,現在估計註冊不了:Coursera - Free Online Courses From Top Universities),通過這門課你可以學習計算機的原理,為什麼會這樣,然後再慢慢讓你熟悉C語言,第二塊,「C++程序設計」和「演算法基礎」就是原來的「程序設計實習」(原鏈接,現在估計註冊不了:Coursera - Free Online Courses From Top Universities),讓你從面向過程的思想向面向對象轉變,最經典的是那個將近兩千行的「魔獸世界」程序,同時,教你演算法、STL等等,一步一步的加深,老師也特別風趣可愛,反正總是把我逗樂,很感激~第三塊,「數據結構基礎」和「高級數據結構基礎」,就是edX上的「數據結構與演算法Part1、2」了(原鏈接,現在估計註冊不了:數據結構與演算法第一部分、數據結構與演算法第二部分),除了強烈推薦我還能說啥呢?最重要的是前三塊!完全免費!當時還能有免費證書!第四塊,這是專項課程的專有,它其實學習了Udacity中課程的機制,就是學習完所有課程之後,做一個實際的開發項目,讓你運用所有的知識去實現一個系統,編程其實很大程度就是代碼量的堆砌和熟練程度,所以,前面三塊完全可以自學(看了下原鏈接雖然都沒法再註冊了,但是從上面那個專項課程鏈接(https://www.coursera.org/specializations/biancheng-suanfa)點進去,或者直接找到北大所有課程:https://www.coursera.org/pku,點擊任何一門課程,選擇不付費,直接觀看就可以了,而且,現在是任意時間都可以自學,簡直不能更贊有沒有!),最後一塊我覺得可以貢獻一下,只能付費了,我覺得知識的應用還是很有必要的,如果怕自己自制力不夠的話,或者覺得北大很偉大的話,那麼你就贊助一部分來支付就可以了,如果你是學生,Coursera還有減免、免費申請計劃:Financial Aid(很人性!很偉大有沒有!關鍵是Coursera還在不斷燒錢,沒有盈利,還想著為我們窮學生著想!!當然,我是不會去申請的,現在研究生既然有補助有收入,真沒必要那麼去貪小便宜!),所以你想學,我很建議就學這個專項課程,它就足夠了,另外,北大還有一門課程,人稱屈奶奶教的「演算法設計與分析」(原鏈接,現在估計註冊不了:Coursera - Free Online Courses From Top Universities),強化你的演算法能力,真的都是良心課程!當然,相比國外,例如斯坦福,普林斯頓,RICE、MIT(MIT公開課主要在edX)等大學,個人感覺國內計算機課程還需要加強,最重要的是實踐,化知識為應用很重要~國外的這點做得很不錯,查論文,文獻和代碼量都能得到很大的鍛煉,總體來說,北大的這個專項課程實在良心,已經可以和國外的名校相媲美了,強烈推薦,畢竟,知識是無價的~

如果有描述不對的地方,還請批評指正,如果還想知道一些計算機其他課程或者公開課資源鏈接可參考 三大 MOOC 網站:Coursera 與 Udacity 和 edX 比較,哪個更適合中國人?你有何經驗分享? - 李季的回答


該專項課程(即Coursera所謂specialization)由六門課加一個結業項目組成。本人已基本學完課程內容。初步評價:手把手教學,努力接地氣。與一般的碼農培訓相比,性價比極高。如果起點和目標都不太高,用它入門足夠了。

在北京大學,多數理科生一般在大一上學期學習計算概論,大一下學期學習演算法與數據結構,此後一般不再統一安排計算機課程。計算機專業學生則在大一上學期學習計算概論,大一下學期學習程序設計實習,大二上學期學習數據結構與演算法,大二下學期學習演算法分析與設計,此外還有若干數學和計算機課程。

最初該專項課程的官方介紹說目的是讓學生從零基礎到精通C和C++。後來大概意識到這樣寫不對,於是改成能夠利用高質量的程序解決實際問題。實際上如果認真學習這一套課程,課下勤加閱讀和練習,應該有望在寫代碼方面達到校內大二上的中游水平。

下面簡單介紹一下該專項課程的結構:

1. 計算導論與C語言基礎

2. C程序設計進階

計算概論。面向零基礎新生教授C語言(或者C++裡面不帶對象的部分)。講解細緻,助教熱心,作業簡單,對新手很友好。

出於某種考慮,此次設計專項課程時,將一門課拆分為兩門,個人認為除了象徵性地減少每一門課的總課時和學習壓力以外,並沒有實際意義,反而破壞了課程的系統性和連貫性。

3. C++程序設計

4. 演算法基礎

程序設計實習,有改動。老師為了賣萌也是拼了。

前半部分介紹C++比C多出來的特性,整體邏輯還算清晰,除了魔獸作業太長以外也沒什麼缺點。

後半部分講了枚舉、動態規劃、廣度優先搜索、深度優先搜索、二分等等,都是基礎中的基礎。每節課詳細講一到兩道例題,基本不存在對演算法的分析,會照葫蘆畫瓢就行。

5. 數據結構基礎

6. 高級數據結構與演算法

數據結構與演算法。同樣是一分為二。

最後這部分開始有些難度,大家量力而為。總之基本上學到這裡刷OJ就沒有什麼障礙了。

bonus 程序開發項目實踐

由於該項目預計2016年初才開始,目前也沒有親身體驗可以分享。

個人猜測,雖然是與騰訊合作,但應該是藉助騰訊的服務和名號,學生最多以答疑加參觀的形式與騰訊互動,並不能得到技術實習。

該專項課程最大的特點是系統,畢竟來源統一,不會出現明顯脫節和重複;開始階段的作業要求比較低,循序漸進,壓力不會太大。不過個人認為新手選擇Python入門會更輕鬆。

主要的缺點是Coursera跟OJ配合經常抽風,討論區冷冷清清,證書沒有英文導致實用性大打折扣,完全缺乏code review,還有若干小問題。除此以外,編程新手如果希望入門C或者C++語言,完全可以選擇。但是如果起點和目標更高,例如有其他語言基礎想要轉到C++,或者希望對演算法有比較深刻的認識,那麼建議選擇更合適的書籍或者課程。


今天剛刷完所有課程,趕在了畢業項目開始之前。

首先說明這原本是三門課程,每門課程分成兩部分,才變成了6門,因此不能因為完成了這6門課程就沾沾自喜,其實只是完成了三門而已。

我最先開始學習的是郭瑋老師的C++課程。這門課的確講解得很細緻,很認真。課程pdf我已經從頭到尾瀏覽了3遍,每次仍然讓我受益匪淺。這門課的pdf可以作為手邊的參考。最後的魔獸世界大作業花了四個下午完成,收穫很多。

然後我學習了張銘老師的數據結構。這門課的Quiz裡面有很多坑,如果答案是一連串字元的時候,偶爾需要用空格將字元分隔開,偶爾需要用逗號,需要留神。這門課某些章節的內容很多,但視頻講解得並不是特別易懂,比如B樹B+樹那塊。論壇很冷清,想必學生也挺少的。

最後才刷了計算概論,沒看視頻,直奔作業題去了。花了兩天時間。

如果讓我為課程評分的話,郭瑋老師的是4.5/5,張銘老師的是2.5/5,計算概論由於沒看過視頻,就不評分了。

最後,

希望畢業項目不會讓我失望,雖然不抱太大期望。。。


看到畢業設計是騰訊提供技術支持,就果斷註冊了課程。還沒開始聽,要是有毅力上完全部課程,拿到證書,再回來填坑。

-------------------------2015.7.31更新--------------------------

怕時間太久就寫不出每門課的感受了,邊上課邊填坑。

為什麼參加這個課程?:暑期乘著時間還算充裕,報了幾門Coursera的課。恰好看到專項課程里有北大的專家成長之路,想都沒想就報了名,一來是對「眼底未名水,胸中黃河月的嚮往,也算是有機會上北大的課,感受一下北大老師的風範,二來補一補渣渣的編程基礎,三是垂涎那個認證證書。

我眼中的在線網路課程:

感謝Internet的發展讓在線教育成為可能,更感謝國內外知名高校和Coursera,edX,學堂在線,可汗學院這類的網站製造高質量教育內容。在線教育的發展,也處在一個最佳的發展時期。我想從一個學生的角度來談談對於MOOC這種教育課程的感受。

學習資源的極大豐富給了我們接受高質量教育的機會,也給了我們進行選擇的機會。但是對於這種課程來說,報名參加課程,認真學習課程,完成作業,參加考試,完成學習(付費拿到證書)這一步步走下來,人數呈現出明顯的金字塔結構。

外在來說:高質量的教育內容能夠吸引用戶,逐漸養成用戶的學習和付費習慣,例如經過幾年的發展和技術升級,最近Coursera新開的課程,從視頻製作,到材料準備,評價機制都超級良心,Peer assignment模式大讚,讀代碼能力培養從「娃娃」抓起。

內在來說:最核心的是人的自製內在驅動力,完整完成一門課程最難的,不是學不會,看不懂課程講的什麼,最難的是堅持,是毅力,我之前也報過課程,但是之前幾乎沒有完整完成過課程,假期學STM32參加電設比賽,發現自己之前上編程課學到的東西真實運用時真是捉襟見肘,單片機,嵌入式入門容易,但真的是努力去搞,對C語言要求真的蠻高的。這也就是我自己上北大這門課的內在驅動力吧。Coursera上Signed Track有助學金申請功能真的太感人了,作為一個窮學生,申請這個,也能在一定程度上驅動自己去為了拿到證書堅持完成。

Coursera上好課很多,在此安利一發,大家各取所需:

Coursera 上有哪些課程值得推薦? - MOOCs

----------------------開始正題-------------------

隨著自己的學習進度慢慢更新,一家之言,僅供參考。

首先對課程的介紹視頻吐個槽,在Coursera首頁看見課程推薦的時候點去看,課程的視頻介紹然讓我覺得有點略顯不自然,很明顯老師在錄介紹視頻是沒有放開,老師們充滿激情想必是極好極好的,還是希望老師們能自然些,不過這些都是小事,主要正菜真心不錯。

第一門:計算導論與C語言基礎

既然是專項課程是第一門,就特別重要,它決定了很多同學會不會繼續學後續的課程。之前在MOOC果殼看到過對李戈老師的評價,終於有機會得見。

李戈老師介紹:https://www.coursera.org/instructor/ligechina

課程內容:課程頁面有課程大綱,感興趣的可以直接去看

https://www.coursera.org/learn/jisuanji-biancheng/outline?module=5QXF8

提幾個感觸特別深的地方:

1.最開始從數學危機引出圖靈機,概括的講計算機基本原理。

2.講明白了二進位布爾運算和我們常用的加減法的關係。

3.結合時下最熱,深入淺出的介紹了量子計算機的相關內容,直接結果是我昨天看到阿里聯合中科院搞量子計算機的新聞的時候居然都看明白了。(其實我想D-wave到底算不算真正搞出來?)

4.老師在斯坦福的草坪上錄製了幾節,看那幾節的時候,我就在想像斯坦福的草坪是什麼樣的,李老師當時是什麼樣放鬆的狀態。

5.北大線下課程的在線優化版,有部分內容是從李戈老師的線下課程中直接剪取過來的,又對課程內容作了優化和更新。

講課風格:贊!大讚!老師的功力不可謂不深厚,講起計算機的發展,歷史和基本原理,信手拈來,通俗易懂。語言風格活潑,看到小窗里顯示老師上課時視頻就感覺老師這風格,我喜歡!

這一部分的課程是許多學校大一的第一門計算機相關課程,在很多同學眼裡是一門「水課」,但是上了兩年大學回過來再看的時候,覺得真心是很重要和很良心的一門課,對一些概念也有了更深的理解,比如邏輯門,比如邏輯運算的電子實現等等。

這門課幫助沒有接觸過計算機相關課程的孩子建構起對計算機科學的最初的模樣,幫助學過編程的孩子重溫一些計算機領域的經典知識,溫故知新,此話不假。

第二部分的更新待完成C語言課程之後再來補一發。


===2015年10月15日21:12:00更新

====原答案====正在上這個課,感覺至少要一年左右才能全部搞完,先填個坑,證書拿齊回來曬。


跑題一下,張銘老師的數據結構很好。她是我導師。


一個問題,coursera的網站老是打不開。。。


這個課課後作業和講的關聯不大,如果真的是初學者可能真的做不好(尤其到後面這個問題就越來越嚴重)


第一門刷完了 繼續第二門 在這裡監督自己 爭取寒假跟完

到時候一起寫評論 哈哈


表示花了29刀買了C++程序設計的Certificate。。。

發現課後作業好難啊,直接用poj上的題。。。

雖然我在LeetCode上AC了一百多道但是課後作業還是好有難度啊。。。

最後還是沒做下來。。沒拿到Certificate。。


推薦閱讀:

如何看coursera上已經結束的課程?
如何評價許岑的指彈水平?
Coursera 是開始全面收費了么?
Coursera (或其它慕課平台)上有哪些演算法、數據結構相關的課程值得推薦?
如何正確有效地使用 Coursera 的結課證書?

TAG:Coursera |