我們都聽(tīng)說(shuō)過(guò)這樣一個(gè)故事:數(shù)學(xué)家高斯在三年級(jí)時(shí)候,老師要求從1+2+3開(kāi)始一直加到100,得出的和是多少?其他同學(xué)都費(fèi)勁地一個(gè)數(shù)一個(gè)數(shù)的加,只有小高斯注意到了這些數(shù)可以兩兩配對(duì),相加和為101:
1+100=101
2+99=101
......
一共有50對(duì),最后的和可以用乘法來(lái)做:(50X101)=5050
很多人都拿這個(gè)來(lái)驗(yàn)證孩子的數(shù)學(xué)思維能力,殊不知,高斯的上述解題思路充分體現(xiàn)了編程思維中的拆分和模式識(shí)別。
那么有的家長(zhǎng)就會(huì)問(wèn)了,鍛煉思維,學(xué)數(shù)學(xué)就可以了,為什么還要學(xué)編程?
數(shù)學(xué)對(duì)思維的鍛煉毋庸置疑,來(lái)看幾個(gè)典型的小學(xué)數(shù)學(xué)題:
1、雞兔同籠問(wèn)題
今有雉兔同籠,上有三十五頭,下有九十四足,問(wèn)雉兔各幾何?
2、一個(gè)水池有一根進(jìn)水管,一根排水管,只打開(kāi)進(jìn)水管,需要15分鐘放滿水池,只打開(kāi)排水管,放完水池里的水需要8分鐘?,F(xiàn)在兩個(gè)水管同時(shí)打開(kāi),問(wèn)多久能把水池放空?
數(shù)學(xué)數(shù)學(xué)就是關(guān)于數(shù)的學(xué)問(wèn),它最顯著的特征就是題目中有數(shù)字,通過(guò)已知,求解未知,需要調(diào)用人類(lèi)思維中的精華總結(jié)——公式&定理,簡(jiǎn)單的像九九乘法表,復(fù)雜的比如函數(shù)的圖像與性質(zhì)。很多題目設(shè)計(jì)的目標(biāo)就是考查孩子們能否靈活運(yùn)用所學(xué)公式和定理,它們是宇宙終極真理,過(guò)一千年也不會(huì)過(guò)時(shí)。未來(lái)如果研究復(fù)雜問(wèn)題特別是做科學(xué)研究時(shí),數(shù)學(xué)思維會(huì)非常有用。
而編程是一門(mén)為解決實(shí)際問(wèn)題而生的學(xué)科,孩子們需要編寫(xiě)計(jì)算機(jī)能搞懂的指令,讓它來(lái)幫我們工作,它對(duì)思維的訓(xùn)練更接近日常的思維方式,更加基礎(chǔ)和普遍。
01 編程怎么鍛煉思維
編程思維本質(zhì)上是我們解決問(wèn)題的一種方法,是邏輯思維的一種,就是利用我們已有的知識(shí)和工具,將自身的思路轉(zhuǎn)化成邏輯運(yùn)算的步驟,從而完成復(fù)雜的任務(wù)。
一般需要經(jīng)過(guò)這么幾個(gè)步驟:
1-1
分解(decomposition)
把一個(gè)復(fù)雜的大問(wèn)題,拆解成更可執(zhí)行、更好理解的小步驟。
1-2
模式識(shí)別(pattern recognition)
找出相似模式,高效解決細(xì)分問(wèn)題。
1-3
抽象(abstraction)
聚焦最重要的信息,忽視無(wú)用細(xì)節(jié)。
1-4
算法(algorithms)
設(shè)計(jì)一步一步的解決路徑,解決整個(gè)問(wèn)題。
有編程思維的孩子,數(shù)學(xué)不會(huì)太差。以小學(xué)口算為例:
它能運(yùn)用在任何事情上,可能你并沒(méi)有意識(shí)到,比如記憶電話號(hào)碼:
通過(guò)這四個(gè)步驟,一個(gè)復(fù)雜的問(wèn)題先被拆解成一系列好解決的小問(wèn)題→每一個(gè)小問(wèn)題被單獨(dú)檢視、思考,尋找解決方案→聚焦幾個(gè)重要節(jié)點(diǎn),忽視小細(xì)節(jié),形成解決思路→設(shè)計(jì)步驟執(zhí)行→問(wèn)題解決。
所以,所謂“編程思維”并不是編寫(xiě)程序的技巧,而是一種高效解決問(wèn)題的思維方式。
經(jīng)過(guò)編程訓(xùn)練的孩子,還可能養(yǎng)成下面這些優(yōu)秀的思維習(xí)慣。
自動(dòng)化思維
近幾年很火的人工智能,本質(zhì)上就是一種自動(dòng)化。為了讓自己在繁瑣而重復(fù)的任務(wù)中解脫出來(lái),有編程思維的小朋友會(huì)進(jìn)行更高層思考和設(shè)計(jì),利用工具和腳本讓自己解脫出來(lái),猶如工廠的流水線設(shè)計(jì)。
抽象思維
抽象就是去掉與計(jì)算無(wú)關(guān)的部分,用規(guī)約的方法還原到問(wèn)題的本質(zhì)。所謂本質(zhì)即把初始問(wèn)題轉(zhuǎn)換為一個(gè)或幾個(gè)可以使用計(jì)算機(jī)描述并解決的問(wèn)題,進(jìn)一步講也就是轉(zhuǎn)換為在算法上可計(jì)算的一個(gè)或幾個(gè)問(wèn)題。它的本質(zhì)是利用計(jì)算機(jī)的能力。
系統(tǒng)思維
系統(tǒng)思維就是選擇、改善或構(gòu)建“框架”,以更快速、更全面、更深入地系統(tǒng)思考和表達(dá)的思維方式,可以理解為系統(tǒng)就是框架與邏輯的綜合體。它能夠幫助你更有效地理解一個(gè)較復(fù)雜的系統(tǒng)。下面舉個(gè)很老的例子:
張三和李四同時(shí)受雇于一家店鋪,拿著同樣的薪水。 一段時(shí)間后,張三升職加薪,李四卻沒(méi)有,于是李四找老板理論。老板對(duì)他說(shuō):“李四,你現(xiàn)在幫我到集市上去一下,看看今天早上有什么賣(mài)的?!?不一會(huì)兒,李四從集市回來(lái),向老板匯報(bào):“只有一個(gè)農(nóng)民拉了一車(chē)土豆在賣(mài)。” 老板問(wèn):“有多少?”李四不知道,于是趕緊又跑到集市上,然后回來(lái)告訴老板:“一共40 袋土豆。” 老板又問(wèn)他:“價(jià)格呢?”李四說(shuō):“您沒(méi)有叫我打聽(tīng)價(jià)格啊?!庇谑抢习遄尷钏南茸滦菹?,并把張三叫來(lái),吩咐他說(shuō)去做同一件事。 張三回來(lái),向老板匯報(bào):“今天集市上只有一個(gè)農(nóng)民在賣(mài)土豆,一共40袋,價(jià)格是兩毛五分錢(qián)一斤。我看了一下,這些土豆的質(zhì)量不錯(cuò),價(jià)格也便宜,根據(jù)我們以往的銷(xiāo)量,40袋土豆在一個(gè)星期左右就可以全部賣(mài)掉,一定能賺錢(qián)?!贝藭r(shí)老板轉(zhuǎn)向了李四,說(shuō):“現(xiàn)在你知道為什么張三的薪水比你高了吧?”
通過(guò)上面介紹的小例子,可以看出,張三對(duì)于老板吩咐的事有一個(gè)系統(tǒng)的認(rèn)識(shí),思維縝密,考慮到了方方面面,從中可看出系統(tǒng)思維的重要性。
02 數(shù)學(xué)不好,能不能學(xué)編程?
由于編程的核心是算法,有些家長(zhǎng)就認(rèn)為數(shù)學(xué)不好的孩子,學(xué)編程/計(jì)算機(jī)科學(xué)會(huì)很吃力,這其實(shí)也是一個(gè)誤區(qū)。
不可否認(rèn),數(shù)學(xué)和計(jì)算機(jī)科學(xué)是相互影響的, 計(jì)算機(jī)中的計(jì)算原理處處都包含著數(shù)學(xué)思想,同樣計(jì)算機(jī)的高速運(yùn)算能力也大大地推動(dòng)了數(shù)學(xué)的發(fā)展。
編程實(shí)際上是求解某個(gè)問(wèn)題的過(guò)程,這個(gè)過(guò)程也可看做是設(shè)計(jì)算法到實(shí)現(xiàn)算法的過(guò)程,因此可以看出編程離不開(kāi)數(shù)學(xué)原理的支持,沒(méi)有良好的數(shù)學(xué)思維就很難編寫(xiě)出高質(zhì)量的程序。
但是,會(huì)基本的加減乘除四則運(yùn)算,就可以應(yīng)對(duì)比較基礎(chǔ)的編程學(xué)習(xí)。高等數(shù)學(xué),只有在機(jī)器學(xué)習(xí),數(shù)據(jù)壓縮等中才用得上。猿編程的課程設(shè)計(jì)也會(huì)充分考慮孩子們的數(shù)學(xué)能力和思維水平。
同時(shí),編程能夠幫助孩子理解數(shù)學(xué)抽象概念。對(duì)于許多孩子來(lái)說(shuō),數(shù)學(xué)概念太抽象、離生活太遠(yuǎn),不好理解。但是在編程的過(guò)程中,抽象的數(shù)學(xué)概念可以被轉(zhuǎn)化為看得見(jiàn)的、具體的圖像。
比如,在編程的過(guò)程中,孩子對(duì)于小數(shù)和分?jǐn)?shù)會(huì)有更直觀的理解。將代碼中的小數(shù)點(diǎn)移動(dòng)位置,屏幕上的物體的大小就會(huì)發(fā)生巨大的變化。孩子可以因此可以將抽象的小數(shù)和分?jǐn)?shù)的概念變成鮮活的圖形,印到腦子里。
另一方面,編程就是把實(shí)際問(wèn)題轉(zhuǎn)換成計(jì)算機(jī)能夠理解的數(shù)學(xué)問(wèn)題,對(duì)數(shù)學(xué)能力也是一種強(qiáng)化。就像猿編程課程的總設(shè)計(jì)李翊說(shuō)的,“數(shù)學(xué)學(xué)得好,不一定會(huì)編程,但是會(huì)編程,數(shù)學(xué)不會(huì)差!”
03 數(shù)學(xué)和編程哪個(gè)更難?
拋開(kāi)學(xué)習(xí)的深度來(lái)講難易,其實(shí)沒(méi)有價(jià)值。
從入門(mén)的角度來(lái)說(shuō),學(xué)編程并不比數(shù)學(xué)難??蔀槭裁春芏嗉议L(zhǎng)還是覺(jué)得編程很難,擔(dān)心孩子學(xué)不會(huì)呢?
這其中的本質(zhì)原因在于家長(zhǎng)沒(méi)學(xué)過(guò),對(duì)于自己不熟悉不了解的東西,人們傾向于放大它的難度。實(shí)際上,猿編程課程的總設(shè)計(jì)師李翊在看到自己8歲的兒子能成功編寫(xiě)一段代碼并運(yùn)行的時(shí)候,也是有點(diǎn)驚訝的。
我們教孩子學(xué)編程,和教他們學(xué)數(shù)學(xué)一樣,都是期望孩子掌握一個(gè)更有效的工具,目標(biāo)不是成為偉大的程序員或數(shù)學(xué)家。
計(jì)算機(jī)科學(xué)進(jìn)化到今天,最難的底層編碼已經(jīng)比較完善了,孩子們直接調(diào)用前人的算法成果即可,就像你要學(xué)習(xí)使用excel,學(xué)習(xí)的是每個(gè)功能怎么用,并不需要知道每個(gè)功能是怎么做出來(lái)的。從這一點(diǎn)上來(lái)說(shuō),二者沒(méi)有區(qū)別。
最后總結(jié)下,數(shù)學(xué)和編程都能鍛煉思維,區(qū)別是前者對(duì)腦力的要求更高,如果數(shù)學(xué)不好,那小編建議孩子先試試編程課,沒(méi)準(zhǔn)兒能重新找回自信呢!數(shù)學(xué)棒棒的孩子,也不妨嘗試下編程,計(jì)算機(jī)科學(xué)也有高峰等著你去攀登呢!
?
聯(lián)系客服