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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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