06.21 為什麼說學編程的核心是學習思維能力?

我經常會聽到一些孩子說,編程屬於理科生學習的東西,就好像有很多同學會不理解為什麼文科生也要學數學一樣。其實在美國,編程已經開始變成和讀寫、數學、科學並列的學生核心能力。而且,學編程的核心,也不是學計算機語言,而是學一種思維方式。今天,很多孩子每天都忙於上各種各樣的補習班、學習各種各樣的才藝,但其中,我覺得最值得投入時間和精力的,還是孩子思維能力的培養,把重點放在學習“計算性思維”上面——而不單單只是學幾行酷炫的代碼。

為什麼說學編程的核心是學習思維能力?

我畢業於劍橋大學工程系。我經常會用到編程,後來工作了一段時間,越來越覺得,編程是一個非常有用的技能,我就又去學了Html、CSS、Java Script、Python和Ruby,越學我越遺憾沒能在更小的時候接觸到它。

哪怕你的孩子以後讀文科,計算性思維也不可或缺

什麼是計算性思維?簡單來說,是一種用電腦的邏輯來解決問題的思維,這個是由谷歌公司提出的,可以簡單概括成這幾種類型:分解問題、模式認知、抽象思維和算法設計這幾個類型。

這幾個詞只是看上去很抽象,實際上,我們的生活中,有很多問題的解決要用到這些思維,比如策劃全家旅行。

第一是分解問題的能力,把一個龐大的任務分解成幾個小問題分別解決。“策劃全家人的旅行”聽起來非常龐大、繁瑣,那麼,我首先就要將這個龐大的任務分解成幾個小任務,我可以把旅行,先分解成“訂機票”、“訂酒店”、“訂活動”三個任務,然後依次分別解決。而其實每一個小問題又可以進一步分解成不同的小任務來解決,當你將每一個小任務都解決好了以後,這個“計劃全家旅行”的龐大的任務也就可以輕鬆地解決了。

為什麼說學編程的核心是學習思維能力?

第二是模式認知。比如旅行時,訂酒店,其實我2014年、2015年都在某一個網站上訂了某個連鎖酒店,非常靠譜,住得也非常舒服,這一次我可以同樣地在這個網站上訂這個連鎖酒店。在這裡,我會根據我過去的經驗以及過去解決問題的方法,來解決我眼前的問題,這是認知模式的一種。酒店訂完了,我們基本上就要計劃一下我們的活動了。

第三是抽象思維。下圖中,左邊和右邊是兩個不同的計劃,對比之下就能發現,左邊有很多沒有必要的細節,比方說“要吃巧克力麥片”,如果我們把很多時間花在沒有必要的細節上,就會降低我們的效率。

為什麼說學編程的核心是學習思維能力?

所以一個善於運用抽象思維的同學會剝離出問題的核心,知道什麼是重要的、需要提前確定的,什麼是不重要的、到時候慢慢看也行的。這樣TA就不會浪費時間在不必要的項目上。

第四是算法設計,大家可以通俗地理解為解決方案的設計。我們還拿旅行計劃的設計作為例子,到了假日的早上,我非常開心地準備去公園玩,那麼問題來了,怎麼從酒店走到中央公園去?這裡需要一系列的解決方法。

我首先會問今天下雨嗎?今天不下雨,我們就要出酒店門,右轉,朝北走七條街等等,才可以帶我們到公園。如果今天下雨,我們則要回房間、拿上傘,在酒店門口等的士,的士來了就告訴的士司機我們的目的地……

為什麼說學編程的核心是學習思維能力?

我以前經常聽到別人說——“我天生就是個路痴,就算給我個地圖我也找不到地方,你還是來接我吧”,其實我認為,沒有人是所謂的天生的路痴,只要你能對著地圖、運用好計算性思維裡的算法設計、嚴謹地計劃好自己的每一步,就沒有你無法到達的目的地。

會編程的孩子,數理化學起來也不會太難

我們接下來就看看在學習中如何運用計算性思維。

比如說在解數學題的時候,我們就經常要用到分解問題的技巧。這裡有道數學題,看上去有點長,不過一個思維能力強的小朋友就不會被這個長度嚇到,而是把它分拆成三個問題:第一個問題是,首先要解出左邊這個算式的答案;接著要計算出右邊這個算式的答案,這是第二個小問題;再來是我們要比較這兩個數的大小,這是第三個小問題。

為什麼說學編程的核心是學習思維能力?

一個思維敏捷的小朋友馬上就可以分解一個複雜的問題,成為這三個小問題,然後一個個算出來,這樣的話這道很長的題其實也就變得很容易了。

另外一個例子是在做應用題的時候,很多小同學則需要學會剝離出問題的核心。

為什麼說學編程的核心是學習思維能力?

比如說上面這道初中物理題,很多同學讀完這道題後可能感覺這裡有很多信息,但是一個思維敏捷的同學就可以快速地找出這道題的關鍵信息,就是車的重量和剎車的力度。然後小朋友要運用模式認知回想一下,好像過去那道題都是需要用到牛頓的第二定律的,這樣小朋友就會想到這個公式是F = m * a,從而解出這道題的答案。

為什麼說學編程的核心是學習思維能力?

寫作文、做演講,其實都需要計算性思維

其實計算性思維不僅能用在數學學科上,還可以用於其他很多學科的學習。

比方說在語文課上寫作文的時候,要想寫得又快又好,通常我們要列一個作文的提綱,列提綱這個動作其實就是在分解問題。比方說今天我要在這裡介紹計算性思維,我很緊張,這麼龐大的一個話題,我不知道從哪裡開始講,不過我列了一個提綱,決定將這個大的演講分成好幾個小塊:

為什麼說學編程的核心是學習思維能力?

我這樣分解一下,感覺就輕鬆了很多。我主要把每一個小部分講好就好了。

有時候學社會學的時候,我們可以分析我們現在看到的現象,和過去歷史裡發生過的現象有沒有什麼相似之處,是否有可以學習的地方,這就是一種模式認知。學科學的時候,我們使用的公式和模型都是抽象化的。然後在做科學實驗的時候,我們也經常要用算法設計的技能來精確地設計實驗步驟。

最後,有個小提醒給家長朋友們。現在很多同學學習編程語言,都是以自己的興趣為主,比如說寫論壇、機器人、做網站等,比較隨性,我們要不要給他加一下系統性的學習呢?答案是:NO。我想說的是,興趣是一切的源動力,最好的教育方式從不是給孩子一個系統,而是讓他們根據興趣和熱情,自己慢慢摸索出一個系統來。


分享到:


相關文章: