国产日韩欧美一区二区三区综合,日本黄色免费在线,国产精品麻豆欧美日韩ww,色综合狠狠操

極客小將

您現在的位置是:首頁 » scratch編程資訊

資訊內容

少兒編程火熱興起,人人都可以學編程

極客小將2021-04-11-
“數字流暢能力”應當是指設計,創造和重新改進,而不是僅僅瀏覽信息,聊天和與軟件交互。 作者:MitcheL ResnicK, John maLoneY, anDRés monRoYheRnánDez, nataLie RusK,

“數字流暢能力”應當是指設計,創造和重新改進,而不是僅僅瀏覽信息,聊天和與軟件交互。
作者:MitcheL ResnicK, John maLoneY, anDRés monRoYheRnánDez, nataLie RusK, eVeLYn eastmonD,KaRen BRennan, amon miLLneR, eRic RosenBaum,JaY siLVeR, BRian siLVeRman, anD Yasmin Kafai
翻譯:咸蒙

Scratch 人人都可以編程

upload/article/images/2021-04-11/bd43b7dbe5113eee5e0c52274910a4f2.jpg

人人都可以編程

《通信》雜志的主編Moshe Y. Vardi邀請我們團隊發表文章的時候會議了他第一次了解Scratch的場景:“我的一個同事(計算機科學講師)”,他說,“告訴我他是如何努力讓他10歲的女兒學習編程的,唯一能夠吸引他女兒的就是Scartch”。

六年前我們開始開發Scratch的時候,我們就在期待發生上面的事情。我們想讓每個人,無論多大,無論什么學科背景和興趣點的人都可以輕易的編寫出自己的交互故事,游戲,動畫和模擬程序,跟其他人分享自己的觀點。

從2007年上線以來,Scratch網站變成了一個人們可以分享,討論以及在創作其他人作品的知名網絡社區。Scratch已經被稱作是“互動媒體的YouTube(國外Youku)網站了”。全世界的Scratch用戶上傳超過1500個可以自由獲取源代碼以便于分享和在創作的作品到Scratch網站。網站的項目類型及其廣泛,包含了視頻游戲,互動信件,科學模擬,虛擬旅行,生日賀卡,動畫舞蹈比賽(類似于勁舞團之類的東西)以及交互教程,這些作品都是用Scratch開發的。

網站的核心用戶集中在8-16歲(12歲的小孩最多,相當于國內的六年級或者初一的樣子),當然也有相當一部分成人用戶。Scratch在編寫和分享互動項目的過程中,學會了重要的數學和計算機概念,也學會了如何創造性的思考,系統的推理以及協同工作,而這些是21世紀必備的機能。其實,我們的首要目標并不是讓人們為成為一名專業的程序員做準備,而是培養能夠熟練的用編程來表達自己的有創造力的,能夠系統推理的新一代思考者。

在這篇文章里,我們討論了指導我們進行Scratch開發的原則以及我們把編程變得對每個人都伸手可及有吸引力的具體策略。但是在這之前,我們必須先介紹人們是怎樣使用Scratch的,我們描述了在Scratch社區名字叫做BalaBethany的13歲小女孩開發的一系列項目。

BalaBethany非常喜畫動畫角色。所以當她使用Scratch開發項目的時候自然而言的就編制她畫的那些角色的動畫故事。然后她開始在Scratch網站上分享自己的項目,Scratch社區里的人給了她積極正面的反饋,在她的項目下面發表了熱情洋溢的評論(比如“太精彩了!”以及“我的天啊,我炒雞喜歡你的作品!!!!”),同時請教她是如何實現這些特效的(比如“如何讓一個角色看起來是透明的”)。收到鼓勵的BalaBethany開始定期在Scratch社區創作并分享更新Scratch項目,就像是連續播出的電視劇。

她定期往連載的動畫里加入新的角色,然后就有人問你為什么讓整個社區的人都參與到動畫制作的過程中來呢?于是她上傳了一個新的Scratch項目并宣布了一項“海選”,讓社區里的其他人給她動畫里的一個人物角色設計一個“妹妹”的角色(如圖一)。項目里對于新角色提出了一系列的要求,比如“頭發必須是紅色或者藍色,請自選”以及“性格溫順也認死理,或者是兩者的結合”

