Маршрутны ліст будучага праграміста

Працуючы ў аб’яднаннях па інтарэсах па праграмаванні, педагог імкнецца знайсці аптымальны тэмп развіцця вучняў. Калі марудзіць з пераходам на больш складаныя ўзроўні, школьніку стане нецікава. Калі пераходзіць занадта хутка, ён згубіць матывацыю праз цяжкасці.

Пры гэтым трэба падабраць такія платформы і мовы праграмавання, каб яны адпавядалі інтарэсам групы і давалі магчымасць ствараць цікавыя праекты. Абапіраючыся на свой вопыт, мы сабралі найбольш папулярныя мовы праграмавання і склалі ў ланцужок, згодна з узростам, калі матываваным вучням варта іх прапанаваць. Атрымаўся своеасаблівы маршрутны ліст. Спадзяёмся, ён дапаможа вам выбраць напрамкі развіцця для вашых выхаванцаў.

Н.І.Вазюля.

Ці сутыкаліся вы на ўроках інфарматыкі з негатыўнай рэакцыяй школьнікаў на мову праграмавання Pascal? Адны лічаць яе састарэлай і нецікавай, другія — надзвычай складанай і незразумелай, трэція не разумеюць, што карыснага можна стварыць з дапамогай кода ў Pascal.

З-за такой рэакцыі набіраюць папулярнасць больш простыя візуальны асяроддзі праграмавання (накшталт папулярнага сёння Scratch). Тут існуе іншая небяспека: калі дзіця занадта доўга карыстаецца такім асяроддзем, яно прывыкае і неахвотна пераходзіць да больш складаных інструментаў. Маўляў, навошта, калі я ўжо праграмую?

Назіраючы за гэтым, мы прааналізавалі сваю практыку: акрамя школьных урокаў, мы праводзім дадатковыя заняткі па праграмаванні ва ўстановах адукацыі, дзе працуем, і ў прыватных цэнтрах. Для аб’яднанняў па інтарэсах асабліва важна, каб дзеці былі зацікаўлены — інакш яны проста не прый­дуць на наступныя заняткі. З іншага боку, нам, педагогам, важна даваць сапраўдныя веды і развіваць здольнасці.

Каб знаходзіць мяжу паміж забаўляльнасцю і карысцю для адукацыі, мы склалі своеасаблівую карту моў праграмавання. Зыходзячы са свайго вопыту работы з вучнямі 2—10 класа, мы сабралі візуальныя і скрыптавыя мовы праграмавання і размеркавалі іх згодна з узростам вучняў, для якіх яны падыходзяць.

Мы раім карыстацца гэтай распрацоўкай на любых дадатковых занятках. Можна выбраць некалькі найбольш зручных і цікавых для вас моў рознага ўзроўню складанасці і паступова прапаноўваць вучням пераходзіць ад адной да наступнай. Вельмі важна правільна арганізаваць пераход да складанай мовы: прапанаваць простыя задачы, даваць падказкі, а калі гэта “дарослая” праграма — уключыць рэжым Turtle (ад англ. — чарапаха; рэжым для навічкоў, які спрашчае карыстанне праграмай і паказвае дадатковыя падказкі і тлумачэнні). Важна адсочваць, як школьнікі рэагуюць на новую мову: калі задача падаецца занадта складанай, дзеці і падлеткі губляюць цікавасць. Тады можна вярнуцца да мінулага інструмента ці паспрабаваць іншы.

У выніку атрымаецца своесаблівы ланцужок ад дашкольніка да праграміста ўзроўню Junior: ад праграмавання без камп’ютара дзіця пераходзіць спачатку да візуальных моў праграмавання, а пасля — да скрыптавых.

Праграмаванне без камп’ютара. Ідэя такіх заняткаў у тым, каб навучыць дзяцей асновам алгарытмаў, базавым правілам і тэрмінам праграмавання. На такіх занятках праз гульню, звычайна нават не асэнсоўваючы працэс навучання, дашкольнікі фарміруюць свае першыя ўяўленні пра код. Напрыклад, патлумачыць дзіцяці тэрмін “інтэграцыя” вельмі складана, але прайграц­ь саму інтэграцыю проста. У выніку дзіця, можа, і не сфармулюе дакладнае азначэнне гэтага слова, але будзе разумець яго, калі, напрыклад, сустрэнецца з гэтай з’явай у Scratch.

