選單

程式設計學習,為孩子帶來這4大能力!

近年來,程式設計似乎成為了家長朋友茶餘飯後的新話題,朋友圈也會不時刷出各種培訓資訊,很多家長也給孩子嘗試過線上課程,儘管如此大家對少兒程式設計存在著很多疑問:“

程式設計究竟學什麼?學了有什麼用?

”、“該如何學習?”、“我不懂這個領域,孩子可以學嗎?

不論孩子學習什麼課程,家長不需要全懂,瞭解一些本質的東西,也就可以了。

比如:學習的目的?對孩子有何幫助?程式設計究竟是一種什麼樣的思維?

搞清楚這些問題,就可以基本選擇適合孩子的學習資源,也比較容易判斷孩子的學習效果。

首先,程式設計≠當碼農。它不光是一項技能,更是透過學習培養一種思維,一種思考問題的角度。

每一個新的領域都能給我們帶來不同的新知識,手握新知識的我們同樣也會獲得新的能力,獲得看待世界的新角度。程式設計也同樣如此。

程式設計的本質就是:

和電腦對話,用電腦聽的懂的語言,告訴它我想讓它做的事。

與電腦溝通時,就不可以像我們平時與人溝通一樣去交流,咱們人類的天性裡充滿了感性、隨意、散漫、喜歡八卦、愛聽故事。而它需要有更多的條理性。所以,

要和電腦溝通對話,我們同樣需要把自己變得理性嚴謹起來,從電腦的角度去思考問題,這就是我們所說的程式設計思維。

這種思維可以給孩子帶來什麼好處呢?以貪吃蛇為例:

程式設計學習,為孩子帶來這4大能力!

貪吃蛇遊戲規則:用上下左右鍵控制蛇的方向,尋找吃的東西,每吃一口就可以得到一定的積分,在這個過程中,蛇的身子會越吃越長,蛇身越長難度就會越大,蛇的頭部不可以碰牆,也不可以碰到自己的身體,到了一定分數,即可過關。

1. 拆解問題的能力

要寫一個關於“貪吃蛇”的遊戲,剛拿到這個題目,該如何入手?就想上面說到的,要想法子讓電腦聽懂你的想法。要先做什麼,有哪些步驟等,我們先要做的是把這個大問題給拆成小問題。

拆解

在這個程式中,電腦主要處理兩件大事:

1。處理輸入- 收集使用者操作資訊

2。輸出響應- 根據不同的輸入,做出不同響應

再拆解

1。輸入- 使用者的操作可以有上、下、左、右四種鍵位

2。輸出- 相應地,貪吃蛇也要往上、下、左、右四個方向走動

我們繼續拆解第二點

當貪吃蛇每走一步,可能會出現以下幾種情況:

1。吃到蘋果

2。撞到牆

3。撞到自己

4。什麼都沒發生

再把第一點吃到蘋果抽出來進行拆解

在這個步驟中,電腦可能做的事情:

蛇張開嘴巴-蘋果被咬掉-播放吃蘋果的聲音-蛇閉上嘴巴-身體長長一截

看起來很簡單的一個小程式,拆分後居然會有這麼多步驟,但是這僅僅是其中一條分支。

孩子學習程式設計的過程,就是不斷地訓練他把複雜、龐大的問題拆解理順的過程。

在生活中,這種思維也可以用到,透過拆解大問題,從而轉化為一個個小問題,一一攻破,這樣大問題也就解決了。具備這種能力,

在之後做事過程中也會比較有耐心,處理事情方面也可以做到有條不紊。

2. 發現並整合“重複規律”的能力

比如在“貪吃蛇遊戲中吃蘋果”這一動作,在程式中會多次發生,無論是從哪個方向,都是同樣一組動作,那麼這組動作就可以打包一個組為“吃蘋果”。如果需要可以直接運用這個組,而不用再把它包含的動作想一遍。

在程式設計學習過程中,孩子可以一直進行這樣的訓練,發現一些可以重複的單元,把它整合起來,讓計算機去做重複。這樣一來不僅節省時間,還可以大大提高我們的做事效率。

程式設計學習,為孩子帶來這4大能力!

那些做事麻利效率高的人,很多就是具備了這個能力。

創新不一定是做出一個前所未有的新產品,對現有的模式進行最佳化改進,也是一種創新。

而發現並整合“重複規律”的能力更容易讓我們找到創新的機會。

3. 邏輯思維能力

邏輯思維中有個非常重要的原則叫做MECE(Mutually Exclusive and Collectively Exhaustive),意思就是“相互排斥且整體完備”,也就是“不重複,不遺漏”。比如下面右圖是遵循了MECE原則的,左圖就沒有。

程式設計學習,為孩子帶來這4大能力!

在程式設計過程中,處處要考慮和遵循MECE原則。比如在貪吃蛇的程式裡,蛇每往前走一步,可能會出現4種情況:

a。 吃到了蘋果

b。 撞到牆

c。 撞到自己

d。 什麼都沒發生

這4種情況是互斥的,比方說吃到蘋果的時候就不可能撞到牆,那麼程式中就不能讓蘋果出現在牆上;而且,這4種情況覆蓋了所有可能性,在寫程式時如果只考慮了其中的2種或3種,就“缺胳膊少腿”了。此外,程式設計過程中還會涉及到很多處理“與”、“或”、“非”等布林邏輯操作。比方說“蛇沒有吃到蘋果”與“蛇沒有撞到牆”,就等價於,“蛇撞到自己”或“什麼都沒發生”。

這些思考過程對於孩子來說,都是非常好的思維邏輯訓練。

4. 除錯糾錯能力

壓軸總要放到最後講:

前面所提到程式設計能帶給孩子的幾項能力,相比這點來講,糾錯能力是最重要的,也是每個孩子所需要的。

做任何事情,都無法做到一次就完成的盡善盡美,在運用程式過程中發現問題,這時就需要孩子去發現並且解決。

程式的世界很純粹,對就是對,錯就是錯,沒有什麼模糊的概念。不像藝術等觀眾仁者見仁智者見智,不一定可以證明你的作品不好或者是哪裡出現了問題,自己也不知道如何改進。

然而,程式中的bug也不是那麼輕易就可以找得到,常常需要跟著順序再走一遍,觀察每一步執行結果。

這中間需要很多耐心、觀察力和專注力,對孩子的抗挫折能力也是一種很好的磨練。

久而久之,他更關注於提高自己糾錯的技能,而不是害怕、迴避或者掩蓋錯誤。孩子會越來越懂得,有錯很正常,只要能把它揪出來,改正就好。

有些人總是在不斷進步,因為他學會了如何回溯、除錯、糾錯進而提升自己。

以上這些能力,其實並不是程式設計特有的(比如數學本身就可以鍛鍊思維),

但它們卻是在程式設計這件事情上集體出現的,並且是以有趣的、孩子喜歡的方式。

所以要是你問我,孩子有沒必要學程式設計,我會很肯定地回答,有必要,因為它的確對孩子綜合能力培養有著自己獨到的作用。