upload/article/images/2021-04-11/770439ec8f48aa55a0cde3d309d6fcab.jpg

圖1,BalaBethany動畫作品、競賽和教程截圖

這個項目大概有100多條評論。其中一條是一個想參加海選但是她不知道如何繪制動畫角色,因此BalaBethany又設計了一個Scratch項目,是一個分步教程,來演示如何通過13個步驟來繪制動畫角色并上色。

在一年的時間里BalaBethany創作并分享了超過200個Scratch項目,涵蓋了不同的項目類型(故事,競賽海選,教程以及其他)。她的編程和藝術技能取得了明顯的進步,她的得到了社區的廣泛認可,獲得了超過12000條評論。

為什么要編程

人們已經習慣于用“數字原住民”來描述納西而看起來能夠流暢使用數碼技術的年輕人。確實,很多年輕人都能夠輕松的發短信,玩兒網絡游戲,瀏覽網站。但是這些行為真的能夠讓他們擁有流暢的數字能力嗎?雖然他們每天與數字媒體打交道,但是能夠開發自己的游戲、動畫和科學模擬軟件的人真的是鳳毛麟角。打個比方,他們只有用新技術“讀”的能力,卻缺乏用新技術“寫”的能力。

在我們看來,數字流暢力不僅要求具備聊天,瀏覽以及與技術交互的能力,還要求具備用新媒體設計,創造和發明的能力,就想BalaBethany在她的項目中所做的一樣。

要做到用新的媒體創作,你就得懂點兒編程知識。編程能力有許多重要的好處。例如,編程極大的擴展了你能創造的范圍(以及你表達自己的方式)。也擴展了你的學習范圍。特別是編程支持“計算思維”,幫助你學習重要的可以遷移到非編程領域的問題解決能力以及設計策略(比如建模和迭代設計)。因為編程跟你在解決問題過程中體現出來的創造力有關,編程給我們提供了反思我們思維過程的機會,甚至是反思思維本身。

前人研究

上世紀七八十年代發明個人電腦的時候,人們開始熱衷于教所有的小孩子學習編程。成百上千所學校教孩子們上百萬學生學習如何用Logo或者Basic語言編程。Seymour Papert在他1980年出版的書籍《Mindstorms》里把Logo看做是反思教與學途徑的里程碑。盡管有許多孩子和老師被這種可能性所轉變,但是大部分的學校很快轉向電腦的其他用途。那時候計算機在孩子們的生活中日漸普及,但是很少有人學習編程。直到今天,人們都把編程看做是應用范圍狹窄的小部分熱衷的技術活動。

到底是什么讓人們忘記了向孩子們推廣編程的初心?為什么Logo和其他西東到現在都消失匿跡,無影無蹤了呢?這是由于以下因素導致的:

  • 早期的編程語言實在是太難用了,以至于很多小孩跟本掌握不了編程的語法

  • 人們在通常用一些跟年輕人的興趣經驗沒有任何關聯的學習活動(比如生成一堆素數或者畫簡單的線條);并且

  • 人們學習編程的時候如果出錯了,基本上很難找到可以用的指導說明,或者當想深入探索的時候壓根沒有什么可以借鑒的資料。

Papert認為編程應道有一個“低門檻”(容易學)和“高天花板”(隨著不斷學習能夠創建越來越復雜的項目)。而且,編程語言需要具備“寬領域”(支持創建多種不同類型的項目,這樣具有不同興趣和學習方式的人都可以參與進來)。滿足低門檻、高天花板、寬領域這三個條件的向來是很困難的。

最近,人們一直在進行教青少年學習編程的各種嘗試。有人用專業的編程語言比如Flash/Actionscript;也有人用轉為針對青少年設計的新的語言(比如Alice和Squeak Etoys)。這給我們從事Scratch相關工作帶來了很大的啟發。但是我們對已有的這些做法都不滿意。特別是,我們認為在支持計算思維發展的前提下,進一步降低編程的門檻以及讓領域的便捷更加寬闊是非常非常重要的。