Здаецца, што праграмаванне без камп’ютара — гэта проста: патрэбны толькі папера і аловак. Але самае складанае для настаўніка ў такіх занятках — распрацаваць пад свае мэты гульні, эстафеты, заданні. Мы раім пашукаць матэрыялы на гэтую тэму ў інтэрнэце: такія заняткі набіраюць папулярнасць, таму калегі выкладваюць шмат сваіх распрацовак. Асабліва прадукцыйным будзе пошук на англамоўных рэсурсах.

Kodu Game Lab — з 1 класа. Пра сэрвіс ведаюць мала, але гэта вельмі зручны сродак для навучання дзяцей, якія яшчэ не ўмеюць чытаць. У Kodu Game Lab школьнікі па малюнках складаюць простыя гульні, быццам бы будуючы блок-схему з адказаў на пэўныя пытанні (хто, што робіць, як).

Сэрвіс падабаецца і старэйшым дзецям, бо дазваляе працаваць з аб’ектамі ў 3D. Нават падлеткаў захапляе магчымасць буда­ваць шматмерныя лакацыі і сачыць за персанажам з розных пунктаў гледжання, а таксама гуляць у гульні, створаныя ў Kodu Game Lab, на кансолі Xbox.

Scratch — з 2 класа. Дазваляе ствараць першыя праграмы ўсім, хто толькі навучыўся чытаць. Важна не затрымлівацца на гэтым асяроддзі праграмавання і пераходзіць на скрыптавыя мовы ў 4—5 класе. Інакш у дзяцей з’яўляецца пачуццё, што яны ўмеюць праграмаваць, хаця работу з алгарытмамі ў Scratch нельга назваць праграмаваннем. Нават стваральнік Scratch Мітчэл Рэзнік падчас візіту ў Мінск падкрэсліваў, што гэты сэрвіс — толькі для малодшых школьнікаў.

Выключэнне: Scratch можна прапана­ваць у сярэдняй школе, каб хутка патлумачыць непадрыхтаваным вучням асновы алгарытмаў і перайсці да больш сур’ёзных праграм.

Lua — з 3 класа. Гэта ўжо сінтаксічная мова. Яна дазваляе паступова перайсці ад візуальнага да скрыптавага асяроддзя, бо інтэгравана са Scratch.

Яшчэ адна перавага Lua — з яго дапамогай можна ствараць віртуальны свет у Minecraft, папулярнай у сённяшніх школьнікаў гульні. Па нашых назіраннях, вучні гатовы актыўна працаваць над любой, нават самай сумнай ці складанай тэмай, калі ўпакаваць яе ў гэтую гульню. У Minecraft можна праграмаваць гульнявыя ўзроўні, прахо­дзячы якія вучань адказвае на пытанні, што ў выглядзе шыльдачак пакідае на карце педагог.

Яшчэ адно нечаканае адкрыццё — Lua матывуе вывучаць англійскую мову і ўважліва ставіцца да сінтаксісу кода: у ім заўважны ўсе памылкі і недахопы, і праграма не выконваецца, пакуль яны не выпраўлены.

Нарэшце, Lua — гэта першая ў нашым спісе мова праграмавання, якая можа спатрэбіцца ў рабоце праграміста. Мы сочым за вакансіямі і бачым, што час ад часу ІТ-кампаніі шукаюць спецыялістаў па гэтай мове. 

А.В.Букіна.

Stencyl — з 4—5 класа. Канструктар гульняў. З аднаго боку, ён падобны да Scratch, бо алгарытм таксама складаецца з асобных блокаў. А з іншага — намнога больш складаны, блізкі да “дарослай” платформы Unity. На Stencyl зручна вывучаць фізіку аб’ектаў: працаваць з каардынатамі, вагой, гравітацыяй. Падчас заняткаў зручна рабіць акцэнт на графіцы, дэталёвай прамалёўцы элементаў.

Значны плюс для настаўніка — на сайце канструктара размешчана шмат гатовых распрацовак урока. Актыўная супольнасць настаўнікаў на форуме Stencyl пастаянна дзеліцца новымі заданнямі, якія можна выкарыстоўваць на занятках.

Small Basic — з 5 класа (пасля Scratch). Скрыптавая мова праграмавання, створаная як альтэрнатыва Scratch. У інтэрфейсе Small Basic зручна вывучаць сінтаксіс моў праграмавання, бо ён падтрымлівае рускую мову.

Small Basic часта выкарыстоўваюць для праграмавання робатаў з набораў Lego EV3. У інтэрнэце шмат рускамоўных распрацовак для заняткаў па робататэхніцы з выкарыстаннем Small Basic. 

