少年商學院(ID:youthmba)的第1181次分享。作者系全球40位MIT(麻省理工)認證的移動編程教育專家之一的周安琪。這個暑期,安琪老師將聯(lián)手畢業(yè)于全美第一教育學院的趙晴博士,帶領來自全國各地的小學生開展“2046學校大創(chuàng)想×MIT APP編程”夏令營,點擊此處了解詳情。
我畢業(yè)于劍橋大學工程系。我經(jīng)常會用到編程,后來工作了一段時間,越來越覺得,編程是一個非常有用的技能,我就又去學了Html、CSS、Java Script、Python和Ruby,越學我越遺憾沒能在更小的時候接觸到它。
(周安琪老師在少年商學院國際教育沙龍上。本文為她此后線上直播公開課的內(nèi)容。)
感謝少年商學院,讓我今天通過視頻直播這種方式,與來自全國各地的諸多家長及教師朋友們交流(公開課簡介)。我經(jīng)常會聽到一些孩子說,編程屬于理科生學習的東西,就好像有很多同學會不理解為什么文科生也要學數(shù)學一樣。其實在美國,編程已經(jīng)開始變成和讀寫、數(shù)學、科學并列的學生核心能力。而且,學編程的核心,也不是學計算機語言,而是學一種思維方式。今天,很多孩子每天都忙于上各種各樣的補習班、學習各種各樣的才藝,但其中,我覺得最值得投入時間和精力的,還是孩子思維能力的培養(yǎng),把重點放在學習“計算性思維”上面——而不單單只是學幾行酷炫的代碼。
▋哪怕你的孩子以后讀文科,計算性思維也不可或缺
什么是計算性思維?簡單來說,是一種用電腦的邏輯來解決問題的思維,這個是由谷歌公司提出的,可以簡單概括成這幾種類型:分解問題、模式認知、抽象思維和算法設計這幾個類型。
這幾個詞只是看上去很抽象,實際上,我們的生活中,有很多問題的解決要用到這些思維。比如計劃一次旅行——前不久我在少年商學院線下國際教育沙龍上的分享(點擊閱讀當天分享精華《她13歲留英,劍橋畢業(yè)后到MIT充電,她給中國孩子的7個學習錦囊》)也提到,英國學校會要求學生自主策劃一次大型旅行,每個過程,都對應了計算性思維中的一個小部分。
第一是分解問題的能力,把一個龐大的任務分解成幾個小問題分別解決?!安邉澣胰说穆眯小甭犉饋矸浅}嫶?、繁瑣,那么,我首先就要將這個龐大的任務分解成幾個小任務,我可以把旅行,先分解成“訂機票”、“訂酒店”、“訂活動”三個任務,然后依次分別解決。而其實每一個小問題又可以進一步分解成不同的小任務來解決,當你將每一個小任務都解決好了以后,這個“計劃全家旅行”的龐大的任務也就可以輕松地解決了。
第二是模式認知。比如旅行時,訂酒店,其實我2014年、2015年都在某一個網(wǎng)站上訂了某個連鎖酒店,非??孔V,住得也非常舒服,這一次我可以同樣地在這個網(wǎng)站上訂這個連鎖酒店。在這里,我會根據(jù)我過去的經(jīng)驗以及過去解決問題的方法,來解決我眼前的問題,這是認知模式的一種。酒店訂完了,我們基本上就要計劃一下我們的活動了。
第三是抽象思維。下圖中,左邊和右邊是兩個不同的計劃,對比之下就能發(fā)現(xiàn),左邊有很多沒有必要的細節(jié),比方說“要吃巧克力麥片”,如果我們把很多時間花在沒有必要的細節(jié)上,就會降低我們的效率。
所以一個善于運用抽象思維的同學會剝離出問題的核心,知道什么是重要的、需要提前確定的,什么是不重要的、到時候慢慢看也行的。這樣TA就不會浪費時間在不必要的項目上。
第四是算法設計,大家可以通俗地理解為解決方案的設計。我們還拿旅行計劃的設計作為例子,到了假日的早上,我非常開心地準備去公園玩,那么問題來了,怎么從酒店走到中央公園去?這里需要一系列的解決方法。
我首先會問今天下雨嗎?今天不下雨,我們就要出酒店門,右轉(zhuǎn),朝北走七條街等等,才可以帶我們到公園。如果今天下雨,我們則要回房間、拿上傘,在酒店門口等的士,的士來了就告訴的士司機我們的目的地……
我以前經(jīng)常聽到別人說——“我天生就是個路癡,就算給我個地圖我也找不到地方,你還是來接我吧”,其實我認為,沒有人是所謂的天生的路癡,只要你能對著地圖、運用好計算性思維里的算法設計、嚴謹?shù)赜媱澓米约旱拿恳徊剑蜎]有你無法到達的目的地。
▋會編程的孩子,數(shù)理化學起來也不會太難
我們接下來就看看在學習中如何運用計算性思維。
比如說在解數(shù)學題的時候,我們就經(jīng)常要用到分解問題的技巧。這里有道數(shù)學題,看上去有點長,不過一個思維能力強的小朋友就不會被這個長度嚇到,而是把它分拆成三個問題:第一個問題是,首先要解出左邊這個算式的答案;接著要計算出右邊這個算式的答案,這是第二個小問題;再來是我們要比較這兩個數(shù)的大小,這是第三個小問題。
一個思維敏捷的小朋友馬上就可以分解一個復雜的問題,成為這三個小問題,然后一個個算出來,這樣的話這道很長的題其實也就變得很容易了。
另外一個例子是在做應用題的時候,很多小同學則需要學會剝離出問題的核心。
比如說上面這道初中物理題,很多同學讀完這道題后可能感覺這里有很多信息,但是一個思維敏捷的同學就可以快速地找出這道題的關鍵信息,就是車的重量和剎車的力度。然后小朋友要運用模式認知回想一下,好像過去那道題都是需要用到牛頓的第二定律的,這樣小朋友就會想到這個公式是F = m * a,從而解出這道題的答案。
▋寫作文、做演講,其實都需要計算性思維
其實計算性思維不僅能用在數(shù)學學科上,還可以用于其他很多學科的學習。
比方說在語文課上寫作文的時候,要想寫得又快又好,通常我們要列一個作文的提綱,列提綱這個動作其實就是在分解問題。比方說今天我要在這里介紹計算性思維,我很緊張,這么龐大的一個話題,我不知道從哪里開始講,不過我列了一個提綱,決定將這個大的演講分成好幾個小塊:
我這樣分解一下,感覺就輕松了很多。我主要把每一個小部分講好就好了。
有時候?qū)W社會學的時候,我們可以分析我們現(xiàn)在看到的現(xiàn)象,和過去歷史里發(fā)生過的現(xiàn)象有沒有什么相似之處,是否有可以學習的地方,這就是一種模式認知。學科學的時候,我們使用的公式和模型都是抽象化的。然后在做科學實驗的時候,我們也經(jīng)常要用算法設計的技能來精確地設計實驗步驟。
▋不同年齡段,為孩子選擇不同的編程工具
最后我想介紹的是如何根據(jù)孩子的年齡和特點,挑選學編程的軟件——除了去上課、去學編程以外,還是有一些iPad的編程工具和游戲可以幫助同學們鍛煉計算性思維的。這個暑假,我在北京為同學們開展的設計未來學校的夏令營,也要運用編程構建方案(點擊這里了解詳情)。
1、幼兒園或小學低年級:Swift Playgrounds、code.org
對于幼兒園的小朋友來說,他們可能最先學會的不一定是計算機的語言,而是學會怎么樣精確地發(fā)號施令。可以不需要用計算機語言,而是用他們精確的語言、用一些簡單的圖形、音樂來傳達這個概念。
前幾天蘋果公司發(fā)布了一個幫助同學們鍛煉計算性思維的APP,叫Swift Playgrounds,這個APP要秋天才能上架,所以普通人去架子上找應該還沒有。但是我拿了他們提前給老師的一本培訓介紹書,我發(fā)現(xiàn),比起讓同學們學會如何用Swift編寫蘋果的APP,他們更加注重用一些歡快的、活潑的謎題和游戲的形式,幫小朋友們甚至是很小的、幼兒園的小朋友們鍛煉計算性思維,為小朋友們啟蒙。
其實code.org也是用一些非常簡單的方法來讓小朋友們鍛煉計算性思維、鍛煉如何發(fā)號施令的。
有個家長說帶著姑娘玩code.org,一小時全部通關了。其實她就是喜歡過關,卻對自己過程中產(chǎn)生的一些創(chuàng)意沒什么興趣。怎么引導呢?比方說,如果我的一個學生,他很喜歡畫畫,我就會引導他想辦法去做一個繪畫的程序,或者做一些繪畫上的編程。這個時候,Scratch這個軟件會更適用一些。
2、小學階段:Scratch、APP Inventor、Hopscotch
6歲以上就可以開始從Scratch接觸了,我建議先學一種拖拽式的積木式拼裝的語言——Scratch或者APP Inventor。然后等孩子大一點,再去學Python、Java,其實我還很推薦學Html Javascript,因為Html Javascript有一個好處是在于你每寫一行代碼,它都可以馬上在你的顯示屏上、瀏覽器上顯示出來,跟Python相比,它的趣味性可能更濃。我覺得最好是先學Scratch或者App Inventor,然后可以學(Html、CSS、JS,再到Python、Java)。
最后這個是hopscotch,可以讓孩子在iPad上寫小游戲、小動畫,比scratch稍微難一點點??稍贏ppStore里下載到。
3、12歲以上:別著急抄寫代碼
就算是12歲以上,我也建議先通過一種可視化的語言開始——就是模塊化,像Scratch和APP Inventor,像拼積木一樣把邏輯程序拼起來,以這個作為開始。
有很多家長說同學比較大了,可不可以直接學Python?但是我覺得Python、Java等,有很多的英文字,很多初學者容易犯的一個錯誤就是,把時間和精力都花在抄寫代碼上面了,而且這種文本式的語言很多都需要學生對括號、分號等標點符號的使用非常了解,很多小朋友把心思全都花在寫正確的標點符號和打正確的字上面了。
而我推薦就算是12歲以上的同學也可以先用一種積木式、拖拽式的語言,可以讓這些同學們首先通過這些先學好這些程序的核心邏輯,把這些編程的邏輯和概念學扎實了以后,再去學這些文本式的語言。當他已經(jīng)有了一個編程概念或者說計算機概念的基礎后,他再去學文本語言就要好很多,這個時候他可以花多一點心思去看怎么樣把這些代碼打?qū)Α?/span>
一定要多問For What,讓孩子學編程到底為了什么。
網(wǎng)上有不少不用寫代碼就能直接生成APP的工具,家長給孩子們選用這些工具的時候,不妨考慮一下,我們讓孩子學編程是為什么?是為了讓他們做一個APP出來賣錢嗎?應該不是吧,我們還是希望,在學習編程的過程中,鍛煉計算性思維,以及解決實際問題的能力等 ,這比生成一個APP要有用很多。當然,如果孩子像做一個APP,我覺得恰好可以引導他們來學習編程。
今年暑期,我將聯(lián)合畢業(yè)于連續(xù)多年全美排名第一教育學院的范德堡大學教育學博士、少年商學院趙晴老師,在北京為9到12歲小學生開設《2046學校大創(chuàng)想x MIT APP編程》工作坊,顯然,孩子們要學習編程,但這更是一次項目制學習(Project Based Learning)。我們將帶領同學們暢想、采訪調(diào)研、頭腦風暴,設計30年后的未來學校,并通過APP編程,呈現(xiàn)智能操控所建造Future School的邏輯,這個過程中對孩子們設計思維、創(chuàng)想力、計算性思維及動手實踐能力的鍛煉同樣非常重要。(點擊“這里”查看詳情并報名)
最后,有個小提醒給家長朋友們?,F(xiàn)在很多同學學習編程語言,都是以自己的興趣為主,比如說寫論壇、機器人、做網(wǎng)站等,比較隨性,我們要不要給他加一下系統(tǒng)性的學習呢?答案是:NO。我想說的是,興趣是一切的源動力,最好的教育方式從不是給孩子一個系統(tǒng),而是讓他們根據(jù)興趣和熱情,自己慢慢摸索出一個系統(tǒng)來。
要發(fā)表評論,您必須先登錄。