為了實現這個目標哦,我們為Scratch確定了三個核心的設計原則:,我們要讓它比其他語言更具備反復擺弄嘗試(Thinkerable)的特點,更有意義并具備更強的社會性,我們來說說這些原則是如何指導我們設計Scratch的。

更具備可玩兒性(tinkerable)

我們在麻省理工大學媒體實驗的終身幼兒園項目組已經與Lego公司合作多年,幫助樂高開發Lego頭腦風暴和其他機器人套件。我們一直癡迷于孩子們玩弄和搭建Lego的方式,并且不斷從中獲取靈感。給孩子們一盒Lego積木,他們立刻嘗試擺弄,把一些積木查起來,形成新的結構并給他們帶來新的點子。在他們玩弄搭建結構和故事的過程中,不斷浮現新的計劃和目標。

我們想讓在Scratch里編程跟玩兒Lego積木的感覺差不多。Scratch語法基于一系列孩子們可以拼插彼此的圖形化“代碼塊”。就想玩兒Lego積木,帶麥塊上的連接頭提供了如何組合代碼塊的建議。孩子們可以從擺弄這些代碼快開始學習,把代碼塊用不同的順序和組合方式拼接到一起觀察有什么效果。不像傳統編程語言那樣有著難以理解的語法和討厭的標點符號(Python少很多)。

只有當符合語法的時候Scratch代碼塊才能夠順利的組合到一起,代碼塊的形狀暗示如何使用代碼塊。控制結構(比如for循環和repeat循環)是C形狀,建議人們把代碼塊放到控制結構的內部。返回結果的代碼塊根據返回值的不同設計成不同的形狀:數值類型是橢圓,布爾值是六邊形。條件判斷(比如if和repeat-until)有一個六邊形的空格,提示需要填入填入一個布爾值。

Scrath名字本身就體現了擺弄的理念,來源于hip-hop打碟師的擺弄碟片的技巧,不斷的用手把音樂唱片來回擺弄,通過創意的方式把不同的音樂混合到一起的擺弄技巧。用Scratch編程看起來跟這個差不多,混合不同的圖形,動畫,照片,音樂和聲音。

Scratch被設計極具交互性,單擊一堆代碼塊就能立刻執行這些代碼。你甚至可以在這堆代碼運行的時候修改代碼,因此很容易通過增量和迭代的辦法嘗試新的想法。你是不是很想開發并行程序?只要創作不同的代碼堆就好了。我們的目的就是讓并行執行像順序執行程序一樣直觀便于理解。

Scratch開發團隊有意讓人們使用真實的桌子一樣使用腳本區域(圖3)。我們可以把多余的腳本放到一邊以備后用。這意味著即使你的代碼亂點、試驗性的也沒關系。大多數編程語言(和計算機科學課程)提供了自頂向下的設計和自下而上的嘗試。而Scratch我們想讓嘗試寫程序的用戶像計劃者一樣舒服的編程。

upload/article/images/2021-04-11/9f90afff900efcd90b57f395b53d0617.jpg

圖3 Scratch 用戶界面

我們在開發Scratch的時候遵循了迭代和增量改進的開發風格。我們選擇支持快速建立原型和迭代設計的Squeak語言作為Scratch的實現語言。在2007年Scratch公開發布之前,我們不斷地進行小范圍的真實環境下的現場測試,根據其他人的反饋和建議不斷的改進Scratch的設計。

更有意義

我們知道人們從事對個體有意義的項目的時候學習效果最好,獲得的樂趣也最多。因此在開發Scratch的時候我們把以下兩個設計規則放在優先地位:
多樣性通過支持創作不同類型的項目(故事,游戲,動畫,模擬),興趣各異的人們都能做一些他們自己感興趣項目;以及
個性化讓人們可以輕易的通過導入照片和音樂、錄音,繪畫等方式來創建個性化的Scratch作品。
這兩個優先條件影響了我們很多設計決策。例如,我們專注于2d而不是3d,因為對人們來說創作二維藝術作品容易的多。盡管很多人可能覺得2d類型的Scratch作品有些過時,但是Scratch作品展現出了3D創作環境缺乏的視覺多樣性和個性化。

