MIT 電腦科學和Python 程式設計導論

2021-07-23 05:38:17 字數 1464 閱讀 5919

其實上一本書《笨辦法學python》嚴格意義上來說,算不上是入門書,因為它主要目的是讓你去找到敲**的感覺,基本不涉及計算機的內容。說到真正的入門,mit的《電腦科學和python程式設計導論》這門課程是個非常好的選擇。對於想要入門python的人來說,這門課程不會讓你失望,但是它能給你的不止於此,其實這門課程的核心目的,是以python這門語言為媒介,向你介紹電腦科學領域的重要基礎內容。有了這個認識其實很重要,因為它決定了你學習這門課的方式和最終效果。自己當時很愚笨,只是單純把它理解為了掌握pyhon這門語言的課程,對於課程中的有些內容並未給予足夠的重視,即便如此,自己也收穫了比預想多很多的東西。只是現在回過頭里再看這門課程的時候才發現,錯過了很多好東西。

說了這麼多,這門課究竟講了什麼呢?  課程的一開始就丟擲了乙個問題——what does a computer do ?  隨後作者介紹了計算機所具有的兩個根本特性——超快的計算速度和超大的記憶體。計算機擁有的計算速度,可以達到每秒鐘十億次,與此同時,相較與需要儲存的內容而言,計算機具有近乎無限的儲存空間。正是因為在這兩個驚人特性的組合,便賦予計算機強大的功能。當我在學習了後續的課程後,發現很多的內容都是圍繞著這兩點展開的。演算法和資料結構就是乙個很好的例子。雖然我們擁有超快的計算速度,但是面對異常複雜的問題時,單純蠻力式的進行運算,是不明智的。這時候演算法就派上了用場,通過一些巧妙的的演算法,我們可以把乙個問題簡單化,這樣運算自然簡單了許多。同樣的道理,面對複雜的問題,需要儲存的內容和資料是巨大的,如何通過巧妙的儲存以利於資料的讀寫,這就是資料結構的內容了。這也是為什麼我們一般會把演算法和資料結構放在一起講授,因為它們本來就是乙個整體。

這門課程的核心,是向大家傳遞乙個概念——計算思維(computational thinking)。這其實是很龐大的一塊內容,自己可能現在還不能完全駕馭,不過也嘗試著說說自己的理解。過去當我們面對乙個問題的時候,可以通過很多的角度來思考和解決,比如人性的角度、歷史的角度、經濟的角度等等,現在隨著計算機效能的提公升和使用的普及,它可以看做是人腦的乙個延伸,那麼利用計算機去考慮和解決問題就成了另乙個我們可以使用的有效手段。計算思維就是在這種背景下產生的乙個概念。其實計算思維這個玩意我們日常中一直在用,比如說,當我們面對選擇,權衡利弊的時候,其實就是計算思維的體現。但是人腦的運轉速度和記憶力是有限的,當計算機成為我們人腦的延伸時,具備的超快的計算速度和超大的儲存空間,就讓原先我們自己不可能解決的問題變成了可能。那麼在這種情景下,對於乙個現代人來說,掌握計算思維就非常變的非常重要了。計算思維的過程,概括起來主要有四個內容——抽象、可計算、執行、優化。  具體說來,面對乙個問題的時候,先利用抽象能力,找到問題的本質,隨後將其轉換為可計算的內容來執行得到結果,但是到這一步並未結束,在得到結果後我們還有對其進行優化,以得到更好的結果,而且這個優化過程是往復多次的。

通過這門課,我們可以逐漸的去理解並掌握計算思維的本質,但這僅僅是乙個入門,還需要我們後續不斷的去學習和實踐。作者也為我們開設了一門後續課程——《計算思維和科學導論》,peter norvig 開設的《design of computer program》也是一門強調計算思維的實踐課程,很值得一看。

電腦科學

電腦科學就是研究計算 如何表示和處理資訊。解決問題 你將學會各種演算法策略,比如分而治之法 遞迴 探索法 貪婪搜尋和隨機演算法,它們可以幫你分解和解決任何一種問題。邏輯 你開始使用更準確和正式的方式進行思考,比如抽象 布林邏輯 數字理論和集合理論,你因此能夠以一種嚴謹的方式來解決問題。資料 你接觸到...

MIT經典計算機課程 計算思維及資料科學導論

昨天,我們在農民自製黑科技 無人駕駛拖拉機一文中提到,一位農民通過學習mit的計算機網路課程6.00.1x,成功開發出了無人駕駛拖拉機的故事。今天,我與大家分享這套課程的第二部分,也就是6.00.2x,課程名稱叫作 計算思維及資料科學導論 使用的授課語言同樣是python。在6.00.2x這門課中,...

計算機與電腦科學初識

1.為何要學習計算機與計算科學?這是乙個智慧型化與資料化的時代,計算解決自然社會問題,已經成為這個資料時代的基本需求了。而計算機自動化高效處理大量問題這種機器計算也已成為一種常態,為實現機器更好的自動計算,計算科學這門藝術便誕生了。計算科學從一種思維高度來決定我們對於計算的認知,讓我們更好把握計算的...