Трябва ли наистина децата да знаят как да програмират? Има ли ползи за децата от изучаването програмирането? Как е най-добре да въведем децата в света на програмирането?
Програмирането отново започва да навлиза в ранното обучение в България. От 2018та година, децата за пръв път се срещат със средата за програмиране с платформата Scratch още в трети клас в предмета „Компютърно моделиране“ (1)
Идеята за компютърно обучение на децата изобщо не е нова – нито за световното, а още по-малко за българското образование. В миналото, в България е имало сериозен тласък за компютърно и проектно-ориентирано обучение, със младежкото движение ТНТМ, клубовете по авио и ракетомоделизъм, компютърни клубове в училища и други. В момента, особено в по-големите градове, могат да се намерят много клубове, школи и пространства, позволяващи на децата да изучават и работят с компютри и техника.
В днешни времена, децата често притежават смартфони – устройства с постоянна връзка с интернет. Все по-голям проблем на родителите е времето, което децата прекарват пред екраните на тези телефони. Въпреки, че това наистина е проблем, по-важният проблем е какво правят с тях. Много от модерните приложения са направени така, че да увличат децата и хората, без да правят нищо продуктивно. Затова вместо да се чудите, колко време прекарват децата пред екраните, трябва да намерите начин да промените това, което правят.
В тази бързо променяща се среда е трудно да се предвидят знанията, от които ще се нуждаят децата, когато пораснат. Досега, промените в поколенията, технологиите, професионалната реализация, обикновено отнемаха време от едно цяло поколение, или няколко десетки години, за да навлязат в нашия свят. В днешно време, основни промени настъпват в обществото много бързо и по всичко личи, това няма да се промени скоро.
Знаем, че в днешно време, запомнянето на конкретна информация започва да отстъпва пред уменията за бърза ориентация, преценка, търсене и намиране на информация.
От няколко години, и българската образователна система се опитва да се адаптира към новите тенденции, като поставя по-голям акцент върху развитието на творчеството (креативността), логическото мислене, решаването на проблеми и работата в екип – умения, които са универсални и търсени в 21ви век.
Един от инструментите, най-често ползван за развитие на тези ключови умения е програмирането.
Какво представлява програмирането?
Програмирането е навсякъде около нас. Със софтуер, се управлява почти всяко едно устройство, дори и хладилници, перални, или пък асансьори.
Програмите са съвкупност от машинен код, написан от програмисти, за да бъде управляван даден процес, или устройство. Кодът изпълняван от машините (компютрите) е във вид на машинен код – поредицата от нули и единици. Този вид инструкции не се използва за програмиране – те са четими за компютри, но дешифрирането от човек е по-скоро невъзможно. За да могат да се създават сложни програми ефективно, се използват езици за програмиране с думи и символи, разбираеми от хората. Тези езици изпълняват функцията да превеждат разбираемия за нас език на разбираемия за машините език.
Има хиляди езици за програмиране, а всяка година се появяват нови и нови. Разбира се, не е нужно човек да знае всички, нито пък има перфектен, или универсален програмен език, приложим навсякъде.
В повечето програмни езици обаче, има общи принципи и положения, опознаването на които е цел на обучението по програмиране в детска възраст.
Днешния свят изисква новите поколения да бъдат участници и създатели на технологии. В противен случай, те ще бъдат пасивни потребители на продуктите на технологията, а този път не води до добро развитие. За щастие, подготовката на децата и въвеждането им в света на програмирането е сфера, в която има много разработени учебни помагала, инструменти и продукти.
Могат ли децата да програмират?
Да, дори и децата могат да програмират.
Изучаването начините за преподаване на програмиране на деца започва още през 60-те години на миналия век, като за основоположник на учебните теории и инструменти използвани днес се счита Сиймор Паперт. Дълги години, той работи с Жан Пиаже, вдъхновен от неговата теория за когнитивно развитие. Върху нея, Паперт създава и своята теория за конструктивизъм, а за целите на изучаването на програмирането създава и първия програмен език за деца – Лого.
Сиймор Паперт работи и с компанията Лего, за развитие на образованието в сферата на технологиите и програмирането. Името на комплекта LEGO Mindstorms, всъщност е заето от името на една от най-известните книги на Паперт – Mindstorms. Влиянието на Паперт не спира дотам, неговите идеи са намерили база и в най-популярния език за програмиране за деца днес – Scratch, създаден в същия департамент на MIT, където Паперт е работил. С помощта на трудовете на Паперт, усилията на компанията LEGO, университетите MIT и Tufts, както и на много други учители, компании и учени, програмирането днес е много по-постижимо умение за учениците, а и за преподавателите, които да запалят интереса на децата в сферата на технологиите.
Какви програмни езици се използват в образованието на децата?
В образованието обикновено се използват езици специално проектирани за учене. За по-малките деца командите обикновено са оформени в блокове които съвпадат като парчета от пъзел. Този подход елиминира синтактичните грешки, които са много демотивиращи за всеки „млад“ програмист. При някои от езиците са елиминирани и голяма част от логическите грешки, като кодовите блокове пасват само когато програмата е вярна и инструкцията може да бъде изпълнена в тази последователност.
С помощта на специално разработените образователни езици, дори деца които не могат да четат пишат могат да програмират. Пример, за подобен език ползван за най-малките деца е ScratchJr, а също и платформите на LEGO – LEGO Education WeDo 2.0, LEGO Coding Express, OSMO Coding и др.
Езикът Scratch е изключителен инструмент в помощ на развитието на творческите умения – като програмен език той притежава доста ограничения, но именно те позволяват на децата да работят с езика, а не да изучават неговите конструкции и синтаксис, което им дава истинска свобода да създават.
Структурата и методът на работа в Scratch, чрез плъзгане и добавяне на блокове е вдъхновена от конструкторите LEGO и това не е случайно, тъй като много от създателите на езика работят в тясно сътрудничество с компанията LEGO, за развитие на образованието.
В Scratch всяка команда е оформена като тухличка която трябва да може да бъде свързана с другите вече поставени. Приликата на програмния език с блокчетата от конструкторите, с които децата вече свикнали, им позволява интуитивно да създават програми, които да ги вдъхновяват да творят и конструират още повече.
„Моят приятел – един от основателите на „МИТ Медиа Лаб“ – професор Сиймор Паперт има огромно влияние върху разбирането ни на начините, по които децата учат. Неговите проучвания показват как децата разбират света и служат като наше вдъхновение за това как да подкрепим детската креативност, въображение, игра и учене.
Децата учат най-ефективно, когато те, унесени в игра, създават значими за тях проекти. Scratch показва как компютърното програмиране не е просто творчески процес, но и много важно занимание изграждащо личността и даващо възможност на децата да разказват истории, чрез създаването на важни за тях обекти и игри.
Радваме се, че можем да помогнем на още повече деца по света да учат чрез игра със Scratch“
Какви са ползите от изучаването на програмиране в детска възраст?
Повишаване на дигиталната грамотност
Целта на ранното обучение по програмиране не е да се създаде нация от компютърни учени, а да се възпита в децата по-осъзнат и интелигентен начин за употреба на модерните технологии.
Както днес считаме за недопустимо едно дете да завърши училище без да знае да чете и да пише, така трябва да се отнасяме и към дигиталната грамотност на учениците – тя става все по-важна и липсата ѝ ще оказва негативно влияние върху развитието на всеки един човек и общество.
Програмирането подобрява развитието на децата
От изучаване на програмирането, има и много ползи, които нямат директно отношение към технологичния свят и устройства.
Изследвания показват, че програмирането влияе положително върху познавателните и социалните умения на учениците. Децата, изучавали компютърни науки, включващи концепции като: „Алгоритмично мислене“ и „Логически конструкции“ показват сериозен напредък в различни академични и социални области. Програмирането води и до подобрения на когнитивните и езиковите умения както и на визуалната памет.
Забележителни подобрения се наблюдават и в метакогнитивните умения. Това са умения като самоконтрол, независимост, желание за самоусъвършенстване.
Computational Thinking
На английски, терминът “computational thinking” e използван за пръв път от Сиймор Паперт през 80-те години на миналия век. С този термин се описва процесът, при който даден проблем се разбива на по-малки и по-лесно решими задачи, които могат да се опишат по стандартен и разбираем начин, който да може да бъде изпълнен от компютър или друго логическо устройство.
Не успяхме да открием актуален превод на този термин на български, а близките термини, „логическо мислене“ и „алгоритмично мислене“ описват само част от процесите, които „computational thinking“ обхваща, затова в текста използваме английската версия.
Computational Thinking e набор от умения, които рядко се изучават в класната стая
- разделянето на проблеми и задачи чрез декомпозиция (разбиването на големи проблеми на по-малки такива с по-лесно решение)
- логическите разсъждения
- методът „проба и грешка“
- експериментиране
- анализ на резултатите.
Развитието на тези умения можем да намерим в редките случаи, когато децата работят по проектно-базирана методика и се налага в екип (или сами) да разработят дългосрочен проект, за който се налага да проучат дадена материя, да подготвят материали и да подготвят презентация.
Тези умения са полезни не само в традиционните за STEM области, но и в редица други области като социални науки или изкуство.
Развитие на творческото мислене (креативност)
Програмирането дава на децата един нов и неограничен физически начин да изразяват себе си. С модерните образователни езици, дори най-малките деца могат да да развиват творчеството си създавайки анимации, игри, интерактивни изображения и картички или презентации в програмните платформи.
Творчеството се развива най-добре, когато на децата се даде свобода да работят, но и когато те познават и разбират инструментите, с които могат да създават.
Свързването на програмирането с други области като музика, филми, анимация, оказва положително влияние върху тяхната креативност по този начин програмирането става по-достъпно за по-широка група ученици които може и да не са проявявали интерес към самото програмиране досега.
Учене от грешки
При програмирането е невъзможно напълно да се избегнат грешки. Някои от тях са разочароващи – всеки програмист със сигурност има история, в която е прекарал няколко часа търсейки бъг, който се е оказал проста синтактична грешка.
В образователния процес обаче, ни интересуват грешките които са част от творческия процес по създаване на дадена програма или алгоритъм. Този процес на създаване, чрез откриването на грешки и поправянето им е основен в програмирането. Често в софтуерното проектиране въпросът не е дали програмата е правилна или грешна, а дали може да бъде поправена.
В работата ни с деца във SparkLab често виждаме деца уплашени от това, че няма да се справят, или ще сгрешат. Това често води до блокиране на работния и учебния процес при тях и бързото им отказване.
Смятаме, че това отчасти се дължи и на начина, по-който грешките се наказват в училище – там всяка грешка е равна на по-слаба оценка. В живота обаче грешките са ключови образователни моменти, след които ние можем да направим важни изводи. В днешните компании и общества, все повече започват да се ценят качествата на уверените хора, които не се боят да вземат решения. Със постоянния страх от грешки в детска възраст обаче, тези качества не само, че не се развиват, ами целенасочено биват потискани.