一位引導兩個孩子學習Scratch計算機科學家的博客里很好的體現了個性化的價值“我一開始不理解一個面向孩子的編程語言干嘛要這么以媒體為中心,可是當我仔細觀察孩子們使用Scratch的時候就就有點明白了。我發現Scratch最棒的地方在于通過讓孩子們可以輕易的添加個性化的素材和積極參與開發過程實現個性化的開發體驗。他們不僅可以通過抽象的編程來用小貓或者小盒子做一些漫無目的的事情,他們還可以在Scratch中添加自己的照片或者自己的錄音,這可以讓他們獲得很長時間的樂趣并且驅動他們不斷的學習。”

Scratch網站上多種多樣的作品也不斷的給我們帶來驚喜。在我們意料之中的,有許多游戲——從一些經典游戲(比如俄羅斯方塊)的仿制版到完全原創的游戲。但是也有許多其他類型的作品看(圖4)。一些Scratch記錄了日常生活經歷(比如一次去佛羅里達的家庭旅行);其他記錄了自己愿望中的場景(比如跟其他Scratch用戶見面)。也有些作品(比如生日賀卡和感謝信)是為了培養感情。還有的作品體現了對社會問題的關注(比如全球變暖和虐待動物問題);2008年總統大選的時候,出現了大量以奧巴馬和約翰為主題的作品之后引發了大量社區制作“總統的Scratch”系列作品。

upload/article/images/2021-04-11/097317e24615d9c0895b3cad9515b773.jpg

圖4 Scratch作品截圖

一些Scratch項目來源于學校教學活動。一個來自印度的13歲男孩在地理科學課上創作了一個地心旅行的動畫作品,畫外音解釋了旅途中的不同地圈層。新澤西一個14歲男孩在社會研究課上設計了一個在Rapa Nui島上生活的生活模擬,來幫助人其他人了解當地的文化和經濟。

當人們用Scratch來制作對自己來說有意義感興趣的作品的時候,他們就已經做好了學習跟自己項目相關的數學和計算機概念的準備,并且他們渴望學習相關知識來盡快完成自己感興趣的項目。Raul,一個13歲的小孩子在課外活動中心開發了一款互動游戲。他設計了基本的圖形元素和角色基本的動作但是他不知道怎么保存得分。當我們團隊的一個研究人員訪問他們的課外活動中心的時候,Raul向我們的同伴尋求幫助。這個研究人員給Raul演示了如何創建一個變量,Raul馬上就明白了應該怎樣保存分數。他開始擺弄嘗試增加變量值的代碼塊,然后他跑出來拉著研究人員的手邊晃邊說“謝謝你,謝謝你,謝謝你”。研究人員感到很高興,他在想有多少8年級的代數老師會因為教會學生變量的知識而獲得這樣的感謝呢?

更社會化

Scratch編程語言的開發與Scratch網站的開發是緊密相連的。Scratch想要取得成功,就必須與一個熱門可以互相支持、協作、評價彼此作品并在其他人作品上構建自己作品的社區綁在一塊。

分享的概念已經深深的融入到了Scratch的界面中,比如屏幕頂端極為顯眼的“分享”按鈕。通過點擊分享按鈕,你的項目就上傳到了Scratch網站(圖6),然后就會出現在頁面頂端“最新項目”哪里。一旦一個項目被分享,任何人可以可以在瀏覽器(用基于Java的播放器)里運行這個作品,評論這個作品,通過單擊“我喜歡”按鈕投票,或者下載并修改作品的腳本。(所有在網站上分享的作品都是在CC協議下發布的。)

upload/article/images/2021-04-11/0072b03b0e70ed892ced1dfb6bed3694.jpg

圖6 Scratch網站

