少兒編程 > 文章資訊 > 少兒編程 > 科普!少兒編程語言的進化史
科普!少兒編程語言的進化史
童程童美 2016-08-16
奧巴馬“計算機從娃娃抓起”的倡議和人們對科學(Science)、技術(Technology)、工程(Engineering)、數學 (Mathematics)教育日漸增長的關注都說明了一個問題,那就是,為了教導孩子們學習計算機知識,我們需要建立一套標準,還要找到好的教學方案。
摘要奧巴馬“計算機從娃娃抓起”的倡議和人們對科學(Science)、技術(Technology)、工程(Engineering)、數學 (Mathematics)教育日漸增長的關注都說明了一個問題,那就是,為了教導孩子們學習計算機知識,我們需要建立一套標準,還要找到好的教學方案。 在工業界,人們普遍認為,要讓孩子學會些什么,最好的方法就是使用可視化的編程語言,這樣的話,即使是年紀很小的孩子也不必糾結于語法問題,而可以自由創造,同時掌控著自己編寫的軟件。
Logo 語言的更新換代
在過去 50 年里,設計師們以 Seymour Papert 創造的 Logo 語言為基礎,造出了一大堆編程工具,它們雖然在界面上稍有不同,但其目的都是為了引導孩子們對編程進行思考。同時,由于 MIT 設計的 Scratch 的流行,基于模塊的編程方法便成為了教學的標準。 在 CSTA 為中小學生制定的計算機課程教學標準中,也明確地將“在基于模塊的可視化編程語言上進行構建和測試的能力”用于評估小學 5 年級學生的編程水平。
趨向幼齡化 引入機器人技術
看著自己寫的代碼變成現實是件很神奇的事。在本世紀初,樂高和MIT合作了一個項目,致力于將基于模塊的編程帶入到現實世界中。學生可以在電腦上寫程序,然后把代碼下載到他們搭建的機器人上。早期的 RIS (機器人發明系統)和 Scratch 十分相似。
2013 年推出的樂高機器人雖然變得更加復雜,但工作原理仍然不變。現在學生們能夠給組件增加輸入參數,用來指定距離、時間、輸出和其它的一些特性。
Martin Exner 在 Logo和更晚一些的 Scratch 的啟發之下,發明了這種簡單的信息圖,它被用來描述可視化的編程工具。
事實上,Logo 語言的大部分衍生產品都是為了特定的場景而被設計出來的:用于游戲、創建 3D 場景、畫圖、對機器人進行編程甚至是用來操縱一個虛擬的魚缸。
但即使這些東西能夠吸引許多不同的孩子,很多小孩在之后學著編寫語句時仍會覺得很難。
超越 Logo
在現實世界里,計算機程序總是需要考慮一大堆的輸入,以及一個邏輯條件是否成立。舉一個例子,我們要決定今天需不需要早起。如果今天是星期六或者星 期天,那么我們就會出去外面玩。如果今天是星期一,我們就得去收拾運動服。如果是星期四,就得倒垃圾。另外除了周末之后的日子,都要上學。下面這幅圖展示 了如何使用 Scratch 對這個問題進行解答。
除了基于模塊的編程方法之外,還有一種新的語言采用了不同的方法來教孩子編程。在2015年,Wonder Workshop設計了一種流式的編程語言,叫做 Wonder。Wonder 讓學生將注意力放在多個功能單元之間的連接,通過這種方法來創造一個狀態機。這個狀態機在任意時刻都只能處于一個狀態,如果它正在處理某個任務,給定一個輸入就可以讓它改變狀態去做一些其它的事情。
下面這幅圖說明了如何使用流式的方法解決之前的問題。
除了使學生們擺脫了線性的編程范式,Wonder 還讓他們能以一種簡單的方法來對現實世界的問題建立模型。
學生們可以更容易地把一個問題分解成小的模塊,然后用這些模塊來解決一個復雜的問題。這樣他們在解決一個復雜的問題的時候,就能把注意力放在在一個個子問題上。這個分解問題的過程,既是計算機科學的基礎知識,也是Wonder語言的設計初衷。
在我們日常生活里也有很多機器人和狀態機的例子,并且它們正在變得越來越普遍。自動售貨機會在你投入正確的金額時吐出商品。自動駕駛汽車能夠根據周 圍的障礙物決定如何前進。狀態機還能對很多其他的問題進行建模,就像句法分析、人工智能、通信協議、游戲中的角色發展,甚至包括神經系統。
隨著機器人技術的應用和其影響力的擴大,教師們自己現在也需要學習模塊化編程。但在這些方法被越來越多人采用的同時,我們應該思考的是:這是否就是正確的前進方向?又或者是不是還有其它更好的方法可以幫助孩子們學習計算機呢?