少兒程式設計,只知道Scratch你就Out啦!

“孩子程式設計必須從Scratch起步嗎?”

“少兒程式設計學Scratch才是王道!”

等等……

看來,小斑有必要將

少兒程式設計發展的歷程

以及更多優秀的少兒程式設計工具

呈現給大家。

01

Scratch誕生記

讓孩子對電腦程式設計,而不是讓電腦對孩子程式設計。

——西摩爾·帕普特(Seymour Papert)

要說Scratch的誕生,就不得不提及少兒程式設計之父,西摩爾·帕普特(Seymour Papert)。

少兒程式設計,只知道Scratch你就Out啦!

▲西摩爾·帕普特(Seymour Papert,1928。2。29~2016。7。31)

他是來自南非的計算機科學家、數學家及教育家,人工智慧發展先驅

早在 60 年代,帕普特就在思考,怎麼才能讓電腦成為孩子學習的好幫手,讓孩子成為電腦的主宰。為了讓孩子能用電腦做點有意義的事情,帕普特發明了 LOGO 程式語言,這一語言非常簡單,任何一個小孩一天就能學會。

在 LOGO 的世界裡有一隻小海龜,你可以透過輸入指令,讓海龜在畫面上走動,可以向上下左右,或者是按照你指定的角度移動。你還可以讓小海龜以加速或減速移動,也可以讓小海龜重複某一個動作。

少兒程式設計,只知道Scratch你就Out啦!

▲孩子可以在鍵盤上寫下指令,讓小海龜在畫面上走動,海龜會留下痕跡, 相當於在螢幕上畫線。

1984年,樂高公司的CEO拜訪了MIT實驗室,在與帕普特洽談中,帕普特提出來,能否創造一個能替代電腦的樂高零部件——一個具有計算的功能,又能跟樂高一樣小巧,又足夠便宜的零部件。在當時,這是一個巨大的挑戰,而這個設想直到 14年後才得以實現。

1998年,樂高發布了全新的可程式設計機器人產品——Mindstorms 系列,掀起了一場全球的機器人風暴。

少兒程式設計,只知道Scratch你就Out啦!

▲為向帕普特致敬,樂高用他 1980 年出版的書名(Mindstorms)作了註冊商標。

少兒程式設計,只知道Scratch你就Out啦!

▲1980年,帕普特出版了《Mindstorms》(頭腦風暴:兒童、計算機與強大的想法)

樂高 Mindstorms 在 1998 年 9 月發售,當年 12 月 1 日即全部售罄。時至今日,樂高機器人依然是全球最火爆的教育機器人。

同樣受到帕普特啟發的還有一名青年記者。一次偶然的機會,他聽了帕普特的演講,由此改變了他對計算機的認知。第二年,這個年輕記者拿著MIT的獎學金,參加了帕普特的研討班。

這個青年記者就是後來的“Scratch 之父“—— 米切爾·瑞斯尼克(Mitchel Resnick)。

少兒程式設計,只知道Scratch你就Out啦!

▲Scratch之父:米切爾·瑞斯尼克(Mitchel Resnick)

他是MIT實驗室學習研究教授,同時也是樂高教育全球董事,是主導樂高機器人背後的科技巨人

作為帕普特理念的繼承者,瑞斯尼克在 LOGO 的影響下,推出了更先進的面向兒童的程式語言——Scratch。Scratch的首個版本是於 2007 年釋出的,建立在 LOGO 的理念與樂高機器人程式設計工具基礎之上。

少兒程式設計,只知道Scratch你就Out啦!

▲Scratch的程式設計方式是命令式圖塊的邏輯去搭建,更易於兒童理解。

至今,Scratch 的線上平臺已經有超過 3900 萬註冊使用者,被翻譯成 70 餘種語言,在 150 個國家裡被使用。Scratch 語言與各種硬體和軟體相結合,被廣泛使用在學校、家庭以及校外的計算機、程式設計教育等。教師也用Scratch語言服務於其數學、科學、地理、歷史、藝術等教學。Scratch 為兒童創造了一個低門檻的程式設計學習環境,也方便孩子將來學習其他程式語言。

以上,就是Scratch誕生背後的故事。

02

兒童程式語言進化史

Scratch是視覺化程式語言(Visual Programming Languages,下面統一用縮寫:VPL)的一種。

視覺化程式設計被業內認為,是教授給孩子們計算機科學和計算思想的最好方式。由於可以擺脫艱澀的程式設計語法,孩子們在很小的時候就可以靈活地掌握軟體程式設計的精髓。

少兒程式設計,只知道Scratch你就Out啦!

▲Scratch的誕生,是VPL語言發展史中重要的一塊里程碑。

圖片來源:constructingkids。com 作者:Martin Exner

在過去的五十年,程式設計師們不斷地改進帕普特所創造的LOGO程式語言,進而出現了一大批介面稍有不同而核心思想相同的程式語言。

少兒程式設計,只知道Scratch你就Out啦!

▲近幾十年間所出現的各類VPL

圖片來源:constructingkids。com 作者:Martin Exner

由於scratch程式語言的流行,當前的程式設計教學標準是基於模組(blocks)的程式設計方式。在CSTA的K-12計算機科學教學標準中,對於K-5年級,要求學生達到“使用基於模組的可視程式語言來構建和測試解決方案”的程式設計能力。

CSTA是什麼

CSTA全稱Computer Science Teachers Association,即成立於2004年的計算機科學教師協會。

CSTA釋出的K-12階段計算機科學標準(CSTA K-12 CS standards),以其成員廣泛性、計算機科學教育方面專業性,而成為美國各州、各地區學校制定本地化課程大綱的指導標準。

我國對資訊科技課程教育仍處於摸索階段,CSTA對於我國資訊科技課程設定、評估和實施途徑具有重要的借鑑意義。

計算機科學教育的另外一個趨勢是受眾越來越年輕。研究表明,僅僅五歲的孩子就能夠掌握計算機程式設計的概念。不過,要教還不認識字的孩子們學習程式設計,程式中就需要避免使用文字。在Scratch Jr 和 Code。org 的第一階段課程中,都使用圖示替代了文字。

少兒程式設計,只知道Scratch你就Out啦!

▲Scratch Jr的程式介面

視覺化程式設計教育的另一種實現形式,是讓孩子們看見自己的程式碼在現實生活中出現,這將引起他們極大的興趣。這就是機器人程式設計。

之前提到的樂高Mindstorms,就是將基於模組的程式設計帶到了現實世界。學生們可以在計算機上寫程式,然後將其下載到他們搭建的機器人裡。

少兒程式設計,只知道Scratch你就Out啦!

▲樂高Mindstorms EV3 程式圖

此版本可以給模組增加輸入引數,以指定距離、時間、輸出等等。

由LOGO語言衍生出了非常多的程式語言,它們大多都是圍繞著特定場景產生的,比如建立遊戲、製作 3D 故事情節環境、繪製圖片、機器人程式設計,甚至可以控制虛擬魚缸。這些VPL吸引了許多的孩子,但是還有很多人在學習編寫一段程式時,仍然感覺有些困難。

除了這些基於模組的程式語言,還有一種新的語言採用了不同的方式來教孩子們程式設計。

2015年,奇幻工房(Wonder Workshop)設計一個名為 Wonder 的新程式語言,採用的是“基於流”(Flow-Based Programming)的程式設計介面。Wonder可以讓學生們將注意力放在一些預先定義好的功能單元的連線上,來構建一個狀態機(state machine)。

在任何時刻,機器人都是一個單一的給定狀態;它會做一些操作,給一些輸入就會讓它改為做不同的操作。

少兒程式設計,只知道Scratch你就Out啦!

▲以上展示瞭如何使用“基於流”的方式來判斷起床後的任務。

除了擺脫了線性程式設計的正規化,Wonder的這種程式語言還提供了一種不同的計算思想:讓學生們以一種容易掌握的方式來模擬響應現實中的變化。

學生們可以更容易地把問題分解成小部分,每次只需要關注一個問題,以此解決非常複雜問題。這個過程稱之為分解,既是計算機領域的基礎知識,也是 Wonder 的設計目的。

少兒程式設計,只知道Scratch你就Out啦!

▲Wonder程式圖

這個程式是用來控制機器人在感應到不同狀態時,亮不同的燈光

在斑馬課堂裡,我們有“程式碼指揮官”與“機器人指揮官”,這對應了兒童程式設計教育兩塊非常重要的組成部分:軟體程式設計與機器人硬體程式設計。

少兒程式設計,只知道Scratch你就Out啦!

少兒程式設計,只知道Scratch你就Out啦!

回到開頭的問題,在斑馬課堂,程式碼指揮官所指向的,不僅僅是一種程式語言,隨著計算機語言的更新迭代,我們希望讓孩子掌握核心的計算思維以及靈活運用的能力,這與西摩爾·帕普特的思想是一致的。我們希望孩子能主宰計算機和人工智慧,而不是它們所奴役。

03

少兒程式設計的”好朋友”

下面,小斑將推薦一些與Scratch同樣優秀(而且,從使用基數上講,也完全不屬於Scratch)的少兒程式設計工具哦!

Tynker

Tynker語言是在Scratch上發展而來的,完全基於瀏覽器平臺執行,底層程式碼是使用開放的Web標準編寫而成,比如Javascript、HTML5、CSS3,但是並沒有使用Flash。

Tynker看上去和Scratch非常相像,但是Scratch是旨在程式設計,而Tynker的重心則是教授程式設計。Tynker有設計教案功能,同時還有課堂管理工具,以及線上演示學生們的“大作”。

整體來說Tynker裡的遊戲更多更豐富,可玩性很強。但是由於是英文介面,加上游戲過程中系統不會進行細緻的內容講解,還是需要家長陪同的,或適合年齡較大,認知能力比較強的孩子玩。

少兒程式設計,只知道Scratch你就Out啦!

▲官網:www。tynker。com

除了以上優點意外,Tynker有按鍵可以隨時在影象式與程式碼式程式設計介面(Swift)之間切換,可以讓孩子輕鬆掌握程式語言和自然語言之間的對應關係,為孩子們未來學習程式碼式程式語言提供了發展空間。

要知道,Swift可是蘋果公司創造的用於為IOS/Mac/Apple TV/Apple Watch開發APP的開源程式語言。如果孩子們先從Tynker 入門學習程式設計,再切換升級到Swift,以後就能編寫出App Store 上架的APP,這是真正的“學以致用”!

少兒程式設計,只知道Scratch你就Out啦!

Code。org

也許你沒聽說過code。org,但你一定對風靡全球的“程式設計一小時(An Hour of Code)”的活動有所耳聞。Code。org創建於2013年,它以動畫、遊戲等等多樣的方式給學生免費提供計算機科學課程。(小斑劃重點:免費)

目前有35萬名老師註冊了Code。org,為學生提供計算機科學入門課,約1100萬個學生註冊賬號。在美國,有超過100個學區把Code。org的課程整合到自己的學校當中。

2013年末,Code。org在全美舉行了“程式設計一小時”活動,吸引了超過2000萬名學生參加,在兩週內寫了近7億行程式碼。美國總統奧巴馬也曾參與該活動。

少兒程式設計,只知道Scratch你就Out啦!

在Code。org學習程式設計,不需要用到程式語言,而是直接透過積木拼接完成任務,重在邏輯思維訓練。

少兒程式設計,只知道Scratch你就Out啦!

▲官網:https://studio。code。org/courses

Code。org深入貫徹了“興趣即第一驅動力”的理念,用有趣、好玩的方式循序漸進地引導孩子進行學習,從培養思維模式到自主創造創新。不同年齡段、不同學習階段的孩子都能在這裡找到適合自己的進度。

MakeCode

MakeCode由微軟公司出品,為使用者提供圖形化程式設計環境。開啟網頁即可程式設計,旨在打造有吸引力的計算機科學學習體驗,為實際程式設計奠定基礎。MakeCode 為不同水平的學習者提供有趣的專案、即時結果、積木塊編輯器和文字編輯器,讓所有學生了解計算機科學的實際應用。

MakeCode功能強大,能夠結合micro:bit、Circuit Playground Express、Minecraft我的世界、樂高EV3、Wonder的達奇機器人Cue、Arcade遊戲掌機等進行程式設計。

少兒程式設計,只知道Scratch你就Out啦!

▲MakeCode可連線的開源硬體

MakeCode對初次編寫程式碼的學生十分友好,可以從彩色塊開始,將彩色塊拖放到工作區來構建程式。

當學生們具備一定基礎時,便可以改用功能齊全的Java Script 編輯器。且編輯器中會提供程式碼片段、工具提示和錯誤檢測工具。

少兒程式設計,只知道Scratch你就Out啦!

▲MakeCode程式設計介面

雖然Makecode本質上仍然還是以圖形化程式設計為主,但是從實際使用中,無論是上手難度還是計算思維的要求,比Scratch都是略有提升的。家長們可以根據孩子的學習情況和階段進行適當調整。

介紹完這些優秀的少兒程式設計啟蒙工具,小斑需要提醒家長,每款工具都有各家的長處和難度範圍。

Code。org較為基礎,可以作為啟蒙工具!

Tynker難度稍高一些,可以實現程式碼式程式設計學習(Swift)的轉換橋樑!

MakeCode難度頗高,同樣可以實現程式碼程式設計學習(JavaScpript)的過渡,而在連線各種感測器和模組上,MakeCode有無限的擴充套件性。這對孩子的程式設計能力、邏輯思維和動手操作能力有明顯的提高作用。