Scratch發布的27個月以來,人們在Scratch網站上分享了50萬以上的作品。對很多人來說,讓自己的作品有在大量愛好者面前出現并且能夠得到反饋修改意見,是一種及其強大的動機。網站上大量的作品也帶來了數不清的靈感。Marvin Minsky曾經說過Logo語言的語法是非常棒的,可惜他的能力太差,能做的事情太少了。年輕的作家經常從閱讀經典作品里獲得靈感,但是Logo語言并不能給年輕的程序員帶來靈感。Scratch網站已經成了一個Scratch網站寫的作品集了。

網站也為協作提供了肥沃的土壤。社區成員持續不斷的借用其他人的創意,圖像和程序并加以修改,并在別人想法的基礎上創造自己的作品。超過15%的作品來源于對社區里其他成員作品的融合再創作。例如,有許多版本的俄羅斯方塊游戲,因為社區成員不斷的添加新的功能并試圖改善游戲體驗。

一開始,許多Scratch用戶對于別人改編自己的作品感到很苦惱,抱怨其他人偷了他們 想法和創意。這在Scratch網站的論壇里引發了關于分享的價值以及開源社區理念的討論。我們的愿景是營造一種為自己的作品被別人改編感到驕傲而非苦惱的社區文化。我們持續不斷的給網站添加新的特性來鼓勵這種以別人改編自己作品為榮的理念。現在當改編一個作品的時候,網站自動添加到原作品的鏈接,原作者會獲得榮譽。而且每個作品都包含了到其“衍生”作品的鏈接,Scratch網站首頁會突出改變頻率最高的作品。

有的作品關注網站本身,提供了網站上其他作品的分析和回顧。有一個叫做Scratch新聞網的簡稱為SNN的例子,讓默認角色小貓像CNN主持人一樣播報Scratch社區的新聞。開始時候我們以為這只是個“模擬新聞廣播”,后來我們意識到這是一個提供Scratch這個真實在線社區里人們感興趣新聞的真正的新聞廣播。受SNN項目啟發,Scratch社區出現了大量用Scratch編寫通訊、雜志和電視節目作品,報道Scratch社區的資訊。

有的Scratch用戶成立了在線公司,共同完成靠個人力量無法完成的作品。一個英國15歲的小女孩,昵稱是BeeBop,在創作了一個包含了大量動畫精靈的作品,而且鼓勵其他人在作品里使用動畫精靈,也鼓勵人們定制動畫特效,在這個過程中她創辦了自己的公司。一個同樣來自英國的昵稱是MusicalMoon的10歲小女孩,非常喜歡BeeBop的動畫作品,問BeeBop他能否改變作品的背景。這次協作促成了Mesh Inc.公司的出現,自稱是用Scratch生產“最高品質游戲”的微型公司。幾天后,昵稱是Hobbit的來自新澤西的14歲男孩,發現了Mesh Inc.公司的作品,并且發出了求職申請,他說“我是一個很好的程序員,我能夠參與調試和編程。”之后,一個來自愛爾蘭的昵稱是Marty的11歲男孩,也成了Mesh Inc.公司的員工,因為他擁有良好的背景滾動技巧。

這些協作為不同類型的學習提供了機會。一個創辦了名為Blue ELk的Scratch公司的來自加利福尼亞的13歲女孩是這樣描述她的經驗的:
“對我來說通過用Scratch以及創辦公司來一起開發游戲的樂趣在于在這個過程中我交了很多朋友學到了很多新知識。我學會了關于不同類型編程的很多知識,我借鑒其他有我感興趣特效的游戲,下載這些游戲,并且仔細閱讀并修改腳本和精靈。我真的超級喜歡編程。剛開始接觸Scratch的時候,我意識到自己可能不是一個很好的藝術家。但是從那之后,通過學習其他人的藝術作品,請教他們,并且通過用Photoshop和Scratch自帶的繪圖編輯器來聯系繪畫,我的藝術水平提升了很多...在運作Blue Elk公司的過程中我還學會了如何團隊的積極性以及如何讓團隊更好的一起工作...相比于博客和Facebook等社交網站我更喜歡Scratch,因為我們在創作很好玩的游戲和作品供人們玩耍、欣賞和下載。我不喜歡單純的網聊,我喜歡談論一些富有創造性的前沿的東西。”

