jacky解讀麻省理工《計算機科學與Python編程導論》第1集

文:@數據分析-jacky(朱元祿)web


(一)導言

  • 本課程講的中心思想就是五個字:計算機思惟算法

  • Python只是輔助工具,是輔助你們理解計算機思惟,僅此而已編程

    • 急功近利是人性,拔苗助長是結果:咱們看到有不少講Python的資料,嚴格意義上來講,並非Python入門,只是幫你們找找敲代碼的感受,而已;
  • 講師太大牌了,主講人是麻省理工校長 Eric;數據結構

  • 本系統課程的坑:大神知識淵博,喜歡旁徵博引,不免一講嗨,一些輔助的知識點風頭會蓋過主線,致使主線不是那麼清晰,這就須要你們多捋順主線邏輯,有主次的學習;編程語言

(二)計算機的發展史

在大牌的講師,要系統的講述一個課程,也都要從歷史開始講,這是必然的svg


關於計算機歷史的邏輯線,Eric並無像普通教授那樣照本宣科按照時間年限開始講,而是從計算機的兩大能力展開的,把握住這個邏輯,咱們就能夠聽明白第二部分了;工具

2.1 邏輯線的展開-計算機的兩大能力

不管咱們是說計算機思惟也好,Python編程也好,咱們能依靠的載體是否是都是計算機,計算機也是咱們解決實際問題的工具,那麼怎樣才能利用好這個工具呢?是否是最大程度的把工具的能力發揮出來;好,要發揮出工具(計算機)最大能力,就要弄清楚2個問題:
第一個問題就是:計算機的能力是什麼?
第二個問題就是:咱們怎樣把計算機的能力充分的發揮出來?學習

2.1.1 計算機的能力是什麼

  • 能力1:計算優化

  • 能力2:存儲xml

    • 計算機所具備的兩個根本特性——超快的計算速度和超大的內存。計算機擁有的計算速度,能夠達到每秒鐘十億次,與此同時,相較與須要存儲的內容而言,計算機具備近乎無限的存儲空間。正是由於在這兩個驚人特性的組合,便賦予計算機強大的功能。

2.1.2 如何充分發揮計算機的能力

  • (1)用算法將計算能力發揮到極致

  • (2)用數據結構將存儲能力發揮到極致

    • 雖然咱們擁有超快的計算速度,可是面對異常複雜的問題時,單純蠻力式的進行運算,是不明智的。這時候算法就派上了用場,經過一些巧妙的的算法,咱們能夠把一個問題簡單化,這樣運算天然簡單了許多。一樣的道理,面對複雜的問題,須要存儲的內容和數據是巨大的,如何經過巧妙的存儲以利於數據的讀寫,這就是數據結構的內容了。這也是爲何咱們通常會把算法和數據結構放在一塊兒講授,由於它們原本就是一個總體。

2.2 計算機的發展史就是計算和存儲能力的發展史

  • (1)第一階段:固定程序計算機-爲算法制造的機器

    • 說白了就是隻能解決特定問題的計算機,好比說咱們最多見的計算器,固然Eric教授用他深厚的內功給咱們舉了不少例子,告訴咱們什麼一樣也是固定計算機,好比專門解決線性問題的Atanasoff計算機(1941),二戰時期專門破譯代碼的bombe計算機,
  • (2)第二階段:存儲程序計算機-既能計算又能存儲的計算機

(三)編程語言只是工具,而已

爲了說明這個問題,Eric從下面幾個方面展開,其實都是爲了說明,Python只是一個工具,他真正要教授的是編程思惟;

3.1

計算思惟的過程,歸納起來主要有四個內容——抽象、可計算、運行、優化。 具體說來,面對一個問題的時候,先利用抽象能力,找到問題的本質,隨後將其轉換爲可計算的內容來運行獲得結果,可是到這一步並未結束,在獲得結果後咱們還有對其進行優化,以獲得更好的結果,並且這個優化過程是往復屢次的。

相關文章
相關標籤/搜索