
Многи људи су упознати са Сцратцх-ом, дечијим програмским окружењем у коме се учење обично своди на креирање креативних пројеката по принципу „од једноставног ка сложеном“. У исто време, „класични приступ“ учењу програмирања (варијабле → гране → петље → функције → структуре → објекти → …) у Сцратцх-у је тежак.
Међутим, промена редоследа учења концепата (назовимо их концептима) структурираног, објектно и догађајно оријентисаног програмирања, скривајући их иза шарених спријтова и интерактивних анимација, не значи да концепте не треба истицати. Поготово ако циљ није толико развој креативних способности колико учење програмирања. Покушао сам да одразим ову идеју у свом .
Прва ствар са којом се почетник сусреће су духови. Иако у Сцратцх-у не постоји објектно оријентисано програмирање само по себи, духови се могу сматрати објектима. У овој фази, ученик види да програм може имати много објеката чије понашање контролишу скрипте које су ван њих. Спрајтови примају команде или преносе информације о свом стању на захтев, односно програмирање се своди на управљање објектима.
Друга ствар која одмах погађа младог програмера у Сцратцх-у је концепт вишенитног рада. Сваки сприте може имати неколико скрипти које се покрећу истовремено. Више духова такође може да покреће своје програме истовремено један са другим. Штавише, испоставља се да је теже организовати секвенцијално извршење.


Већ на првој лекцији не можемо да избегнемо упознавање са циклусима. У супротном, мачка заиста неће побећи. У овој фази, познанство мора бити остављено интуитивно и површно. Ограничавамо га на петље „увек понављај“ и „понављај... пута“, које је лакше разумети. Условна петља се проучава у лекцији посебно посвећеној петљи. Ова лекција претпоставља познавање Булових израза и променљивих.
Пошто је Сцратцх окружење вођено догађајима, блокове условних изјава је лакше научити пре променљивих. Услов могу бити одређени догађаји.

По мом мишљењу, овај редослед је бољи, јер за сваку лекцију уводимо минимум појмова. И то не апстрактне, али одмах видимо њихову практичну корист.
Ако прво проучавате варијабле, онда је тешко показати њихову сврху и користи, пошто условни оператор, унос података и генерисање случајних бројева раније нису проучавани.
У Сцратцх-у, не рачунајући листе, програмер наилази на три типа података: бројеве, стрингове и Булове. У овом случају, тип је везан за вредност, а не за променљиву. Нема потребе да конвертујете низове у бројеве и назад. Низови се не наводе.
Блок који враћа логичку вредност и има карактеристичан угаони облик може се уметнути у заобљена поља. Обратно није тачно: тамо где се претпоставља Булов израз, не може се уметнути регуларна променљива.

Сцратцх је имплементиран тако да не дође до критичних грешака током извршавања. Очигледно је то разлог зашто, ако покушате да користите стринг у аритметичкој операцији, он се замењује нулом (погледајте први снимак екрана).
Програмер треба да зна да су могућности програмских језика проширене библиотекама. Радом у Сцратцх-у ученик може да повеже додатке који доводе до појаве нових команди у окружењу.

Функције у Сцратцх-у су имплементиране у одељку „Други блокови“, где са једне стране креирате сопствени блок који се може убацити у друге скрипте. С друге стране, морамо прикупити функционалност овог блока, односно шта ће он радити.

Не постоји повратна вредност из Сцратцх функције.
Дакле, учење концепта програмирања у окружењу вођеном догађајима оставља траг. У суштини, прво проучавамо сложеније и апстрактније концепте и тек када дубље уђемо у процес прелазимо на елементе структурираног програмирања. Да ли је ово плус или минус за прво познанство је спорно.
Извор: ввв.хабр.цом
