
Шматлікім знакам Scratch - дзіцячае асяроддзе праграмавання, навучанне ў якой звычайна зводзіцца да стварэння творчых праектаў па прынцыпе "ад простага да складанага". Пры гэтым «класічны падыход» да вывучэння праграмавання (зменныя → галінавання → цыклы → функцыі → структуры → аб'екты → …) у Scratch цяжкі.
Аднак змена паслядоўнасці вывучэння паняццяў (назавем іх канцэпцыямі) структурнага, аб'ектна- і падзейна-арыентаванага праграмавання, іх утойванне за яркімі спрайтамі і інтэрактыўнай анімацыяй, не азначае, што на канцэпцыях не варта рабіць акцэнт. Асабліва, калі мэтай ставіцца не столькі развіццё творчых здольнасцей, колькі навучанне праграмаванню. Гэтую ідэю я пастаралася адлюстраваць у сваім .
Першым, з чым сутыкаецца пачатковец скрэтчар, з'яўляюцца спрайт. Хоць у Scratch як такога аб'ектна-арыентаванага праграмавання няма, спрайт можна лічыць аб'ектамі. На гэтым этапе які навучаецца бачыць, што ў праграме можа быць мноства аб'ектаў, паводзінамі якіх кіруюць вонкавыя для іх скрыпты. Спрайт атрымліваюць каманды або па патрабаванні перадаюць інфармацыю аб сваім стане, гэта значыць праграмаванне зводзіцца да кіравання аб'ектамі.
Другім, што ў Scratch адразу звальваецца на галаву юнага праграміста, з'яўляецца паняцце аб шматструменнасці. Кожны спрайт можа мець па некалькі скрыптоў, якія выконваюцца адначасова. Некалькі спрайтаў таксама могуць выконваць свае праграмы адначасова сябар з сябрам. Прычым аказваецца складаней арганізаваць паслядоўнае выкананне.


Ужо на першым занятку мы не можам пазбегнуць знаёмствы з цыкламі. Інакш кот асабліва не разбяжыцца. На гэтым этапе знаёмства даводзіцца пакідаць інтуітыўным і павярхоўным. Мы абмяжоўваем яго цыкламі "паўтараць заўсёды" і "паўтарыць … раз", якія больш простыя для разумення. Цыкл з умовай вывучаецца ва ўроку, спецыяльна прысвечаным цыклам. Гэты ўрок мяркуе веданне лагічных выразаў і зменных.
Паколькі Scratch падзейна-арыентаванае асяроддзе, блокі ўмоўнага аператара зручней вывучыць да зменных. Умовай могуць выступаць тыя ці іншыя падзеі.

На мой погляд, такая паслядоўнасць лепшая, бо за кожны ўрок мы ўводзім мінімум паняццяў.
Калі ж спачатку вывучаць зменныя, тое іх прызначэнне і карысць складана прадэманстраваць, паколькі да гэтага не вывучаны ўмоўны аператар, увод дадзеных і генерацыя выпадковых лікаў.
У Scratch, не лічачы спісаў, праграміст сутыкаецца з трыма тыпамі дадзеных: лікамі, радкамі і булевым тыпам. Пры гэтым тып прывязаны да значэння, а не зменнай. Ператвараць радкі ў лікі і зваротна не патрабуецца. Радкі ў двукоссі не складаюцца.
Блок, які вяртае лагічнае значэнне і мелых характэрную для яго вуглаватую форму, можна ўстаўляць у круглявыя палі. Адваротнае не дакладна: там дзе мяркуецца лагічны выраз, нельга ўставіць звычайную зменную.

Scratch рэалізаваны так, каб падчас выкананні не ўзнікала крытычных памылак. Мабыць таму, калі паспрабаваць выкарыстаць радок у арыфметычнай аперацыі, яна замяняецца банкрутам (гл. першы скрін).
Праграміст павінен ведаць, што магчымасці моў праграмавання пашыраюцца бібліятэкамі. Працуючы ў Scratch, вучань можа далучаць дапаўненні, якія прыводзяць да з'яўлення ў асяроддзі новых каманд.

Функцыі ў Scratch рэалізаваны ў раздзеле "Іншыя блокі", дзе з аднаго боку вы ствараеце ўласны блок, які можна ўстаўляць у іншыя скрыпты. З іншага боку - павінны сабраць функцыянальнасць гэтага блока, гэта значыць тое, што ён будзе рабіць.

Вяртання значэнні са скрэтч-функцыі няма.
Такім чынам, вывучэнне канцэпцый праграмавання ў падзейна-арыентаваным асяроддзі накладвае свой адбітак. Па сутнасці мы спачатку вывучаем больш складаныя і абстрактныя паняцці і, толькі паглыбляючыся ў працэс, пераходзім да элементаў структурнага праграмавання. Плюс гэта ці мінус для першага знаёмства - пытанне спрэчнае.
Крыніца: habr.com
