原來,計算思維該這樣理解

容易被誤解的計算思維

2006年,卡內(nèi)基·梅隆大學(xué)周以真教授首次系統(tǒng)性地定義了計算思維。這一年,她在美國計算機(jī)權(quán)威期刊《Communications of the ACM》上發(fā)表了題為《Computational Thinking》的論文,由此開啟了計算思維大眾化的全新歷程。

在此之前,“計算思維”在非計算機(jī)領(lǐng)域的應(yīng)用多集中在科研學(xué)術(shù)圈,如計算化學(xué)、計算生物學(xué)、計算決策學(xué)等。像我這樣的普羅大眾真正開始了解“計算思維”的價值是在《Computational Thinking》發(fā)表之后(的10年)。今天,計算思維成了世界公認(rèn)的普適思維方式,和理論思維、實驗思維一樣,任何人在解決任何問題時都可以運用。

計算思維對每個人都意義重大,但卻非常容易被誤解。有人望文生義,以為計算思維就是關(guān)于數(shù)學(xué)的學(xué)問;有人片面理解,以為學(xué)了編程就懂了計算思維;有人非要攀高枝,連學(xué)個Word、Exel、PPT都要說培養(yǎng)了計算思維。

計算思維被誤解成這樣,小編決心為它正名,帶大家好好認(rèn)識下計算思維。

計算思維是什么,不是什么

計算思維是什么呢?

在《Computational Thinking》這篇論文中,周以真教授用“硬科學(xué)”的術(shù)語描述了計算思維:計算思維是運用計算機(jī)科學(xué)的基本理念,進(jìn)行問題求解,系統(tǒng)設(shè)計以及理解人類行為。也就是說,計算思維是一種解決問題的思考方式,而不是具體的學(xué)科知識,這種思考方式要運用計算機(jī)科學(xué)的基本理念,而且用途挺廣的。

想要更快更好的理解計算思維,先來看看周以真教授對計算思維的幾個清晰論斷。1 計算機(jī)思維是研究計算的。

2 是概念化,不是編程。

3 是基礎(chǔ)技能,不是死記硬背的技能。

4 是人的思考方式,不是計算機(jī)的思考方式。

5 是數(shù)學(xué)思維、工程思維的補充和結(jié)合。

6 是想法,不是人造產(chǎn)品。理解了上面6句話,就能在很大程度上減少對計算思維的誤解了。

把編程當(dāng)作計算思維是對計算思維的常見誤解之一,甚至一些學(xué)計算機(jī)專業(yè)出身的人也會有類似的觀點,其實不然。計算思維是一種概念化的思考方式,而編程則是一種行為,雖然編程的過程中經(jīng)常會用到計算思維,但計算思維絕不是編程。把信息素養(yǎng)當(dāng)作計算思維也是對計算思維的常見誤解之一,其實計算思維和信息素養(yǎng)完全不同。信息素養(yǎng)注重的是培養(yǎng)人們對信息進(jìn)行有效利用的方式方法,重點在于利用信息工具和信息,比如Excel、錄音機(jī)、傳感器、QQ的使用,從互聯(lián)網(wǎng)上找到自己想要的信息等。而計算思維則是研究計算的,研究一個問題中哪些可以計算,怎樣進(jìn)行計算。

計算思維不是一門孤立的學(xué)問,也不是一門學(xué)科知識,它源于計算機(jī)科學(xué),又和數(shù)學(xué)思維、工程思維有非常緊密的關(guān)系。說它和數(shù)學(xué)思維相關(guān),是因為用計算思維解決問題時,需要將問題抽象為可計算的數(shù)學(xué)問題,例如比較羅馬帝國的崛起和蒙古人的擴(kuò)張,需要選擇適當(dāng)?shù)臄?shù)學(xué)模型來對國力進(jìn)行量化計算。在運用計算思維設(shè)計大型復(fù)雜系統(tǒng)時,需要考慮效率、可靠性、自動化等問題,這些都是工程思維中非常重要的東西。

