
Շատերին ծանոթ է Scratch-ը՝ մանկական ծրագրավորման միջավայր, որտեղ սովորելը սովորաբար հանգում է ստեղծագործական նախագծերի ստեղծմանը «պարզից բարդ» սկզբունքով։ Միևնույն ժամանակ, Scratch-ում ծրագրավորում սովորելու «դասական մոտեցումը» (փոփոխականներ → ճյուղեր → հանգույցներ → գործառույթներ → կառուցվածքներ → օբյեկտներ →…) դժվար է։
Այնուամենայնիվ, կառուցվածքային, առարկայական և իրադարձությունների վրա հիմնված ծրագրավորման հասկացությունների (եկեք դրանք անվանենք հասկացություններ) սովորելու հաջորդականությունը փոխելը, դրանք թաքցնելով գունագեղ սփրայթների և ինտերակտիվ անիմացիաների հետևում, չի նշանակում, որ այդ հասկացությունները չպետք է շեշտադրվեն: Հատկապես, եթե նպատակը ոչ այնքան ստեղծագործական կարողությունների զարգացումն է, որքան ծրագրավորում սովորելը։ Ես փորձեցի այս միտքն արտացոլել իմ մեջ .
Առաջին բանը, որին հանդիպում է սկսնակ քերիչը, սփրայթներն են: Թեև Scratch-ում ինքնին օբյեկտ-կողմնորոշված ծրագրավորում չկա, sprites-ը կարելի է համարել օբյեկտներ: Այս փուլում ուսանողը տեսնում է, որ ծրագիրը կարող է ունենալ բազմաթիվ օբյեկտներ, որոնց վարքագիծը վերահսկվում է իրենցից դուրս գտնվող սցենարներով: Sprites-ը ստանում են հրամաններ կամ փոխանցում են տեղեկատվություն իրենց վիճակի մասին ըստ պահանջի, այսինքն՝ ծրագրավորումը հանգում է օբյեկտների կառավարմանը։
Երկրորդ բանը, որ անմիջապես հարվածում է Scratch-ում երիտասարդ ծրագրավորողին, բազմաթելային հասկացությունն է: Յուրաքանչյուր sprite կարող է ունենալ մի քանի սցենարներ, որոնք աշխատում են միաժամանակ: Բազմաթիվ sprites կարող են նաև գործարկել իրենց ծրագրերը միմյանց հետ միաժամանակ: Ավելին, պարզվում է, որ ավելի դժվար է հաջորդական կատարումը կազմակերպելը։


Արդեն առաջին դասին մենք չենք կարող խուսափել ցիկլերի հետ ծանոթանալուց։ Հակառակ դեպքում կատուն իրականում չի փախչի: Այս փուլում ծանոթությունը պետք է թողնել ինտուիտիվ և մակերեսային։ Մենք սահմանափակում ենք այն «կրկնել միշտ» և «կրկնել... անգամ» օղակներով, որոնք ավելի հեշտ է հասկանալ: Պայմանական օղակն ուսումնասիրվում է օղակներին հատուկ նվիրված դասում: Այս դասը ենթադրում է բուլյան արտահայտությունների և փոփոխականների իմացություն:
Քանի որ Scratch-ը իրադարձությունների վրա հիմնված միջավայր է, պայմանական հայտարարությունների բլոկները ավելի հեշտ են սովորել փոփոխականներից առաջ: Պայմանը կարող են լինել որոշակի իրադարձություններ.

Իմ կարծիքով, այս հաջորդականությունը ավելի լավ է, քանի որ յուրաքանչյուր դասի համար մենք ներկայացնում ենք նվազագույն հասկացություններ: Եվ ոչ թե վերացական, այլ անմիջապես տեսնում ենք դրանց գործնական օգուտները։
Եթե դուք նախ ուսումնասիրում եք փոփոխականները, ապա դրանց նպատակն ու օգուտները դժվար է ցույց տալ, քանի որ պայմանական օպերատորը, տվյալների մուտքագրումը և պատահական թվերի ստեղծումը նախկինում չեն ուսումնասիրվել:
Scratch-ում, չհաշված ցուցակները, ծրագրավորողը հանդիպում է երեք տեսակի տվյալների՝ թվեր, տողեր և բուլյան: Այս դեպքում տեսակը կապված է արժեքին, ոչ թե փոփոխականին: Կարիք չկա տողերը վերածել թվերի և հետադարձի։ Տողերը մեջբերված չեն:
Բլոկը, որը վերադարձնում է բուլյան արժեք և ունի բնորոշ անկյունային ձև, կարող է տեղադրվել կլորացված դաշտերում: Հակառակը ճիշտ չէ. որտեղ ենթադրվում է բուլյան արտահայտություն, կանոնավոր փոփոխական չի կարող տեղադրվել:

Scratch-ն իրականացվում է այնպես, որ կատարման ընթացքում որևէ կրիտիկական սխալ տեղի չունենա: Ըստ երևույթին, սա է պատճառը, որ եթե դուք փորձում եք օգտագործել տողը թվաբանական գործողության մեջ, այն փոխարինվում է զրոյով (տես առաջին սքրինշոթը):
Ծրագրավորողը պետք է իմանա, որ ծրագրավորման լեզուների հնարավորություններն ընդլայնվում են գրադարաններով։ Աշխատելով Scratch-ում` ուսանողը կարող է միացնել հավելումներ, որոնք հանգեցնում են միջավայրում նոր հրամանների ի հայտ գալուն:

Scratch-ի գործառույթներն իրականացվում են «Այլ բլոկներ» բաժնում, որտեղ մի կողմից դուք ստեղծում եք ձեր սեփական բլոկը, որը կարող է տեղադրվել այլ սկրիպտների մեջ: Մյուս կողմից, մենք պետք է հավաքենք այս բլոկի ֆունկցիոնալությունը, այսինքն, թե ինչ է անելու:

Scratch ֆունկցիայից վերադարձի արժեք չկա:
Այսպիսով, իրադարձությունների վրա հիմնված միջավայրում ծրագրավորման հասկացությունների ուսուցումն իր հետքն է թողնում: Ըստ էության, մենք նախ ուսումնասիրում ենք ավելի բարդ և վերացական հասկացություններ և միայն գործընթացի մեջ ավելի խորանալով մենք անցնում ենք կառուցվածքային ծրագրավորման տարրերին: Անկախ նրանից, թե սա գումարած կամ մինուս է առաջին ծանոթության համար, վիճելի հարց է:
Source: www.habr.com
