程序員引以為傲的計算思維,應該走進孩子的世界

nv7606 7年前發布 | 7K 次閱讀 程序員

龔長江是微軟(亞洲)互聯網工程院的一名軟件工程師。12月9日,和往常一樣,他需要和代碼“親密接觸”。不過這一次:他的坐標,不在辦公室,而在農科院附小;他要做的,不是自己編寫代碼,而是要陪孩子“玩”代碼游戲;一起并肩協作的,不是平時的團隊成員,而是七位同司志愿者。

推開教室門,他們看到的是23個九歲左右的孩子。接下來的一個小時,他們將和這些孩子沉浸在一款可視化編程游戲《我的世界》(Minecraft)。

這次由龔先生發起的“陪玩”,從屬于全球一同發起的全球計算機科學教育周“編程一小時”活動。今年,微軟在全國168個城市、614所大中小學校,共舉辦3204場“編程一小時”活動,參與青少年達91310人。

《我的世界》編程游戲簡易版在去年的“編程一小時”也作了亮相。自2014年起至剛剛結束的2016全球計算機科學教育周,微軟已經把“編程一小時”活動帶到全國4200多所大中小學校,并且成功地迷住了35萬學生。這款第一人稱游戲通關很簡單,只需網頁端按照一定方式的拖拽可視化指令塊:它旨在在界面中介紹學習編程,通過互動的方式讓孩子們最終了解到編程的邏輯和概念。與其他游戲不同的是,這款游戲沒有任何固定路線,模塊擺放方式并不唯一;這樣的自由靈活可以讓學生們發揮無限的思路,在最終看到拖拽生成的代碼之后可以有對程序、對機器運行的機制感知。

由公益組織Code.org發起

這個活動是由公益組織Code.org發起,微軟是積極響應者與重要合作伙伴。Code.org的初衷是鼓勵每個人尤其是小學生學習計算機。創始人Hadi Partovi認為編程應該是必備技能,但是九成的美國學校都沒有相關課程;于是萌生了組織Code.org這樣的想法。

網站最初上線的是《Flappy Brid》可視化模塊編程游戲的一小時指導視頻,后來陸陸續續添加了《憤怒的小鳥》、《植物大戰僵尸》的改編版,甚至基于迪士尼《冰雪奇緣》創建新的游戲。上文中提到的《我的世界》是微軟成為Code.org合作伙伴之后上線的游戲。目前網站上已有的游戲如下:

上述的游戲顏色明快、操作簡單,都是為小朋友們量身定制的。

為什么要讓小朋友們在游戲中學習編程呢?

同樣作為志愿者的微軟亞洲研究院學術合作部資深經理劉康平博士這樣說道:“我的理解是,小朋友都愛玩游戲,可是玩游戲是作為一個信息產品的消費者,我們怎么把他們從消費者變成創造者,這是一個很大的改變。怎么去創造,哪怕是控制游戲代碼,也是最了不起的。

這就像最開始是1.0,是由公司控制網絡;但有了社交網絡和微博就進入到了2.0,用戶來生產這些內容。如果有更多的人能自己來寫代碼,能創造游戲,就會非常有樂趣,如果游戲還能成功的話,還可以有商業的價值。

我們鼓勵很多種解法,當然也有一個標準,即最精煉的解法,這會給小孩子一種壓力。我想,教學的時候都是鼓勵他隨便做,只要能完成任務就可以。可是當他有了第一步以后,我們可以引導他,是不是可以更優化、語句更精煉、執行效率更高,慢慢把優化的理念在第二步就建立起來。”

其實,“編程一小時”活動在全球已經開展到第四屆,而且參與其中的也不止微軟一家公司:今年在中國蘋果、TalkingData等公司也分別做了同樣的事情。這個活動在全世界進行,共有約250家合作公司或組織,除了上面提到企業,還有亞馬遜、非死book、Google、油Tube、埃森哲等。活動課程已經支持超過40種語言,不需要任何編程經驗,4歲以上即可參與。下圖為“編程一小時”(Hour of Code)活動次數地理統計圖。

其中密度較高的地區為美國和歐洲。(黃色圓點代表常規的“編程一小時”活動,藍色定位標為特別企劃活動)

那么讓我們聚焦中國,再放大一點;可以看到相對來說,該活動在亞洲印度、韓國、菲律賓、日本等國更為普及。中國本屆舉辦了217次“編程一小時”活動。

“編程一小時”目前主要依靠互聯網在線版游戲。另一名志愿者,微軟(中國)操作系統工程院軟件工程師王學峰告訴記者,這個項目對于志愿者的要求不多,首先前期理解活動內容很簡單,其次活動當天時間也很短;這樣輕量級時間投入卻能給那么多學生帶來一些思考,讓他們很有成就感。同時,除了員工自己親力親為參與實地“陪玩”之外,他們還會對各地的老師進行培訓,這樣老師們成為二級傳播站可以更方便地觸達更多的學生。對于如何在中國偏遠地區實施“編程一小時“”活動,微軟表示已經具備了離線版應用,而電腦、手機和電力等硬件設備還需要社會的共同努力。

