Концепции за програмиране в Scratch

Концепции за програмиране в Scratch

Много хора познават Scratch – детска среда за програмиране, чиято цел обикновено е творенето на проекти, следвайки принципа „от просто към сложно“. Въпреки това, „класическият подход“ за изучаване на програмирането (променливи → разклонения → цикли → функции → структури → обекти → ...) в Scratch е затруднителен.

Обаче, променянето на последователността на изучаване на понятията (нека ги наречем концепции) на структурното, обектно- и събитийно-ориентирано програмиране, докато ги прикриваме зад ярки спрайтове и интерактивна анимация, не означава, че нямаме нужда да акцентираме върху концепциите. Особено ако целта е не толкова развиването на творческите способности, колкото обучението по програмиране. Тази идея се опитах да отразя в моя курса.

Първото, с което се сблъсква начинаещият скретчер, са спрайтовете. Въпреки че в Scratch няма обектно-ориентирано програмиране, спрайтовете могат да се считат за обекти. На този етап обучаващият се вижда, че в програмата могат да има много обекти, чиято поведение се управлява от външни за тях скриптове. Спрайтовете получават команди или при поискване предават информация за своето състояние, т.е. програмирането се свежда до управление на обектите.

Второто, което веднага се стовари на главата на младия програмист в Scratch, е понятието за многопоточност. Всеки спрайт може да има повече от един скрипт, изпълняващ се едновременно. Няколко спрайта също могат да изпълняват своите програми едновременно помежду си. В действителност се оказва по-трудно да се организира последователното изпълнение.

Концепции за програмиране в Scratch

Концепции за програмиране в Scratch

Още на първото занятие не можем да избегнем запознаването с цикли. В противен случай котката не може да се разгърне. На този етап запознаването е интуитивно и повърхностно. Ограничаваме го до циклите „повтаряй винаги“ и „повтори ... пъти“, които са по-лесни за разбиране. Цикълът с условие се изучава в урок, специално посветен на циклите. Този урок предполага познаването на логически изрази и променливи.

Тъй като Scratch е събитийно-ориентирана среда, блоковете на условния оператор е по-удобно да се изучават преди променливите. Условието може да бъдат различни събития.

Концепции за програмиране в Scratch

Според мен, такава последователност е по-добра, тъй като за всеки урок въвеждаме минимум понятия. Освен това, те не са абстрактни, а веднага виждаме практическата им полза.

Ако обаче първо изучавате променливите, трудно е да демонстрирате тяхното назначение и полза, тъй като преди това не е изучен условния оператор, въвеждането на данни и генерирането на случайни числа.

В Scratch, с изключение на списъците, програмистът се сблъсква с три типа данни: числа, низове и булев тип. При това типът е свързан с стойността, а не с променливата. Няма нужда от преобразуване на низове в числа и обратно. Низовете не се поставят в кавички.

Блокът, който връща булева стойност и има характерната за него ъглова форма, може да бъде поставен в кръгли полета. Обратното не е вярно: там, където се предполага булево изразяване, не може да бъде поставена обикновена променлива.

Концепции за програмиране в Scratch

Scratch е реализиран така, че по време на изпълнение да не възникват критични грешки. Явно затова, ако се опитате да използвате низ в аритметична операция, той се заменя с нула (вижте първия скриншот).

Програмистът трябва да знае, че възможностите на езиците за програмиране се разширяват чрез библиотеки. Работейки в Scratch, ученикът може да свързва добавки, които водят до появата на нови команди в средата.

Концепции за програмиране в Scratch

Функциите в Scratch са реализирани в раздела „Други блокове“, където от една страна създавате собствен блок, който може да се вмъква в други скриптове. От друга страна – трябва да съберете функционалността на този блок, т.е. какво ще прави.

Концепции за програмиране в Scratch

Не съществува връщане на стойности от скретч функция.

Следователно, изучаването на концепции за програмиране в събитийно-ориентирана среда оставя своя печат. Всъщност, първо изучаваме по-сложни и абстрактни понятия и, едва по-късно, се задълбочаваме в елементите на структурното програмиране. Дали това е плюс или минус за първоначалната среща – това е спорен въпрос.

Източник: habr.com

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster