«Я просто роблю те, що мені подобається». Як 18-річний студент навчає дітей програмуванню та видає підручники з Python
Євгену Козолупу лише 18 років, а він вже викладає програмування в київському ліцеї, видає власні підручники з навчання Python та працює над розробкою онлайн-курсів. Спеціально для DOU Євген розповів про ті, чому юний вік — не перешкода програмуванню, реалізації амбітних цілей та ведення всеукраїнського проекту з навчання програмуванню.
Разом з учнями Сумської ССШ #17
Як і чому захопився програмуванням
В 11 років у мене з'єднання явився перший комп'ютер, і я почав з найпростішого — створював малюнки, презентації та візуалізації. Хоча це все було доволі примітивно, мою зацікавленість помітили в школі й запропонували піти на курси програмування. Я був у п'ятому класі, і це здавалось мені чудовою пригодою. Проте надовго з навчанням не склалося: викладачу було нецікаво нас вчити. Спочатку він пропускав уроки, а потім просто заявив, що зайняти більше не буде. Хоч мені і подобалось вивчати З++, я кинувши.
Я продовжив займатися адміністраторськими функціями: допомагав учителям робити презентації, налаштовувати комп'ютерній ютерну техніку. По суті, працював системним адміністратором у своїй школі. Програмування знов мене затягнуло в дев'ятому класі. Тоді брат порадив переключитися на вивчення сучасних мов програмування. Я вирішив вивчати Python на платформі Prometheus. Чесно кажучи, навчатися на Prometheus було непросто: у викладали курси за старою версією Python 2.7, коли вже був доступний Python 3.0. Та і формат подання інформації викладачів з КПІ також ускладнював процес навчання. Тож я підійшов до питання більш ґрунтовно: вивчав тими спочатку за курсом Prometheus, а потім шукав додаткову інформацію на профільних сайтах — читав статті та дивився відео на YouTube. Таким чином, десь за рік я опанував Python, паралельно створюючи власні конспекти.
Написання підручника з вивчення Python
Згодом хобі набрала несподіваних обертів. Коли я переходивши до десятого класу, а моя сестра — до восьмого, я зацікавився підручником з інформатики, який їй щойно бачили. За новою програмою у школі якраз починали вивчення мов програмування — було цікаво, що запропонують. Тієї підручник ставши великим розчаруванням. У книжках заклали Objective Pascal — стареньку мову програмування, яка майже ніде не використовується. Так, вивчити її в шкільному віці можна. Альо як ці знання використати у житті? Коротше, я був проти марного витрачання часу і вирішив обговорити своє невдоволення з викладачами. Я запропонував вчити щось сучасніше — тієї ж Python. Адже ця мова також проста у вивченні, альо має беззаперечний плюс — її можна використати в майбутньому. Викладачі насторожено поставилися до цієї ідеї: ми довго сперечалися. Останнім їхнім аргументом була відсутність підручників з викладання Python. Тоді я спіймав їх на слові: домовились, що як я складу підручник з власних конспектів, вони за ним викладатимуть.
Після тієї розмови я почав створювати перший посібник для восьмого класу. Спочатку мав багато сумнівів, та врешті-решт я наважився. Мені ці матеріали допомогли опанувати Python: іншім також можуть стати у пригоді. Починав я сам, та коли мої конспекти почали використовувати для викладання, на допомогу прийшла моя вчителька з інформатики. Власне, вона вичитувала і редагувала майбутній посібник. Впевненості в тому, що цей підручник використовуватимуть чі що я маю достатня знань, — не було взагалі. Я робив це лише тому, що хотів створити якісь матеріали з вивчення Python для дітей. Сам посібник — не втілення моїх знань: навпаки, він створювався, коли я сам вивчав Python. Та це і було його «родзинкою»: це — книжка, написана з точки зору учня, як йому простіше та зручніше засвоювати інформацію. Наразі я знаю набагато більше: сподіваюся, що зовсім скоро «доросту» до професійних навчальних праць з програмування.
Про нюанси видання власної книжки
Спочатку я хотів видати посібник «офіційно» — через видавництво. Та вирішив, що це може потребувати купи годині: затвердження та друк забирають місяці, а то і роки. Ми живемо в ХХІ столітті, тож чому б не спростити? Так я вийшов на спеціальний інтернет-ресурс видавництва «Основи» — «Сам собі видавець». Там можна скачати власні матеріали, а від проданих книжок ви отримаєте невеликий відсоток як автор.
Цей шлях також мав певні нюанси: потрібна була серйозна комунікаційна кампанія та розповсюдження інформації. Я додався у Facebook-групи для викладачів інформатики, там просував свій посібник. Пишучи, хто я, чому створив книжку, давав посилання, розповідав про вартість. Потім заснував проект «Програмування в школі» , який спочатку був комунікаційним майданчиком для просування підручників та методик викладання Python у школах. Згодом у межах проекту я почав проводити вебінари.
Наразі я вже видав три посібники. Всі вони коштували недорого — від 35 до 50 грн. Відповідно, від кожної проданої одиниці я отримував ще менше грошей. Та для мене цей проект — не про прибуток: я хочу, аби кожен посібник допоміг якомога більшій кількості учнів опанувати мови програмування. Нехай його придбають 500 осіб, але вчитися за ним буде тисяча чи більше. Ті, що підручник не безкоштовний, а чогось вартує, важливо в якості мотивуючого фактора: люди читатимуть ті, що придбають. Втім, я нікого не обмежував у використанні електронних копій: вчителі можуть розповсюджувати їх в класі, аби учні самі працювали з підручником. Я не вважаю це чимось поганим — навпаки, підтримую. Мені безмежно!!! приємно розуміти, що один викладач може навчити понад 30 учнів за моїми посібниками.
Загалом, до різніх куточків України я надіслав 800 комплектів електронних книжок для 8-го та 9-го класів; десь 300 електронних примірників для 10-го класу і орієнтовно 150 всіх посібників у паперовому вигляді. Друковані посібники я роблю власноруч вдома: ріжу, підрівнюю, правильно зшиваю та нумерую сторінки, працюю з обкладинками. Тож я в курси географії адресатів: надсилаю книжки сам. Кожне відправлення по-своєму приємне, але особливою радістю були посилки до Маріуполя: я надіслав комплект книжок чотирьом різним особам. Також часто надсилаю підручники до Львівської та Вінницької областей. Знаю, що багато школярів навчаються за моїми підручниками в Чернігові. Цього літа мене навіть запрошували на шкільне методоб'єднання в Чернігові та лектором деяких подій на DocuDays.
Для людей, які придбали посібники, я інколи створюю опитувальники щодо якості матеріалу та зручності викладення. Здебільшого отримую позитивні відгуки: це дуже приємно. Звісно, є і ті, хто не хоче використовувати посібники безпосередньо у роботі з дітьми. Деяким вчителям зручніше брати посібники за основу власних конспектів, за якими вони викладатимуть матеріал. Хоча основний сенс цих підручників — вони прості та зрозумілі дітям, адже написані учнем школи.
Проблеми у навчанні мовам програмування
Я б виділив наступні проблеми, які стосуються навчання не лише у школі, а й у ВНЗ.
Замкнене коло застарілої інформації. Особливо коментувати не треба: Міністерство спочатку затверджує посібник, потім його друкують, лише тоді закуповують, після чого він потрапляє до рук учнів. Тобто мова йде про рокі. А світ змінюється блискавично, тож коли ці «нові» підручники опиняться у студентів, вони знов будуть застарілими.
Брак кваліфікованих викладачів. Осіб, які мають власні проекти або можуть прикладно пояснювати кейсі — одиниці. І це проблема, бо більшість викладачів у ВНЗ знають теорію, але на практиці не вміють її застосувати. Як наслідок — що? Учнів «морять» контрольними-самостійними (часто — на паперових носіях). А їм потрібні не сухі знання, а практика: лише за допомогою практики можна надійно опанувати програмування.
Допотопна техніка. Мало навіть відомих державних ВНЗ можуть похизуватися сучасною технікою. Здебільшого це такі старі машини, на яких навряд чи щось може працювати. Складно кодити на Python чи С++ на комп'ютерній комп'ютері, якому вже 20 років, і він працює лише 15 хвилин.
Невдалі методики викладання. Багато вчителів інформатики не знають, як правильно викладати мови програмування чи інформатику. І справа навіть не у відсутності навичок програмування. Навчальна система стара, тими уроків розставлені у неправильній послідовності. Так, вчителі можуть поміняти уроки місцями, та треба не просто розірвати існуючу послідовність. Необхідно саме переформатувати курс, аби студент вчився простіше та ефективніше. А для цього треба бути класним програмістом. Бо щоб навести правильні приклади чі кейсі для закріплення матеріалу, треба мати власний досвід. Варто прикладно показати, що за свої знання можна отримати гроші. Інакше навчання виглядає як суха теорія, яку незрозуміло як застосувати.
Хибне розуміння того, що потрібно учням. Бути крутими викладачами — це не просто пробубоніти тему уроку, а справді зацікавити своїх учнів, аби вони загорілись і захотіли програмувати. Бо програмування потребує величезної самостійної роботи. І якщо ти не розв'язків яжеш по 50 завдань з кожної тими — ти не навчишся. Аби досягти такої системності, треба бути зацікавленим, виховувати силу волі. Тож, аби допомогти учневі на цьому непростому шляху, потрібна сильна мотивація з боку вчителя.
Школа від МАН «Агенти змін», Київ
Про викладання в ліцеї та школі
Зараз мені 18 років, я навчаюсь на іншому курси НПУ Драгоманова на викладача інформатики. Паралельно веду проект «Програмування в школі» та вже викладаю. У 2018-му році, ще на першому курси, я ставши тренером з програмування в Києво-Печерському ліцеї № 171 «Лідер». У форматі гуртка веду дві парі на тиждень з «Основ програмування мовою Python». На цю посаду мене запросила завідувачка кафедри інформатики ліцею: спочатку вона помітила мою активність на Facebook, потім послухала декілька моїх вебінарів . Після того як ми познайомилися особисто, запропонувала співпрацювати.
З початку цього року я також викладаю інформатику для 4-6 класів у своїй рідній школі — Сумській спеціалізованій школі № 17. Тепер понеділок-вівторок я присвячую рідному місту. Прийняв таке рішення, бо зрозумів, що не отримаю віддачі від Києва: я не відчув драйв столиці, про який всі говорять. А від проблеми рідного міста мені ближчі. Декілька років тому Сумська область мала одну з найбільших квот на Всеукраїнській олімпіаді з інформатики. Учасники з нашої області декілька років підряд посідали призові місця, тож від Сумської області багато школярів могли брати участь. Та зараз статистика невтішна: все менше і менше сумчан демонструють гарний результат та стають призерами. І мені захотілось це виправити — абі про моє місто з великим потенціалом та цікавими людьми дізналися в Україні. Цього року деякі учні нашої школи під моїм керівництвом вже здобули призові місця на міському етапі. Вже незабаром вони спробують власні сили на обласної етапі олімпіади з інформатики. Сподіваюся, через декілька років ми підкоримо й Україну.
Порівняно з ліцеєм, до рідної школи було простіше влаштуватися: про мої здібності, досягнення та видані підручники там давно в курси. До того ж, у Сумах не вистачає вчителів інформатики, тож оскільки я не лише гарно знаю Python, а й травня викладацький досвід, мене влаштували на неповну ставку. Неповну, бо я ще студент, і маю навчатися в університеті: з середи у ятницю я постійно в Києві — відвідую парі та викладаю в ліцеї. Мені до вподоби динамічне життя, але не знаю, наскільки мене вистачить: я вже зрозумів, що жертвувати сном не можна.
В ідеалі, я хочу покращити всю систему освіти. Та зміни починаються «тут і зараз», тож поки що я роблю максимум там, де я є — як викладач. Намагаюсь змінювати систему оцінювання, вигадувати цікаві формати уроків, застосовувати інноваційні підходи у викладанні. До прикладу, на уроках комп'ютерній комп'ютерної графіки ми вирішили повторити експеримент Олександра Грєхова — «Квантовий стрибок Шевченка»: створимо векторні зображення інших відомих осіб. На уроках комп'ютерній комп'ютерної презентації робитимемо виступи у форматі TED. Цього року також вивчатимемо програмування за іншими моїми новими напрацюваннями.
Мені справді подобається спілкуватися з учнями, шукати до них підходи. До того ж, я чудово усвідомлюю роль викладача у процесі вивчення мов програмування. Для мене важливі не «знання заради знань, а навички, які можна потім використовувати в реальному житті. Це також працює і в зворотному напрямку: коли я викладаю, то отримую напрацювання для нових книжок.
Про виклики
Одне з найбільш складних завдань — виступати на освітніх форумах чи інших масштабних тематичних подіях. Уявіть: 18-річний хлопець розповідає спеціалістам з 20-річним викладацьким стажем, як варто навчати дітей програмуванню. Це дуже дивно, але і корисно: як би скептично викладачі не ставилися до мене на початку виступу, під кінець вони змінюють власну думку. Мене почали запрошувати на різні заходи у якості не лише гостя, але і спікера після потужної комунікаційної кампанії. Влітку я серйозно підійшов до створення контенту та просування проекту «Програмування в школі» в соцмережах. Саме завдяки поєднанню зусиль у соцмережах та публічних виступів за літо вдалось досягти високої впізнаваності проекту в школах різних міст України. Наші пости читали понад 20 тисяч користувачів Facebook. Наразі проект зовсім на іншому рівні. Це надихає, але і лякає водночас.
Також було непросто зі сприйняттям мене як викладача. Спочатку, у власній школі, до мене ставилися як до учня. Та після першого візиту завуча на мій урок вчителі все ж почали сприймати мене як колегу. Я дуже люблю свою школу та колектив: смороду мені значно допомагають. Тієї факт, що я зараз викладаю у школі, де навчався сам, полегшує занурення у процес. Мені допомогли адаптуватися до структури уроків, заповнення документації та інших нюансів.
Та якщо чесно, починати працювати в школі було складно. І справа не лише в бюрократії: вона є, але все не так погано, як ми вважаємо. Я звик вести свої заняття у форматі гуртків, курсів чи онлайн-зайняти. І це кардинально відрізняється від того, як прийнято проводити уроки в звичайній школі. Там ти маєш 45 хвилин, власний конспект, структуру уроку і мусиш наперед передбачати більшість кроків. Справді, складно провести цікавий та продуктивний урок, коли ти знаєш, що необхідно дотримуватися структури, і треба: перевірити домашку, акцентувати увагу на найважливішому, даті нову домашку, зробити практичну роботу, заповнити журнал, відмітити відсутніх. Планування та створення документів, календарних планів та звітів, заповнення журналів — все це дуже виснажує. Так, зараз є певні зміни, які полегшують життя викладача. Наприклад, вже немає чіткої програми, розписаної за пунктами — переліку тим, порядку їхнього засвоєння з чітким списком завдань. Натомість визначені компетенції та навички, які дитина має опанувати в ході навчання. Це додає свободи, але і відповідальності: вчитель самостійно вирішує, як структурувати навчальний процес за черговістю тим, власноруч обирає практичні завдання тощо.
В ході навчання я намагаюсь якомога більше обходити бюрократичну систему. Для мене це і є найбільшим викликом: діяти в межах правил, відповідно до Закону про середню освіту, але водночас бути новатором і орієнтуватися на учнів. Бо головне завдання — в цих межах знайті індивідуальний підхід до кожного класу. І, повірте, вони за рівнем підготовки значно відрізняються. Наприклад, є класи з розвиненим критичним мисленням: їм достатня лише даті завдання, вони самі його розв'язків яжуть, ви обговорите результат — і після цього вони опанують інформацію. Є класи слабші, де ми не можемо зробити векторну графіку, адже треба більшу увагу приділити теорії. Та моє головне завдання — аби наприкінці заняття чі курсом діти з обох класів вміли користуватися певними сервісами за визначеними принципами роботи. Щоб вони засвоїли необхідні компетенції, у своєму темпі і масштабі. Готувати конспекти під кожен рівень групи учнів — складно. Наприклад, у мене таких класів — шість, на кожен конспект треба мінімум дві години. А є вчителі, у яких груп значно більше: весь вільний час витрачається на підготовку до уроків. Тож я інколи хитру: розробляю більш прості планові конспекти, а потім, залежно від умінь групи, адаптую їх до ситуації. Це також непросто, але я викручуюсь.
На заняттях у ліцеї «Лідер», 2018 рік
Про кар'єр внутрішньокар'єрні плани та навчання
Зараз я доробляю вже четвертий посібник — завершальний з циклу «Основи програмування» для шкільного курсу. Свої підручники я використовую у викладацькій практиці, втім, є і зворотній процес: під час викладання я також допрацьовую власні книжки, редагуючи їх під потреби учнів. Це створює додаткову цінність підручникам. Від початку «родзинка» була в тому, що їх писав учень для учнів. Тепер тієї самий учень подорослішав, набрався досвіду, і з огляду на викладацьку практику покращує ці підручники. Тобто тепер я дивлюсь на створення посібників не лише знизу вгору, але і безпосередньо згори — з позиції вчителя. Я вважаю, це додає їм цінності: потенційно ці книжки можуть стати одним з найбільш цікавих та корисних видань з навчання програмуванню.
Також ми з однодумцями створюємо освітню громадську організацію «Смарагдові» у Сумах. Ми прагнемо впроваджувати освітні ініціативи для всебічного розвитку дітей. Зокрема, маємо уявлення про ідеального, всебічно розвиненого українця — смарагдового. Саме цей колір ідеальний з точки зору психології. Таку людину ми виховуватимемо через різні освітні програми та підходи: лекції, тренінги, школи, заходь, табори та інші формати в нашому місті. У місті ще немає ГО зі схожими цілями. Також формат громадської організації допоможе нам партнеритися з іншими громадськими об'єднаннями в Сумах та Україні.
З найближчих планів — створити онлайн-курс, де б викладали різні фахівці з Сум та навіть самі учні. Це буде курс з програмування мовою Python для дітей. Хочемо, аби на умовах партнерської угоди курс могли використовувати для викладання в школах по всій Україні. З особливостей: не бажаємо, аби він прив'язана язувався лише до мови програмування, тож додамо цікаві пояснення складних речей — тихий чі інших алгоритмів, структур даних. Це буде зроблено цікаво, просто та зрозуміло, аби діти змогли опанувати інформацію. Моя ідея — робити це в Google Classroom чи подібних сервісах, бо вони дозволяють залучити вчителів безпосередньо до розробки курсів, в який закладені мої авторські матеріали. Тобто колеги можуть отримати дублікат курсом, альо викладачами будуть самє смороду: інтегруватимуть мої відео та конспекти у свої уроки, але балі виставлятимуть за власною системою. На мою думку, такий підхід більш зрозумілий та зручний.
Саме тому я не орієнтуюся на відомі навчальні платформи онлайн-освіти, такі як EdEra та Prometheus. Я їх дуже поважаю, та їх складно застосовувати для навчання в школі. Кожному учню треба залогінитися у систему, використовувати систему оцінювання платформи, отримати їхній сертифікат для підтвердження своїх знань. Для персонального навчання це — крутій підхід. Та для школи я хочу більшої гнучкості. Можливо, в майбутньому зможемо розробити власну систему зі схожими принципами під власні цілі — певну альтернативу Moodle.
Щодо саморозвитку — працюю над тим, аби стати досвідченим програмістом та бути прикладом своїм учням. Зараз фокусуюся на вивченні С та С++, а також більш складних темах та алгоритмах Python. Цього року планую відправити декількох учнів з нашої школи на олімпіаду з інформатики — будемо рухатися і надалі в цьому напрямку.
Мені здається, мої різні компетенції складаються у якийсь пазл: від продажів, коли я поширював інфо про підручник, до технічної частини — вміння програмувати, початку викладацької кар'єр кур'єри. Це все може скластися у цікаву картину в майбутньому. Якщо чесно, я ще не знаю, чим займатимусь. Я просто роблю те, що мені подобається: зараз мені подобається програмувати, викладати та проводить лекції — я це і роблю. І взагалі, вважаю це гарною стратегією — робити те, що подобається. Адже навички та досвід накопичуються, головне — не проґавити шанс все це застосувати.
Опубліковано: 02/12/19 @ 08:00
Розділ Різне
Рекомендуємо:
Go дайджест #11: мови 10 років, новинки в Go 1.14
PM дайджест #22: engineering mentorship, як проводять code review Google
Історія одного передноворічного релізу
5 книжок про роботу мозку від Олексія Молчановського, керівника магістратури з Data Science в УКУ
Збірка домашнього 3D-принтера своїми руками: рекомендації з особистого досвіду