作者 / Sarah Otts? ? ? ? 翻譯&編輯 / 小棧機器人
因為 Scratch 與計算機科學密切相關妓笙,所以教育工作者和家長會問很多有關 Scratch 的問題: Scratch 是編程嗎寞宫?為什么學生應該學習 Scratch 而不是 Java?青少年在使用 Scratch 時是否能學到計算機科學的概念鲫忍?
對我來說钥屈,Scratch 和計算機科學之間的聯(lián)系是非常明確的:我青少年時期使用 Scratch 的經(jīng)驗給了我用計算機進行創(chuàng)作的信心焕蹄,激發(fā)了我去探索不同的編程語言,并且促使了我決定在大學里主修計算機科學鸦泳,幫助我成功完成了最難的課程。現(xiàn)在击纬,離我在八年級第一次使用 Scratch 時已有將近9年钾麸,我拿到了計算機科學學位,學會了很多不同的編程語言肯腕,但我依然熱愛 Scratch实撒!
Scratch 是很棒的編程入門工具
Scratch 是我學習的第一門編程語言涉瘾。八年級時,有一天我無聊了负敏,便在網(wǎng)上搜索小孩可以學的編程語言秘蛇。我發(fā)現(xiàn)了 Scratch彤叉,并馬上玩起來村怪。在幾分鐘內,我就制作了一個簡單的交互式動畫:當你按下鍵盤上的不同按鍵柬焕,一個貼紙動畫人物就會旋轉并且改變顏色斑举。因為 Scratch 是基于塊的病涨,所以我沒有遇到語法和錯誤信息的問題——這讓我對編程異常興奮。而且赎懦,我當時已開始使用像“并行”和“事件處理”這樣的概念励两,這些概念,多年后我在學習 Python 和 Java 時也碰到了傅瞻。
許多教育工作者也同樣發(fā)現(xiàn)盲憎,Scratch 是很棒的編程入門工具饼疙。Claire Pritchard,來自芝加哥的 K-8 技術集成專家儿惫,也在教學中與她的學生一起使用 Scratch 和 ScratchJr(一個為5至7歲小孩設計的應用程序)伸但。她說更胖,“ 我的學生通過 Scratch 學會了如何舉一反三,如何解決問題饵逐,以及如何編程彪标。因為 Scratch捞烟,我們開始學習算法和日常生活中的循環(huán),特定的方向和其它計算機概念默辨〔韵ⅲ”她解釋說,通過 Scratch 和 ScratchJr表谊,她的學生現(xiàn)在“可以理解基本的邏輯概念铃肯,編寫干凈的代碼,做一個用文本編輯器的程序員可以做的所有事步藕,唯一的區(qū)別是挑格,他們使用的是一個圖形界面漂彤。”
而 Scratch 的好處并非僅限于對小學生立润!在諾赶卑澹克州立大學蛉幸,Mona Rizvi 教授和 Thorna Humphries 教授在他們的計算機科學入門課程中就使用 Scratch 作為入門編程語言。當他們在學期末請學生反饋時提陶,學生們也認為從 Scratch 中獲益匪淺匹层。比如隙笆,一位學生說“ Scratch 教給我們編程的思維:怎么樣一步一步地做事情”。另一位學生則說又固,“從中我們學會了使用循環(huán)仲器,這對學習 C++ (他們在下一門計算機課程中使用的語言)也很有幫助”。
Linda Fernsel 是從2011年開始使用 Scratch 的⊙龉冢現(xiàn)在,她在大學里學習計算機科學和媒體蝶糯,并擔任 Scratch 團隊的負責人洋只。我問她在學習過 Scratch 后再學習其它編程語言是什么感覺。她說:“學習 Java 就像碰到一個老朋友。我已經(jīng)了解了那種思維方式识虚,我需要學習的主要是一些語法。我并不害怕學習 Java担锤,因為學習 Scratch 給了我很多很多自信蔚晨。”
通過在 Scratch 中制作項目肛循,學生們可以了解很多計算機科學的概念铭腕,比如迭代和布爾邏輯,還可以練習很多專業(yè)程序員們每天使用的技巧多糠,比如調試錯誤和編寫文檔累舷。而且,他們可以在更寬容的環(huán)境中學習這些夹孔,鼓勵他們修改被盈、探索和創(chuàng)造令人興奮的圖形游戲和動畫。
Scratch是一種真正的編程語言
Scratch 不只是編程入門學習的好工具搭伤,它本身就是一種真正的編程語言只怎。編程語言,是一種允許人們向計算機傳達指令的語言怜俐。Scratch 正是這樣的 —— 通過將命令塊有序地拖到一起尝盼,學生們可以給計算機下達指令,比如“讓那個角色在屏幕上移動”或者“將兩個數(shù)字相加”佑菩。
Scratch 具有許多編程語言的重要特征盾沫,比如循環(huán)(重復塊)和條件(if-then塊)。有了這些功能殿漠,學生們可以在 Scratch 中創(chuàng)建算法或指令來完成特定的任務赴精。計算機科學家會說 Scratch 是一種“圖靈完備”的編程語言贮喧,意思是巍膘,Scratch 可以執(zhí)行組成算法的所有基本功能 (functions)酪耳。
有些人擔心皆撩,把 Scratch 中的塊拼在一起(而不是輸入文本)就不是一門真正的編程語言许饿。但是支示,輸入文本并非編程的必要條件宽档。在80年代中期前图谷,大多程序員是通過打孔卡上的洞來編寫和存儲他們的程序∑鼻現(xiàn)在逐哈,許多編程語言是用文本編寫和存儲的,但并非全都如此问顷。例如昂秃,使用編程語言 Labview 的工程師就是通過連接圖形節(jié)點來創(chuàng)建程序的禀梳。
Scratch 是世界上數(shù)以百計的編程語言之一。我曾與 Scratch 團隊的開發(fā)人員 Chris Garrity 交談肠骆,她目前負責 Scratch 網(wǎng)站前端算途,ScratchJr 和本地化。在她的職業(yè)生涯中蚀腿,她用過許多編程語言嘴瓤。最近,她主要使用 Java莉钙,Ruby廓脆,Python,當然胆胰,還有 Scratch狞贱。
她用多種編程語言工作,因為正如她所說:“不同的語言在某些事情上會比其它語言更方便些”蜀涨。比如瞎嬉,在網(wǎng)絡瀏覽器中制作網(wǎng)頁時用 Java 就很好,而其它一些語言更適用于那些需要在運行前反復檢查的程序厚柳,比如汽車的控制系統(tǒng)氧枣。Scratch 對制作游戲和動畫是非常好用的,因為它可以讓你將圖像像單塊一樣在屏幕上移動别垮,而不需要你分別編寫每個像素的顏色便监。
有時候,當人們說 Scratch 不是“真正的”編程語言時碳想,他們的意思是烧董,Scratch 不是一種用來制作專業(yè)應用程序和軟件的專業(yè)編程語言。這是事實胧奔,但年輕人依然用 Scratch 來創(chuàng)造有趣的作品逊移。學生們使用 Scratch 制作非常真實的項目——他們用 Scratch 連接他們在真實世界中的興趣和身份,探討現(xiàn)實世界中的問題龙填,并解決現(xiàn)實世界的需求胳泉。而且在 Scratch 在線社區(qū)里,他們還可以與數(shù)百萬活躍用戶分享他們的作品岩遗。
Scratch 最終是創(chuàng)造和分享東西的工具
在使用 Scratch 一段時間后扇商,許多學生發(fā)現(xiàn),即使他們已經(jīng)會使用其它編程語言宿礁,他們卻還想繼續(xù)使用 Scratch案铺。
Connor Hudson,另一位 Scratch 團隊的負責人從9歲時就開始使用 Scratch【秸現(xiàn)在红且,他是一名主修計算機科學的大二學生坝茎,同時他還輔修了技術藝術與媒體專業(yè)涤姊。Connor 使用好幾種不同的編程語言暇番,并協(xié)助開發(fā)了 Scratch 的拓展應用。現(xiàn)在思喊,他仍然用 Scratch 來編寫代碼壁酬,因為正如他所說,“即使在學習了其它編程語言之后恨课,我發(fā)現(xiàn) Scratch 依然是將想法轉換成現(xiàn)實的最佳工具舆乔。”
我也依然喜歡用 Scratch 做項目剂公。對于 Connor希俩,Linda 和我以及其他許多長期使用 Scratch 的人來說,Scratch 現(xiàn)在依然是我們工具帶中纲辽,一個用來制作炫酷項目的工具颜武。
麻省理工學院媒體實驗室的 Scratch 團隊負責人 Mitch Resnick 在最近的一篇博客文章中解釋說:“我們的最終目標,是幫助所有孩子發(fā)展他們的想法拖吼,發(fā)展他們自己的聲音和身份鳞上。”
所以吊档,學習 Scratch 不只是學習編程篙议!年輕人使用 Scratch 制作關于時尚和美食的項目。他們使用 Scratch 來練習他們的演技怠硼、創(chuàng)作音樂鬼贱,并制作自己的動畫。在這個過程中香璃,他們慢慢了解計算機科學的概念这难,但同時,他們也學會了協(xié)同合作增显、繪畫和設計雁佳、建設性溝通,并且運用他們的幽默感——所有這些同云,他們都用自己的代碼表達出來糖权。
~正在火熱招生中~
小 棧 編 程 教 育
// Scratch 零 基 礎 趣 味 編 程 課 //
微信公眾號 / Ministack
微博/ 小棧學編程
報名咨詢熱線 /? ?010 - 57137023
Scratch | Python | Java
原文鏈接 /??https://medium.com/scratchfoundation-blog/how-i-think-about-scratch-and-computer-science-b376111a5df