孩子為什麼要學習編程?
學校中編程課程的開展已經如風暴般席捲全球。為什麼要教孩子們編程呢?是否每個人都需要知道怎麼敲代碼?學習編程到底有哪些好處呢?怎麼給小學一年級的孩子介紹編程?讀完本文後,你就可以找到答案。
今天,現代教育正面臨著前所未有的巨大挑戰。現代世界的發展的變化是如此之快,而傳統的教學方式大部分是基於直接知識獲取,這種方式正在逐漸被取代。由於我們處於這個快速變化的時代,我們不再能預測學生們在將來會用到哪些知識。文明發展的里程碑是由每一個小的進化構成的,現在已經有大量的事實證明這個發展趨勢。互聯網和智能設備的大規模運用,使得我們能夠迅速找到湮沒在書籍中知識。所以,用大腦去記住這些知識的意義就不大了。
教育行業已經隨之產生了新的變化。現在的學校已經開始嘗試把重點放在發展創造力、邏輯思維能力、問題解決能力和合作能力。即使現實社會的發展日新月異,這些技能也不會過時,並且能讓人們更容易地去適應新的環境。
在學習以上能力的方法中,一個經常被提到的工具就是學習如何編程。
編程到底是什麼意思?編程通俗的說法就是敲代碼,有著非常廣泛的用途。程序管理著我們的個人電腦、銀行服務、網路服務、平板電腦、智能電話,甚至洗衣機和電梯。編程就是為電腦提供指令。第一條編寫的程序使用的是機器語言-即一串2進位(0和1)數字。例如:0000 0010 0000 0000 0001 0000 0011 0100就是一個例子,機器能夠很容易執行這個程序,但是對於人類,即使是專家,來解釋用這種方式寫的代碼也頗具挑戰。
為了讓編寫代碼更有效率,非常有必要製造出一種編程語言:一套基於文字而不是數字的命令,並使用準確的語法把程序翻譯成機器語言。第一個計算機出現後,已經有非常多的(超過1000種)編程語言問世,每年還有更多的新語言出現。沒有完美或者通用的語言能在所有地方適用,但是科技的不斷發展讓我們可以研究新的更有效率的編程方法。各種語言呈現出不同的多樣性,同時這些語言也有共同點。
孩子也能編程學習編程對於STEM(科學、技術、工程和數學)領域的教育是一個普遍有效的方法,學會編程後使用一個鍵盤和編譯器就可以讓這些領域的學習者充分發揮自己的創造力。對於沒有學習過編程的普通人,面對編程是兩眼漆黑。社會的現實需要新的一代人成為新技術的參與者和創造者,而不僅僅是使用者。幸運的是,多年的研究已經提供了各種各樣的幫助孩子們從接受教育開始就能使用的編程工具。
Computers have and continue to change the world around us, and programmers continue to be essential. But I know firsthand from studying FORTRAN that many of us get intimidated by it and we shouldn』t be. Computer programming has become far more accessible to teach and learn, and our country needs more students to learn it.
– Randi Weingarten
President, American Federation of Teachers
早在20世紀60年代,數學家Seymour Papert已經開始研究把編程教育作為一種教育工具。在Jean Piaget的理論的啟發下,Papert創造出了第一個用以信息系統和數學教育的編程語言:Logo。Seymour Papert已於2016年逝世,但是現代編程教學領域的大部分成果都源於他的多年研究。樂高的Mindstorms機器人套裝就是在他的領導下由樂高集團和MIT多媒體實驗室共同開發的革命性產品。套裝的名字Mindstorms實際上就是借用的Papert的著作「Mindstorms: Children, Computers and Powerful Ideas.」他的影響亦被著名的可視化編程語言Scratch的創造者們所銘記。感謝MIT、Tuft、LEGO和其他貢獻者,現在小學生也可以掌握編程,而以前沒有編程經驗的老師也能進行編程教學。
用於教學的編程語言用於教學的編程語言通常是圖形化或者圖形與文字結合的。想要編程,只要從為數不多的控制項中找到指令,然後把它們按照邏輯順序排列就行了。 整個過程只需要進行滑鼠的拖拉操作,而這些指令通常按照功能不同被設計成不同顏色的模塊,以圖標或者文本顯示。這種編程環境在視覺上非常吸引人,而且也為初學者排除了簡單的語法錯誤(但是邏輯上的錯誤語言本身並不能避免)。孩子們甚至不用學會打字就能寫程序了。
學習編程的好處
找工作時佔據優勢
根據預測,勞務市場對掌握ICT (Information and Communication Technology)技術的人才需求量越來越大。數字市場的增長速度遠遠大於全球經濟的平均增長速度。歐盟公布的歐洲數字白皮書顯示,到2020年歐洲共需要90萬ICT專業人士。編程技能不僅僅限於ICT領域的使用,其他工作中也越來越多的使用到相關知識,例如搭建簡單的網站、app、管理線上商鋪等等。
Our policy at Facebook is literally to hire as many talented engineers as we can find. There just aren』t enough people who are trained and have these skills today.
– Mark Zuckerberg
Founder, Facebook
這種預測並非毫無根據,上面提到的歐洲數字白皮書中就預測到,所有工作的90%都將需要至少基礎的信息技術,而目前50%的人員都不具有相應的技能。因此,我們解決的是正在面臨的巨大的專業不足,這也是當今的教育面臨的重大挑戰之一。研究表明,這個大坑在接受教育的前12年就已經形成。而現在這個期間內學到的相關知識不足以應對以後在大學或工作中的需要。
Technology and computers are very much at the core of our economy going forward. To be prepared for the demands of the 21st century — and to take advantage of its opportunities — it is essential that more of our students today learn basic computer programming skills, no matter what field of work they want to pursue.
– Todd Park
U.S. Chief Technology Officer
數字能力
2012年,愛沙尼亞開展了一個實驗項目,讓小學一年級的孩子就開始學習編程。儘管這個實驗項目的目的不是在20年後為國家培養一批計算機科學家,更多的是著眼於社會,讓人們可以更加自如、靈活的使用到現代技術、計算機和互聯網。
Learning to code makes kids feel empowered, creative, and confident. If we want our young women to retain these traits into adulthood, a great option is to expose them to computer programming in their youth.
– Susan Wojcicki
Senior Vice President, Google
MIT多媒體實驗室的Mitch Resnick分享了這樣一個觀點:「現在的年輕人已經體驗了大量的新技術,但是很少一部分能夠創造出新技術或者使用新技術展現自己。就好像是數字文盲(可以用新技術讀,但是不能寫)」。不是所有人都意識到編程能帶來的好處。各種研究表明學習編程能潛在影響學生的認知能力和社交能力。接觸基礎的計算機科學,能讓孩子們獲得基礎的演算法思維和形成基礎的邏輯結構,這在大學階段和社會中會展現出巨大的優勢。
計算機式的思維模式
「計算機式的思維」這個詞由Seymour Papert於20世紀80年代提出。Jeanette Wing對這個概念又做了提煉,即把一個問題通過能被計算機執行的可理解的公式解決的過程。更為形象的理解是」像計算機科學家一樣考慮問題「。
「計算機式的思維」還能提供課堂中很少能學到一些軟技能。例如解決問題,分解問題、邏輯思維、糾錯能力。這些技能在傳統的STEM項目中是非常有用的,而且在其他的社會學領域中也具有廣泛的適用性,如藝術領域。
邏輯思維
邏輯思維和理解邏輯構建息息相關。計算機按照一定的邏輯順序完成任務。只要邏輯正確,計算機的執行結果永遠和我們的預期一致。用相同的數據計算,邏輯永遠能得到相同的結果。
訓練創造力
基礎的編程知識能讓你獲得一個全新的表達自我的方式。如果使用得當,編程能為發展孩子的創造力提供巨大的幫助。就像畫筆和畫板,讓我們能通過繪畫表達我們的想法和感受,編程提供了更為豐富的表現方式:動畫、遊戲、互動圖像等等。通過編程的學習創造力的訓練更為直觀和簡單。一個最好的例子就是Scratch,學生的潛能能被樂高零件充分激發出來。他們使用樂高零件可以搭建和創造模型,這種創造力的激發幾乎全部是自髮式的。他們可以使用Scratch編程,讓自己的模型更加智能和個性化,兩者相輔相成。孩子將編程和其他的興趣結合起來,如音樂、電影或動畫,同樣對他們發揮自己的創造力產生潛在的影響。
As they created their interactive Mother』s Day cards, you could see that they were really becoming fluent with new technologies. What do I mean by fluent? I mean that they were able to start expressing themselves and to start expressing their ideas. When you become fluent with language, it means you can write an entry in your journal or tell a joke to someone or write a letter to a friend. And it』s similar with new technologies. By writing, be creating these interactive Mother』s Day cards, these kids were showing that they were really fluent with new technologies.
– Mitchel Resnick
MIT Media Lab
從錯誤中學習
編程時幾乎不可能避免錯誤。有些錯誤會產生挫敗感 - 每個寫程序的人都有這樣的經歷,花上好幾個小時去找一個遺漏的逗號。但是錯誤本身也是創造過程的一部分。基本上程序的完成要經歷不斷的實驗和錯誤,而且每個步驟還要進行相應的測試。這種方法的好處在於錯誤不是一個失敗,而是一次挑戰。想想有些學生們是如何被傳統的教學方法綁住手腳的,就是因為他們被錯誤一次次的羞辱。
The question to ask about the program is not whether it is right or wrong, but if it is fixable. If this way of looking at intellectual products were generalized to how the larger culture thinks about knowledge and its acquisition, we might all be less intimidated by our fears of 『being wrong』.
現代的編程教學技術把錯誤作為一個輔助的手段。在可視化語言中,演算法錯誤已經被完全排除了(你基本很難從五顏六色的模塊中找到任何演算法),指令只有在他們排列在一起產生作用時才能連接起來。
發展認知能力
學習編程的好處和雙語教育的好處是類似的。學習編程在很多方面都與學習第二門語言類似。在孩提階段,大腦非常適合學習新的語言,特別是在學習過程蘊含在他們每天的日常活動中時。對兒童學習編程的研究表明,與其他能力相比編程技巧的發展在同時期內的速度最快。教學方法也很重要。教學方法必須和年齡段相匹配,還要和其他的娛樂形式或其他的教學過程相結合,如藝術、閱讀等等。
編程如何教學?想要發展邏輯能力和計算機式的思維方式,應該儘早學習如何變成。找對老師是一種挑戰,因為他們必須在孩子理解能力的基礎上完成教學。
根據學生的年齡和能力調整教學工具
小孩子們能夠比較自然的接受這樣的挑戰,只要主題和項目以合適的方式呈現並且與孩子們當前年齡段感興趣的活動結合。市場上提供了各種編程教學的工具,所有這些工具都與孩子們不同的發展階段和熟練度相匹配。有些工具在各自的細分領域是非常優秀的,也經常被專家們所推薦。
遊戲
大部分孩子對電視遊戲和遊戲app都很熟悉,所以當他們有機會創造自己的遊戲時,他們會滿懷熱情的接受這個挑戰。在使用遊戲進行編程教學時有兩種不同的方法。
在遊戲中學習,這種教學過程是與遊戲的內容相結合。通過完成任務,學生們獲得相應的知識並進入到下一個階段。這種模式的工具不僅僅適用於編程的教學,還是適用於學校的其他項目。基於類似的機制有各種各樣的app,如Tynker、Alice、CodeCombat等等。
遊戲設計則著重於通過編程來學習以及通過創造來教學。學生們可以成為他們自己遊戲的遊戲設計者、程序設計者和創造者,這可以為他們配備在真正的技能並提高他們的自信心。不容置疑的是,這種方法在今天是最有效而且最能激發學習熱情的教學方法。
機器人
機器人是另一個編程教學中令人稱奇的領域。可見的機械結構(最好由孩子們親自完成)讓代碼變得真實。當孩子們看到身邊的機器人執行動作時,他們更想學習如何編程。
市場上有很多可供選擇的機器人教育套裝,但是其中最好的就是樂高教育出品的:LEGO Wedo和LEGO Mindstorms。它們的有效性是建立在孩子們對樂高磚塊的熱愛上,除此之外,它們還有其他的優勢。裝上感測器和馬達,在可視化編程軟體中通過孩子們的拖拉操作,就能控制這些套裝。
當我們談論機器人時,有一個與其他教育相比必須提到的優勢。通過對真實世界的操作,機器人能教會物理知識和機械知識。通過搭建機器人,孩子們學會了馬達的相關知識,這些知識現在似乎已經被遺忘了。通過選擇適當的機構、感測器或者主題,孩子們能學會生物、化學、歷史或者藝術的相關知識。所以,機器人教育是真正的跨學科教育。
總結Whether you want to uncover the secrets of the universe, or you just want to pursue a career in the 21st century, basic computer programming is an essential skill to learn.
– Stephen Hawking
Theoretical Physicist, Cosmologist, and Author
技術的發展和世界範圍內的變化將編程從課外課堂轉杯為課內課堂。這種轉變產生原因在於學校畢業後獲得的能力與大學和工作能力要求之間的巨大斷層。同時,研究已經確定編程能巨大的提高軟性技能如邏輯思維、問題解決能力、創造性和團隊合作,這些技能都是當今社會需要的核心技能。依託於遊戲設計和機器人涉及的編程學習,對孩子們而言是充滿樂趣的,掌握這些工具和技能後,未來很多年內他們都將從中收益。
你的讚賞是我堅持原創的動力
讚賞共 0 人讚賞推薦閱讀:
※你可聽說過維基百科的真理之路
※高效的面試方式:結對編程
※3個月用python刷完leetcode600題!-hash table簡單題(一)
※Week8.[Inheritance]Virtual class