導語:
憨爸是一位美國硅谷的工程師爸爸,也是一位小有名氣的育兒專家,他分享的很多教育理念都被中國爸媽所推崇,看看他是怎麼看待孩子的程式設計教育的吧!
週一發的文章裡,有媽媽請我寫個程式設計的專題,
昨天為這篇文章我醞釀了一天,終於幸不辱命,今天就給大家捋一捋,程式設計到底是否值得給孩子學?又該怎麼學?
1,程式設計值得學嗎?
很多父母對程式設計有誤解,她們認為給孩子學程式設計,將來就是讓孩子做一個程式設計師,可如果不想讓孩子做程式設計師的話,那麼學習程式設計也沒啥必要了?
這個理論其實是不對的,學程式設計和當一名程式設計師沒有任何關係,程式設計學的是一種思維方式,它對孩子的學習以及創造力幫助都很大。
舉個簡單的例子,比如我們編個程式計算「1+2+3+…+100″。這個程式有兩種設計方法:
一種是通過迴圈,讓計算機先計算1+2,然後計算+3,接著+4、+5 … 就這樣一直到 +100,這樣做99次加法就能得到結果了,這是一種思路。
但是還有另外一種思路,這是利用高斯演算法,因為1+100 = 2+99 = 3+98,這些結果都等於101,總共有50對101,那麼計算機只需要計算50×101就能得到最後的結果。
我們比較一下兩者的過程,第一種方法要計算99次,而第二種方法只需要計算1次,你覺得哪個方法更快更好呢?顯然是後者。
因此,學程式設計的目的,不是讓你計算出結果,而是要你用最優的方法得到結果。這纔是學習程式設計的精髓,要知道我們計算機的處理能力是有限的,而資料是海量的,我們需要把計算機的時間節省下來,做更多的事情。所以我說,學程式設計的核心是演算法,是孩子的程式設計思維。你會發現,其實程式設計和數學是息息相關的,想要程式設計學得好,一定得有很好的數學功底才行,就像上面舉例的那個高斯演算法,這本身就是數學裏面的一個經典應用。
這就是我一定要給憨憨學程式設計的原因,會程式設計的孩子,他們的思維都很嚴謹、有條理,而且能找到最優的解決方法,這對孩子未來學業、工作幫助都是很大的!
前幾天同學聚會,大家討論到當年所選專業的時候,我就說,我很慶幸當年報了計算機這個專業,這麼多年工作下來,我就能感覺到我的思維能力比很多人要強。像我寫公號,某種意義上就是用程式設計思維來寫的,一步一步層層遞進,雖然文筆一般,但勝在條理很清晰,這就是源於程式設計對我的幫助!
2,怎麼學程式設計呢?
現在市面上的程式語言那麼多,什麼C/C++、Java、Python、Perl等等,孩子該從何入手呢?
其實程式語言是其次,程式設計思維是關鍵,所有的語言都只是一個外殼,也就是每種語言的語法有點不同,但骨子裏的程式設計思維都是一樣一樣的!
舉個簡單例子,比如說用程式設計來解決「1個蘋果加上2個蘋果等於幾個蘋果”的問題。
用C/C++或者Java的話,它的格式是:
apple_num = 1 + 2;
用Python的話,它的格式是:
apple_num = 1 + 2
乍一看兩段程式設計語句是一樣的,但細看之下兩個程式設計語言的語法還是有所不同,前者後面要有一個「;”,後者卻沒有,但是兩者骨子裏的邏輯是一樣的。這就是我說的程式語言的語法會有所不同,但是程式背後的思維邏輯纔是關鍵,孩子得知道把實際的應用用程式的方式給展現出來。
所以學程式設計,語言是其次,首先需要掌握的是程式設計思維。這就是為什麼斯坦福天才兒童計劃裡的數學課程,從一年級開始就教孩子程式設計思維,他們的學習介面就是下面這張圖,需要在右邊方框裡定義車子的行動路線,然後左邊的車子就會根據孩子制定的行動路線來行動。
關於程式設計思維,這個很複雜,我以後要詳細說說,它的基本思想就是孩子得學會編寫程式的執行路線,上面斯坦福天才計劃的那個程式很簡答,就是一些順序執行,但實際遇到的問題會複雜許多,還會夾雜很多條件語句、迴圈語句等等複雜的邏輯。但是當孩子學會程式設計思維後,那麼他們將來無論用什麼程式語言,比如C、Python之類的就特別簡單,相當於骨架已經有了,只是外面套一件什麼樣的衣服問題。
3,兒童怎麼學程式設計?
現在主流的兒童學程式設計的方法是用一種拖拽式的程式語言。什麼是拖拽式呢?就是操作介面有很多指令的方框,只要將這些指令框拖到主介面就好,並且對指令框做一些引數設定,那麼一個程式就編好了。這種拖拽式的程式語言有很多種,比如Scratch、Hopscotch等等,包括LEGO的高階機器人EV3所用的LabView也是基於這種拖拽式的程式語言。
下面這張圖就是Scratch的一個程式設計介面,你看螢幕的左邊沒有什麼程式設計語句,都是拖拽的一個個方框,用這些方框堆砌成一個完整的程式邏輯,而螢幕的右邊就是程式的執行結果。
下面這張圖是我給憨憨玩的Hopscotch的程式設計介面,也是拖拽的一個個方框,
而下面這張圖是我教憨憨的LEGO EV3程式設計介面,也是拖拽式的!
程式編好後可以傳入樂高機器人的控制器,這樣下圖的機器人就能按照你程式的指示來行動了,
Scratch這類拖拽式程式語言的好處就是孩子不需要背誦程式的各種命令,不需要糾結於程式的語法,只需要在方框裡設定邏輯和引數就好了,對孩子來說超級簡單。
你看下面這個小遊戲,這是憨憨第一次玩Hopscotch的時候,我教他做的一個Pokemon(寵物精靈)的小遊戲,可以通過扔球來抓住小精靈,
所以你可以看到,這種拖拽式的遊戲對孩子上手很快的,第一次接觸就能編寫一個小遊戲出來了!
但是它們也有一個很大的缺陷,就是沒法編寫很複雜的程式,如果程式一複雜,滿屏拖拽的方框看起來會很頭暈。因此當孩子Scratch學到一定程度,就可以轉為專業的程式語言了,這時候首推Python語言。
下面這張圖就是Python的執行介面,
你看Python都是一條條需要手動輸入的語句,整個程式就會複雜許多,但很多專業的程式,上至網站,下至機器人都可以用Python來編寫。而且Python的語法格式相對於C/C++/Java來說會簡單不少,孩子入門起來也比較方便的!
堅果學院致力於做最好的少兒程式設計教育,學少兒程式設計,就上堅果學院!
一般來說,Scratch適合5~12歲的孩子,而Python適合12歲以上的孩子。
線上少兒程式設計體驗,請點選下方【連結】
堅果學院官方通道:http://www.pmo365.cn/
官方公眾號:未來家創客
堅果學院少兒程式設計正在全國進行火熱的招商加盟中~學習少兒程式設計,就來官網瞭解一下吧