為什么如此聲勢浩大?

為什么要如此用力地推廣計算思維呢?

微軟認為:從一定程度上來講,在游戲中教授編程只是一種手段,更多是激發孩子們對計算機的興趣,還有邏輯思維方式,能夠在一種非常抽象的層面把問題設定解決好。當代父母并全不是計算機專業,可是有些人在小時候學過一些Basic語言,里面就是首先設定一個項目目標,建立邏輯關系,要考慮各種條件,達成目標,有的還需要設定循環條件等等。讓小朋友很早地通過接觸計算機編程能夠建立這樣一種思考和解決問題的思路都是有好處的,這是一個層面;另外一個層面,隨著計算的普及,無論是云計算還是大數據還是周圍的人工智能,今后計算機語言也可能普及到像今天說話和讀書這樣普及的模式。

如果對這個活動的組織抽離一點,其實業界所做的是要推廣計算思維(ComputationalThinking)。

什么是計算思維呢?

在處理問題和尋求方案的時候,以類似于電腦的計算工作方式,高效地執行。計算思維的過程可以大致抽象為三個步驟:

一、抽象化:對問題進行歸納總結

二、自動化:將方案拆分表述成步驟

三、解析化:執行方案并進行評估

再簡單些,計算思維對應哪些思考動作呢?分解、模式表達、抽象能力和算法思考。將一個問題分解,對于不確定因素使用數據化表達,創造或選定算法,然后得到一個普遍的方案結果。普適的方案一般是可以適用原始問題的變種。

計算思維一詞最早于1980年,由人工智能先驅Seymour Papert的提出。他曾MIT的計算機科學與人工智能實驗室聯合主席,70年代他從LISP語言的基礎里創立Logo編程語言。該概念于1996年再度被提及,旨在使用算法方式對復雜問題流程化規模化處理,以實現效率的大幅度提升。

而受到人們廣泛重視和傳播,是2006年卡內基·梅隆大學計算機科學系主任周以真(Jeannette Wing)博士在《Communications of the ACM》雜志上給出,并定義的計算思維(Computational Thinking)。周教授認為:計算思維是運用計算機科學的基礎概念進行問題求解、系統設計、以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動。在她看來,“計算思維是一種普適思維方法和基本技能,所有人都應該積極學習并使用,而非僅限于計算機科學家。”

周教授現在是微軟全球資深副總裁,全面負責微軟研究院旗下全球核心研究院(MSR Labs)及學術合作部的工作。那微軟對計算思維的推廣是怎樣的呢?

在中國,除了面向中小學生的“編程一小時”、中學女生的DigiGirlz等互動活動,還有高校學生參與的“編程之美”和“創新杯(Imagine Cup)”競賽等。最近幾年,微軟公益事業部的大目標是計算機科學教育,其實微軟中國與高校教育機構的合作也是由來已久,其中“長城計劃”是2002年與中國教育部簽署。微軟與國內多所高校開展了系統的、有針對性的合作項目,四條主線是人才培養、科研合作、課程建設及學術交流。

不過,提倡計算思維,并不只是為了培養IT人才。這更多的是一種思維的訓練,讓大家熟悉計算機這個工具。

回到文章的開頭內容,參加編程游戲真的會對孩子留下什么印記嗎?

劉康平笑著講述了他見證的真實故事。

他的兒子七八歲的時候開始在手機觸屏上嘗試編程游戲,對自己可以控制圖形對象很感興趣,開始邊玩游戲邊琢磨。兒子寫的第一個小程序中英查字典是在他的指導下完成的。等到兒子上小學二三年級的時候,他自己做了個通用的數學求解程序計算和差問題、倍差問題等。

現在兒子已經十二歲,初中一年級,剛剛參加完全國青少年信息學奧林匹克聯賽復賽。劉先生說,復賽的成績還沒有查,比起過程他認為這個結果并不重要;況且兒子現在的興趣在寫小說上,已經閱讀很多網絡小說的他現在已經產出幾萬的文字了,兒子的小伙伴們還在等著他的更新。“我懷疑他不一定會選擇計算機專業,只要是他喜歡的就好”劉先生這樣說道。

社會生活中需要的是綜合能力,而人才可以是跨界的。

你是不是考慮讓自己的寶寶試試Code.org網上的編程游戲呢?

又或者,程序員的你已經開始“誘導”他/她編程了?

 

 

來自:http://www.infoq.com/cn/news/2016/12/minecraft-hourofcode-MS-2016

 

 本文由用戶 nv7606 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!