計算思維是每個人在日常生活中都可以運用的一種思考方式。沒錯,每個人都可以運用,而且可以用在幾乎任何地方。出行路線規(guī)劃、理財投資選擇、科學(xué)研究分析、天氣預(yù)報預(yù)測,不論你試圖解決什么問題,運用計算思維都能幫你化繁為簡,四兩撥千斤。理解計算思維,首先要理解計算理解計算思維的前提是理解計算,因為計算思維本質(zhì)上還是研究計算的,研究在解決問題過程中,哪些是可計算的,以及如何計算。通常我們理解的計算是算術(shù)運算,如“1+1=2”,,但運算其實有很多種類,如集合運算、邏輯運算、條件運算等等。集合運算如 “ ?U(A∩B)=(?UA)∪(?UB)”,這里面就沒有具體的數(shù)值運算了,而是用代表集合的字母進(jìn)行運算;又比如邏輯運算“1∧0=0”,這個運算里有數(shù)值“0”和1,但意義完全不同,這里的“1”代表的是“真”—即命題為真,“0”代表的是“假”—即命題為假,通過用數(shù)字“0”和“1”來代換命題的真假,用“∧”來代換邏輯語言里的“并且”,邏輯判斷過程也能通過計算來實現(xiàn)。

在上面這三類運算中,“1和2”、“ A、B” “1和0”是計算對象,是用特定符號代表一定的含義(可能是數(shù)、集合、命題真假等等);“+”、“?U、∩、U”和“∧”是運算符,也就是運算規(guī)則(可能是加減乘除、可能是求并/補集、可能是判斷并且/或者的復(fù)合命題)。如果把計算對象用特定的符號串表示,計算的實質(zhì)就是將已知的特定的符號串,按照預(yù)定的規(guī)則,一步一步地改變符號串,經(jīng)過有限步驟,最終得到一個滿足預(yù)定條件的符號串的過程。

當(dāng)我們跳出算術(shù)運算的局限,理解了計算的本質(zhì)后,就會發(fā)現(xiàn)原來好多看似不可計算的東西都能變得可計算,也就很容易理解計算思維的普適性了。因為經(jīng)過一定的抽象,我們對很多問題的理解都能用特定的數(shù)學(xué)語言來描述,接下來,當(dāng)我們用特定的數(shù)學(xué)語言去描述解決過程的時候,就是在用計算化的方式來求解了。計算思維里的人機(jī)分工當(dāng)我們把一個問題的求解操作變的可計算化后,我們是要靠人力去進(jìn)行運算嗎?NO!運用計算思維就是為了把人從大量的機(jī)械的運算中解脫出來,讓計算機(jī)去做這些事。

在用計算思維解決問題時,人負(fù)責(zé)把實際問題轉(zhuǎn)化為可計算問題,并設(shè)計算法讓計算機(jī)去執(zhí)行,計算機(jī)負(fù)責(zé)具體的運算任務(wù),這就是計算思維里的人機(jī)分工。人機(jī)分工能大幅提高問題處理的效率,減少出錯率,特別是在處理情況復(fù)雜,運算量大的問題時。比如出行路線規(guī)劃,在沒有導(dǎo)航軟件的時候,我們想要規(guī)劃從A點到B點的最近的路線,可能要花費不少功夫,往往是我們根據(jù)經(jīng)驗進(jìn)行判斷,并不精確,很難有足夠的時間和精力去尋找最優(yōu)解。

當(dāng)我們用電子地圖來表示實際地理情況,用坐標(biāo)點來表示實際位置時,最短路線的問題就轉(zhuǎn)化為比較地圖上A點到B點的各種線段組合的長度問題。從輸入起點和目的地到導(dǎo)航軟件給出導(dǎo)航路線不到半秒的時間里,后臺服務(wù)器已經(jīng)進(jìn)行了高達(dá)千萬甚至上億次的運算,這種效率高出人類N個數(shù)量級。計算思維里的2A