我了促進和鼓勵國際分享和協作,我們把Scratch的多語言翻譯工作作為一項優先任務來做。我們開發出了把Scratch編程快翻譯成任意字符集的功能。全世界的網絡志愿者已經把Scratch翻譯成了40多種語言。世界各地的孩子們現在都可以分享彼此的作品,人人都可以用自己的母語來使用代碼塊。

未來方向

現在,世界各地越來越多的K-12學校甚至一些大學(包括哈佛大學和加利福尼亞大學,伯克利大學)都把Scratch當做編程學習的入門課程。因此一個自然而然的問題擺在我們面前,掌握Scratch之后學習什么語言。在Scratch社區人們一直在討論Scratch之后學習什么語言。我們收到了許多為Scratch添加高級功能的請求(比如繼承和遞歸列表),希望Scratch自身能夠成為入門之后的進階語言。

我們打算把我們的首要精力放在降低語言學習門檻和增加Scratch的廣度。對于某些Scratch用戶特別是那些希望將來從事編程和計算機科學行業的人來說,遷移到其他編程語言是十分重要的。而對于那些只是把Scratch當做自我表達的媒介,而非職業生涯的路徑的人來說,Scratch已經能夠滿足他們的需求。他們可以不斷的用Scratch探索自我表達的新形式,基于他們對于計算機思維核心理念的理解創造多種多樣的作品。一點點的編程知識足夠他們不斷探索了。

我們開發新版本的時候,我們的目標是讓Scratch更加具有可玩性,更有意義和社交性。結合Scratch傳感器擴展板,人們可以創建能夠對物理世界做出感知和回應的Scratch項目。同時,我們正在開發Scratch的移動設備版本以及允許人們訪問在線數據在線編程的web版本。

也許對于Scratch來說最大的挑戰并非技術性而是文化性和教育性。雖然Scratch在早期的探索中取得了巨大的成功,但我們需要提供更高的教育支持來讓Scratch更廣泛的傳播。我們最近上線了一個叫做Scratch-Ed的在線社區,在這個社區,教育者可以分享他們跟Scratch相關的想法,經驗和課程計劃。進一步講,需要從整體上改變人們對于編程和計算機的理解和看法。我們需要加強人們對于包含設計和創造而非僅僅瀏覽和交互的“數字流暢能力”這一概念的理解。只有這樣像Scratch這樣的語言才能發揮全部潛能。

聲明

很多人對Scratch開發做出了貢獻,對Scratch背后理念付出了努力的讓你更多。我們非常感謝LLK終身幼稚園組所有曾經從事Scratch相關工作的朋友和前成員,尤其是Tammy Stern, Dave Feinberg, Han Xu,Margarita Dekoli, Leo Burd, Oren Zuckerman, Nick Bushak, and Paula Bonta. 我們對Kylie Peppler, GraceChui, 心懷感激,同樣感謝Yasmin Kafai引導和參與Scratch開發現場研究的其他成員。Seymour Papert和Alan Kay的工作深刻對Scratch的出現有著深刻的影響和啟發。感謝國家自然基金會,微軟,Intel,諾基亞和麻省理工大學媒體實驗室研究協會的資金支持。文中提到的兒童名稱均為化名。


聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除

預約試聽課

已有385人預約都是免費的,你也試試吧...

主站蜘蛛池模板: 冷水江市| 郸城县| 邻水| 金塔县| 阳山县| 海盐县| 邛崃市| 武宣县| 凤阳县| 朔州市| 洛隆县| 恭城| 登封市| 巧家县| 库车县| 漠河县| 东乡县| 桐梓县| 宁明县| 邵东县| 万年县| 邯郸市| 澄城县| 岳阳市| 阳曲县| 罗甸县| 庆元县| 江源县| 保靖县| 疏附县| 阿城市| 同江市| 武夷山市| 甘洛县| 乌拉特后旗| 都匀市| 玛纳斯县| 平顺县| 哈密市| 蓬安县| 繁昌县|