Python — з 5 класа. Яшчэ адна мова праграмавання, на якую можна перайсці пасля Scratch. Яна даецца лёгка дзякуючы простаму сінтаксісу. Каб праводзіць заняткі ў даступнай форме, мы раім пачаць з малюнкаў у рэжыме Turtle ці зноў звязаць праграмаванне з гульнёй Minecraft (падключыць яго да Python складаней, але вынік таго варты!).

У якасці матэрыялу для заняткаў можна выкарыстоўваць відэа з YouTube-каналаў, дзе педагогі тлумачаць, як адны і тыя ж каманды складаюцца ў Scratch і пішуцца на Python.

App Inventor — з 6 класа. Асяроддзе візуальнай распрацоўкі, якое выкарыстоўваюць для стварэння дадаткаў для мабільных тэлефонаў. Гэта прататып Android Studio (прафесійнага асяроддзя праграмавання, у якім ствараюць дадаткі для тэлефонаў з АС Android), таму школьнікі могуць распрацоўваць дызайн дадаткаў, прапісваць кампаненты, а пасля праграмаваць яго паводзіны.

Семантыка App Inventor значна больш складаная, але дзеці ахвотна яго вывучаюць, бо ў выніку атрымліваюцца сапраўдныя дадаткі, якія можна паказаць сябрам і бацькам на сваім тэлефоне. А, па нашых назіраннях, у сярэдняй школе вучні гэтак жа моцна захапляюцца ўсім, што звязана з тэлефонамі, як малодшыя школьнікі гульнёй Minecraft.

App Inventor можа стаць першай мовай праграмавання. Напрыклад, мы прапанавалі гэтую мову непадрыхтаванаму вучню, і ўжо праз гадзіну ён змог напісаць і запусціць прымітыўны графічны рэдактар.

HTML/CSS — з 6 класа (для падрыхтаваных вучняў). Вядуцца спрэчкі, ці можна называць HTML/CSS мовамі праграмавання, але тое, што яны запатрабаваны і вывучаць іх карысна, бясспрэчна. Матываваныя школьнікі могуць пачаць распрацоўку сайтаў з 6 класа. Калі ж дзеці яшчэ не валодаюць асновамі праграмавання, лепш пачынаць пазней.

Каб хутка ацэньваць і абмяркоўваць вынікі работы кожнага, мы выкарыстоўваем віртуальныя класы Repl.it. Тут педагог можа аб’яднаць вучняў у адзін клас, даваць заданні ў анлайне і адразу бачыць код і гатовы сайт, створаны кожным удзельнікам заняткаў.

JavaScript — з 7 класа. Адрозніваецца ад Python больш складаным сінтаксісам з вялікай колькасцю службовых сімвалаў, таму падчас першага знаёмства патрэбна асобна засяродзіць на іх увагу.

У нас быў вопыт заняткаў са змешанай групай з вучняў 6—7 класаў, якія першыя паўгода з нуля вывучалі AppInventar, а пасля перайшлі на JavaScript. Першы час мы прапанавалі толькі простыя заданні: стваралі прымітыўныя гульні, вучыліся працаваць з масівамі. У выніку выхаванцы даволі хутка атрымалі базавыя навыкі і сталі развівацца самастойна.

С# — з 7 класа. У асноўным у школьным узросце выкарыстоўваюць С# для таго, каб працаваць у Unity і ствараць прылады і гульні ў другім і трэцім вымярэннях.

Unity дазваляе раскрыцца творчым здольнасцям вучняў: тут цікава маляваць графічныя элементы гульні. Іншыя любяць займацца дызайнам механікі і настройваць паводзіны персанажаў, рухомых элементаў гульні. Дзякуючы С# і Unity, можна пераспрабаваць вялікую колькасць ІТ-прафесій, каб зразумець, у якім напрамку развівацца.

Java — з 8 класа (пасля вывучэння A­ррInventor ці скрыптавых моў). Адна з самых запатрабаваных моў праграмавання, якая актыўна выкарыстоўваецца для распрацоўкі дадаткаў для Android. Дапамагае глыбока зразумець праграмаванне, бо тут рэалізаваны прынцыпы аб’ектна арыентаванага праграмавання, арганізавана работа з памяццю і можна папрактыкавацца ў функцыянальным праграмаванні. Java дае добрую базу для далейшага самаўдасканалення і вывучэння новых інструментаў.

Настасся ВАЗЮЛЯ,
настаўніца інфарматыкі сярэдняй школы № 84 Мінска;
Аксана БУКІНА,
педагог дадатковай адукацыі гімназіі Дзяржынска.
Фота Мар’і ЯНКОВІЧ.