Abstraction (抽象)和Automation(自動化)是計算思維的兩大核心特征。想要理解抽象和自動化之于計算思維的重要性,我們先來看下運用計算思維進(jìn)行問題求解的關(guān)鍵路徑:<1>把實際問題抽象為數(shù)學(xué)問題,并建模將人對問題的理解用數(shù)學(xué)語言描述出來<2>進(jìn)行映射,把數(shù)學(xué)模型中的變量等用特定的符號代替用符號一一對應(yīng)數(shù)學(xué)模型中的變量和規(guī)則等<3>通過編程把解決問題的邏輯分析過程寫成算法把解題思路變成計算機(jī)指令,也就是算法<4>執(zhí)行算法,進(jìn)行求解計算機(jī)根據(jù)算法,一步步完成相應(yīng)指令,求出結(jié)果

建立數(shù)學(xué)模型的過程就是理解問題的過程,并且要把你對問題的理解用數(shù)學(xué)語言描述出來。這很關(guān)鍵,數(shù)學(xué)模型的好壞意味著你對問題的理解程度夠不夠深,而且數(shù)學(xué)模型還說明了在這個問題中,哪些東西可以計算以及如何進(jìn)行計算,這可以說是計算思維里最最核心的東西了。這個關(guān)鍵過程需要的核心能力就是抽象能力以及一定的數(shù)學(xué)基礎(chǔ)。

數(shù)學(xué)建模只是可計算化的第一步,為了讓計算機(jī)幫我們?nèi)デ蠼?,我們還需要虛擬的符號來代替的數(shù)學(xué)模型里的每個變量和運算規(guī)則,這個過程就是映射啦!

完成映射,我們就能把解題思路(注意,是解題思路,不是數(shù)學(xué)模型)用程序語言完整地告訴計算機(jī)啦,這個過程就是具體的編程寫算法的過程啦!這一步需要較強的編程能力,但編程能力的核心之一也是抽象思維能力。對于編程能力不夠強的人來說,映射還有編程的過程可以交給擅長編程的人來做。

關(guān)鍵路徑的前3步都是人來完成的,最后一步執(zhí)行算法進(jìn)行運算是機(jī)器自動完成的,體現(xiàn)了計算思維的自動化的特點。

在整個過程中,抽象是方法,是手段,貫穿整個過程的每個環(huán)節(jié)。自動化是最終目標(biāo),讓機(jī)器去做計算的工作,把人腦解放出來,中間目標(biāo)是實現(xiàn)問題的可計算化,體現(xiàn)在成果上就是數(shù)學(xué)模型、映射、還有算法。至此,你應(yīng)該對計算思維有個差不多的理解了。當(dāng)你再聽到某些課程顧問說“我們的課程能培養(yǎng)孩子的計算思維時”,你可以反問一下他們是怎樣培養(yǎng)孩子的計算思維的,而不是傻傻地為一個聽起來高大上的詞匯買單。俗話說“師傅領(lǐng)進(jìn)門,修行在個人”,真正運用計算思維去解決問題,還需要各位踏踏實實地掌握相關(guān)知識,并加以操練才行。


undefined_騰訊視頻
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 容易被誤解的計算思維 2006年,卡內(nèi)基·梅隆大學(xué)周以真教授首次系統(tǒng)性地定義了計算思維。這一年,她在美國計算機(jī)權(quán)威...
    森客閱讀 7,580評論 0 8
  • 好課推薦-以計算機(jī)的思維看世界。 讀史使人明智,讀詩使人靈秀,數(shù)學(xué)使人周密,科學(xué)使人深刻,倫理學(xué)使人莊重,邏輯修辭...
    muzi_33閱讀 2,863評論 0 3
  • 細(xì)剪菖蒲薦酤酒,醉引七言酬佳節(jié)。 時人空愛彩絲秀,鐘鼓獨絕屈子切。
    戈小生閱讀 686評論 1 0
  • 1. 相識,留下微信 2. 認(rèn)真經(jīng)營朋友圈(讓人知道你是干什么的) 宣傳自己; 宣傳自己和安利公司的關(guān)系(在安利里...
    木你黑1980閱讀 262評論 0 0
  • 感恩晨起的朝陽,孩子迎著它行進(jìn)在上學(xué)的路上,充滿信心,滿懷希望地向著正確的方向,明確的目標(biāo)前行著,努力著……! 加...
    上個好大學(xué)閱讀 288評論 1 2

友情鏈接更多精彩內(nèi)容