jacky解读麻省理工《计算机科学与Python编程导论》第1集
文:@數(shù)據(jù)分析-jacky(朱元祿)
(一)導言
本課程講的中心思想就是五個字:計算機思維
Python只是輔助工具,是輔助大家理解計算機思維,僅此而已
- 急功近利是人性,適得其反是結(jié)果:我們看到有很多講Python的資料,嚴格意義上來說,并不是Python入門,只是幫大家找找敲代碼的感覺,而已;
講師太大牌了,主講人是麻省理工校長 Eric;
本系統(tǒng)課程的坑:大神知識淵博,喜歡旁征博引,難免一講嗨,一些輔助的知識點風頭會蓋過主線,導致主線不是那么清晰,這就需要大家多捋順主線邏輯,有主次的學習;
(二)計算機的發(fā)展史
在大牌的講師,要系統(tǒng)的講述一個課程,也都要從歷史開始講,這是必然的
關(guān)于計算機歷史的邏輯線,Eric并沒有像普通教授那樣照本宣科按照時間年限開始講,而是從計算機的兩大能力展開的,把握住這個邏輯,我們就可以聽明白第二部分了;
2.1 邏輯線的展開-計算機的兩大能力
無論我們是說計算機思維也好,Python編程也好,我們能依靠的載體是不是都是計算機,計算機也是我們解決實際問題的工具,那么怎樣才能利用好這個工具呢?是不是最大程度的把工具的能力發(fā)揮出來;好,要發(fā)揮出工具(計算機)最大能力,就要弄清楚2個問題:
第一個問題就是:計算機的能力是什么?
第二個問題就是:我們怎樣把計算機的能力充分的發(fā)揮出來?
2.1.1 計算機的能力是什么
能力1:計算
能力2:存儲
- 計算機所具有的兩個根本特性——超快的計算速度和超大的內(nèi)存。計算機擁有的計算速度,可以達到每秒鐘十億次,與此同時,相較與需要存儲的內(nèi)容而言,計算機具有近乎無限的存儲空間。正是因為在這兩個驚人特性的組合,便賦予計算機強大的功能。
2.1.2 如何充分發(fā)揮計算機的能力
(1)用算法將計算能力發(fā)揮到極致
(2)用數(shù)據(jù)結(jié)構(gòu)將存儲能力發(fā)揮到極致
- 雖然我們擁有超快的計算速度,但是面對異常復雜的問題時,單純蠻力式的進行運算,是不明智的。這時候算法就派上了用場,通過一些巧妙的的算法,我們可以把一個問題簡單化,這樣運算自然簡單了許多。同樣的道理,面對復雜的問題,需要存儲的內(nèi)容和數(shù)據(jù)是巨大的,如何通過巧妙的存儲以利于數(shù)據(jù)的讀寫,這就是數(shù)據(jù)結(jié)構(gòu)的內(nèi)容了。這也是為什么我們一般會把算法和數(shù)據(jù)結(jié)構(gòu)放在一起講授,因為它們本來就是一個整體。
2.2 計算機的發(fā)展史就是計算和存儲能力的發(fā)展史
(1)第一階段:固定程序計算機-為算法制造的機器
- 說白了就是只能解決特定問題的計算機,比如說我們最常見的計算器,當然Eric教授用他深厚的內(nèi)功給我們舉了很多例子,告訴我們什么同樣也是固定計算機,比如專門解決線性問題的Atanasoff計算機(1941),二戰(zhàn)時期專門破譯代碼的bombe計算機,
(2)第二階段:存儲程序計算機-既能計算又能存儲的計算機
(三)編程語言只是工具,而已
為了說明這個問題,Eric從下面幾個方面展開,其實都是為了說明,Python只是一個工具,他真正要教授的是編程思維;
3.1
計算思維的過程,概括起來主要有四個內(nèi)容——抽象、可計算、運行、優(yōu)化。 具體說來,面對一個問題的時候,先利用抽象能力,找到問題的本質(zhì),隨后將其轉(zhuǎn)換為可計算的內(nèi)容來運行得到結(jié)果,但是到這一步并未結(jié)束,在得到結(jié)果后我們還有對其進行優(yōu)化,以得到更好的結(jié)果,而且這個優(yōu)化過程是往復多次的。
轉(zhuǎn)載于:https://www.cnblogs.com/shujufenxi/p/10128276.html
總結(jié)
以上是生活随笔為你收集整理的jacky解读麻省理工《计算机科学与Python编程导论》第1集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 带你理解 只读事务(@Transacti
- 下一篇: Feign使用原理