7 правил от учительницы из Гомеля, которая 20 лет учит детей программировать

Светлана Борисовна Скакун уже больше 20 лет работает в гомельском Дворце творчества детей и молодёжи — учит детей программировать. У неё учились сотни ребят, о которых знают далеко за пределами Беларуси. Кто-то работает в ИT-корпорациях, а кто-то продвигает свои стартапы — например, Михаил Вага, разработчик зелёной зарядки.

— Родилась я в семье военных, сменила девять школ и мечтала быть астрономом. Но передумала и пошла в программисты. Поступила в Черновцах на прикладную математику. Если бы кто-то тогда сказал мне, что всю жизнь буду работать учителем, не поверила бы.  

Когда в 1996 году стояла на учёте в службе занятости в Гомеле, мне предложили место в тогдашнем Дворце пионеров. Я даже не знала, с чего начать. Помню, как заведующая тогда сказала: «А вы относитесь к ним, как к своим родным детям — и всё получится». Вроде банально, но работает. В отделе компьютерной техники и программирования, которым я руковожу, на сегодня 180 учеников, и всех их я люблю.

С тех пор меня не раз приглашали работать в Минск. Но кто Гомельщину будет поднимать?

— Как за 20 лет изменились дети и родители?

— 20 лет назад приходили ребята, которые хотели стать программистами. Это были очень мотивированные дети, они шли за знаниями. Дома у них ещё не было компьютеров, поэтому единственным вариантом было прийти в кружок и там осваивать что-то новое. Часто ребята приходили украдкой. Им родители запрещали ходить, думали, это пустая трата времени.

Потом наступил период, когда к нам перестали ходить — во многих семьях появились компьютеры. Родители считали, что этого достаточно.

Только лет через 5 пришло осознание, что дома дети в основном играют, а не развивают логическое мышление, не учатся строить алгоритмы и решать задачи. 

Сегодня мотивированными стали родители: они понимают, что детям нужна будет хорошая работа — например, айтишника.  Сейчас к нам снова ходят почти такие же дети, как и лет 20 назад. Но тогда начинали с 5-го класса, а теперь приводят и первоклашек.

— А подходы в обучении поменялись?

— В самом начале нас упрекали, что у нас такая же методика преподавания, как в школе: пишем конспекты, а потом решаем задачи.

Сейчас больше упор на коллективное обсуждение. На занятиях выстраиваем командную работу, как в ИT-компании. Чтобы дети не просто смотрели в монитор, а развивали коммуникативные навыки, умение слушать, работать сообща и формулировать алгоритм, а уже потом писать код.

Если раньше был один ученик на один компьютер, то сейчас и несколько человек могут сидеть за одним компьютером и вместе писать код конкретной задачи. Главное — способность анализировать данные, придумывать способ их представления, составлять алгоритм. А для этого требуется, прежде всего, определённое мышление, а не компьютер.

20 лет назад ещё не было чёткого понимания, чему лучше учить. Сейчас уже мои выпускники, которые работают в ИT-компаниях, дают самые ценные рекомендации. Они всегда откликаются на предложения провести мастер-классы, ведь когда-то точно так же сидели за компьютерами и задавали много вопросов. Инициатива внедрить в курс обучения JavaScript принадлежит как раз моему ученику Славе Коноплёву, который уже давно работает в EPAM.  

Также больше возможностей появилось для активного оффлайн сотрудничества с ПВТ, вузами, ИT-компаниями, дети ездят туда на экскурсии. Они уже знают, что айтишник — не только программист, но и тестировщик, менеджер проектов, бизнес-аналитик, архитектор-менеджер, скрам-мастер. 20 или 10 лет назад такого, конечно, не было.

Правила жизни и учёбы

1. Начинать учиться программированию лучше с 7 лет.

У нас дети постепенно изучают Microsoft Office, Paint, CorelDraw, Lego WeDo 2.0, Lego Mindstorm EV3, 3DMax, Scratch. Начиная с седьмого-восьмого класса – Turbo Pascal, HTML, таблицу стилей CSS, вершина – JavaScript.

2. Учиться стоит не для того, чтобы стать программистом, а чтобы уметь думать.

Без этого сейчас невозможно. Стремление учиться и самообразовываться должно быть таким же естественным, как и потребность есть, пить, спать. Гаджеты, которых с каждым годом становится больше, облегчают жизнь, но не избавляют от необходимости думать и принимать взвешенные решения.

3. Главная задача – помочь раскрыть талант ребёнка и вселить в него уверенность.

Нашим детям очень не хватает веры в собственные силы и способности. «А у меня ничего не получится, я расту без отца!» – говорит мне шестиклассник. Это проблема. Почему мальчик решил, что он сам не в состоянии добиться успеха? С этого и надо начинать. Дети должны быть уверены в том, что своими усилиями и трудом они могут решить любую задачу и справиться с проблемой.

Вот занимался у меня ребёнок, которому приходилось больше других работать, не всё получалось сразу. И мама его говорила, что он «слабый в учёбе», в школе успеваемость не блещет. Но уже через два года он занял первое место на конкурсе. Эта победа для него была настолько важна: он сам увидел прогресс! Если ребёнок хочет учиться, я сделаю всё, чтобы он был победителем. Детям и родителям не устаю напоминать, что сюда ходят только умные и способные, у них всё получится, и дипломы будут! Они много значат, особенно для мальчишек. Девочки и так знают, что они умные и красивые, а мальчикам нужно подтверждение. Вот девчонок у нас совсем мало, почему-то не стремятся они программировать и заниматься робототехникой. А зря.

4. Делать упор на развитие логического мышления и обучение построению алгоритмов.

Это фундамент, без которого не будет и надстройки.

Все языки программирования не охватить, но, если ребёнок разберётся в учебном языке программирования Turbo Pascal, ему будет просто освоить другие рабочие языки. К примеру, С#, на котором тот же Миша Вага писал один свой проект, будучи школьником.

5. Сразу применять теоретические знания на практике, пытаться создавать авторские проекты.

Когда мы изучаем новые темы, учащиеся сразу пишут программы на этом языке, самостоятельно учат новое, придумывают свои приложения (каждый стремиться написать именно свою игру), участвуют в школьных олимпиадах по программированию. В индивидуальном порядке занимаемся с детьми, которые готовятся к конкурсам.

В прошлом учебном году мой ученик Даниил Фёдоров выиграл конкурс «Таланты XXI века» Союзного государства, разработав на Java мобильное приложение «Андарак и Камiзэлька». Знаете, что такое андарак и камiзэлька? Спрашиваю, а многие отвечают – наверное, это мальчик и девочка (смеётся). Андарак – распространённая преимущественно в Беларуси юбка из шерстяной ткани, обычно в клетку, поперечную или продольную полоску. А камiзэлька – мужской жилет. Приложение как раз для изучения белорусского костюма с игровым разделом, чтобы проверить, насколько хорошо вы знаете национальный строй.

Антон Костерев, будучи десятиклассником, в 2014–2015 учебном году со своим проектом «Мир комбайнов», который разрабатывал на Delphi, стал дипломантом республиканского конкурса «Патриот.by». Мы тогда столько узнали о комбайнах, их разновидностях, модификациях – это действительно целый мир!

Миша Вага, когда ходил в наш кружок, написал на C# приложение «Путешествие в мир английского языка», за которое был награждён премией Специального фонда Президента Республики Беларусь по социальной поддержке одарённых учащихся и студентов. К слову, это единственная электронная разработка гомельчан, которую разместили на сайте Национального образовательного портала.

6. Давать простор для творчества, как, к примеру, в британских школах.

Многие считают, что они могут сделать что-то хорошо только в том случае, если им скажут, как именно делать. Но так не должно быть. Например, если пятиклассников учат разбираться в CorelDRAW, пусть дети пробуют нарисовать что-то своё. Пусть это будет дерево не из учебника, а какое-нибудь фантастическое, зато авторское. Тогда у ребят формируется свобода самовыражения, они смелее генерируют идеи и их реализуют. Это в будущем имеет неоценимый эффект, такие дети способны двигать цивилизацию, изобретая принципиально новые продукты. Я это ещё отчётливее поняла после образовательной поездки в Англию этой весной.

Английские дети учатся познавать мир через эксперимент. Им не дают готовое решение, они к нему приходят самостоятельно. На STEM-выставке в Бирмингеме был мастер-класс: малыши взбивали молоко и получали масло, тем самым приходя к пониманию природы физических явлений. Или брали деревянные и железные кубики и погружали их в песок, воду, желе, чтобы увидеть, какой след оставляет предмет на той или иной поверхности. Им не диктовали теорию, они за всем наблюдали в ходе опытов. Это намного значимее. И этого нам не хватает. Потому что в программировании, в первую очередь, важно логическое мышление.

7. Перед занятием обратить внимание на настроение ребёнка, относиться к нему с вниманием и уважением.

Был случай, подходит мальчишка и говорит: «А у меня собака умерла». И тут уже не до программирования. Спрашиваешь, что случилось с ней, какая порода, посидишь немного рядом, подыщешь нужные слова. Или пришёл ребёнок с мокрыми ногами. Ну, как не поинтересоваться, что случилось? Ведь дети очень хорошо чувствуют отношение к себе. Важно, чтобы они доверяли и видели в тебе настоящего наставника, который не только даёт задачи и объясняет правила, но и может направить, подсказать, поддержать.

Это одно из правил жизни, не только обучения.

Источник: dev.by
Нашли в тексте ошибку — выделите её и нажмите Ctrl+Enter.
Вакансии

Обсуждение

Missing

> Сегодня мотивированными стали родители: они понимают, что детям нужна будет хорошая работа — например, айтишника.

Если человек пусть и маленький не хочет, то его не заставишь. Бьемся с этим, не в IT. Читать вообще не заставишь. Такое мучение для нее и она такая не одна. Есть те кому интересно.

Missing
+1

Когда родители не авторитет и сами читать не любили/любят, заставить будет сложно как а заинтересовать и подавно.)

Missing

Если дети не хотят писать программы их родители не авторитеты и писать их не любят?:) Они предпочитают видео.

Missing
+2

Всё хорошо, но есть пара печальных моментов:

1. Всякие коммерческие продукты типа Corel - ведь главное научить принципам, так же сказано в статье? Так зачем для этого коммерческие продукты, которые если покупать ребёнку домой, то надо продать кого-то из родителей? Даже если у образовательного учреждения есть дешёвая/бесплатная лицензий, зачем ограничивать ученика в возможностях законно устанавливать у себя, у друзей, да где угодно? Есть масса свободных аналогов (то же Inkscape), возможностей которых достаточно для образовательных нужд.

2. Я понимаю почему паскаль, но если бы меня спросили с чего начинать, то я бы назвал Python, а может и Haskell.

Javascript сейчас бешенно востребован в аутсорсе (белые люди на нём работать не хотят, сами прогают на джаве и питоне, а js отдают в далёкие страны), но ни в коем случае не должно стать так, чтобы он стал первым изученным языком - программерское мышление нужно развивать на архитектурно стройном языке.

Missing
+1

> я бы назвал Python

А я нет. Какие-нибудь связанные списки можно и на Python реализовать https://www.tutorialspoint.com/python/python_linked_lists.htm, но в голове вряд ли отложится как это все располагается в памяти. В этом плане Pascal гораздо ближе к машинному коду и можно рисовать подобные диаграммы http://cs-study.blogspot.com/2012/10/linked-list-implementation.html. Плюс вводится явная типизация. А уж хэш таблицы https://www.tutorialspoint.com/python/python_hash_table.htm https://en.wikibooks.org/wiki/Data_Structures/Hash_Tables

В принципе если уже совсем основы https://grasshopper.codes/

Missing
+1

> В этом плане Pascal гораздо ближе к машинному коду

это и плохо т.к. развитие идёт в сторону повышения уровня языка и это правильно ибо повышает эффективность программиста (см. Макконела), а низкоуровневые вещи нужно оставить профессионалам с профильным высшим образованием

Missing-male

Повышать надо эффективность программиста который уже понимает что к чему.

А начинать надо таки с низкого уровня. Если не ассемблер то С.

Missing

Во-первых, мы говорим о детях, а не о профессиональном образовании.

Во-вторых, даже 99% "профессионалов" сегодня успешно работают ничего не понимая на низком уровне, оставьте уже это ретроградство, такова реальность, никто уже не паяет свои процессоры, а берут готовые не задумываясь о том, что у них внутри, берут готовые операционки, субд и т.д.

В итоге создают ценные для бизнеса приложения и получают за это деньги, и только когда бизнес опухает до огромных размеров или по иным причинам сталкивается с проблемами производительность не решаемые покупкой железа появляется потребность в профессионалах понимающих что к чему на низком уровне.

Missing

Касательно типизации - в новом питоне есть type hints

Missing-male

Да не, Вы наверное шутите, только plain C.

Missing-male
+1

Как сказала мадам - начинать учить лучше с 7 лет (т.е. первый класс). Итого мы имеем на выхлопе детей, которые 11 лет и более (т.к. колледжи и ВУЗы тоже продолжают иногда этот маразм) учат никому не нужный язык, который к тому же даётся им сложнее, чем Python и не могут его применять нигде. Вам времени не жалко столько просто выкидывать, чтобы потом, в возрасте когда мозги уже хуже новую информацию воспринимают, ещё уйму времени выкидывать уча что-то реальное, актуальное, полезное, востребованное и входящее хотя бы в TOP 10 по популярности? За что вы так детей не любите? Если есть лишнее время, лучше поспать лишний час или что-то более полезное поучить, чем тыкаться в этот анахронизм.

Pascal в отличие от Python не развивался с упором на образование и читаемый код. Pascal давно мёртв. Как и Delphi. А ошмётки Borland в очередной раз где-то перепродают за ненадобностью. Python же давно применяется в образовании в тех странах, которым многие здесь завидуют (почему-то вот хорошие практики при этом никто не хочет перенимать), в исследовательских целях, во многом софте (на вскидку Krita, Gimp, Maya, Blender, LibreOffice, валом плагинов ко всякому софту, всякие препроцессоры для видео и звука, скрипты системной автоматизации и ещё вагон и маленькая тележка, вплость до IoT, data-science, машинного обучения и прочих модных штук. Учить его можно буквально на всём от телефона до какого-нибудь одноплатного ПК типа Orange Pi подключенного к телевизору, в отличие от всяких Objective C и Swift. Документация всегда при нём, плюс навалом книг даже на русском. Просто бери и пользуйся! Даже бесплатных книг хватает, не говоря о уйме других ресурсов. Моё ИМХО: "Джейсон Бриггс Python для детей" - за неделю до первых игр и UI с нуля осваивается, второй книгой например "Эл Свейгарт Учим Python делая крутые игры" зайдёт на ура. Потом учить HTML, CSS, JavaScript и Django. Это курс который можно за год в школе освоить вдоль и поперёк. А потом уже алгоритмы (параллельно с более серьёзной математикой, если это в рамках школьного курса), бинарную логику и прочее. Всё это можно учить легко и не принуждённо и почти сразу после урока применять - для учёбы это самое важное. И это можно будет применять даже если потом ты в программисты не пойдёшь. А уже в ВУЗе ассемблер, С/С++ обязательно и к ним Go, .NET Core или на худой конец Java на выбор.

Плюс весь этот закостенелый образовательный подкорок, который всем навязывают не спросив, включая ОС, офис, фотошопы, turbo pascal, borland pascal и далее Delphi, целиком и полностью проприетарный, закрытый и краденный. А чтобы легализовать этот цирк надо отправить уйму денег в забугорье, буквально подарить каким-то посторонним чувакам, хотя могли бы потратить на развитие образования и медицины.

И да, паскаль ни разу не ближе к машинному коду. Он просто топорный.

Missing
-3

>Pascal в отличие от Python не развивался с упором на образование и читаемый код.

Только в вашей альтернативной вселенной. Pascal не то что, развивался, а даже создавался с упором на образование и читаемый код.

"The Pascal language was originally designed in 1971 by Niklaus Wirth, professor at the Polytechnic of Zurich, Switzerland. Pascal was designed as a simplified version for educational purposes of the language Algol, which dates from 1960.

When Pascal was designed, many programming languages existed, but few were in widespread use: FORTRAN, C, Assembler, COBOL. The key idea of the new language was order, managed through a strong concept of data type, and requiring declarations and structured program controls. The language was also designed to be a teaching tool for students of programming classes."

И ладно бы вы советовали JavaScript в качестве альтернативы, но нет же: вместо почти дохлого Паскаля предлагаете полудохлый Пайтон и ещё и полудохлую Джангу пихаете в довесок, в мире, где всё уходит в веб и толстые клиенты. Из чего можно сделать вывод, что у вас синдром утёнка не хуже, чем у поборников Паскаля в школах.

Missing-male
+1

Паскаль плохой язык для обучения и плохой для программирования на нём. Он слишком академический.

Лично мне как раз знание паскаля в своё время (школьное кстати) сильно мешало при переходе на более взрослые языки.

Missing

А причём тут ваши индивидуальные особенности? Мне не помешало, хотя начинал я вообще с BASIС для советского клона ZX Spectrum.

Не одна тысяча прекрасных программистов начинала именно с Паскаля и никаких проблем потом не испытывала. Опять же, у каждого свой синдром утёнка и безапеляционно что-то утверждать не имеет никакого смысла. Знаю под десяток людей, которые с нежностью вспоминают Паскаль и хают Си или BASIC. Всё это вкусовщина, а синтаксис и стандартная библиотека какого-либо языка (реализации) не такая уж и большая проблема, для человека знающего базовые концепции и алгоритмы, и учится за пару недель. Гораздо важнее, на мой взгляд, в обучении уделить внимание разным парадигмам, а у нас кроме процедурных простыней в школах редко что пишут.

Missing-male

Не надо путать "не было выбора" с "никаких проблем не испытывала". Однобуквенные переменные и стиль писания портянок в одну колонку - это вот прям отдельная детская травма паскалистов, потом приходится учиться нормально писать на актуальных языках (не все могут, поэтому хают Си, хотя все языки в топе всё равно Си-подобные или испытали влияние С/С++ и не просто так), и приходится долго переучиваться как должно быть на самом деле и как делать нельзя.

Не надо путать "стандартная библиотека" и "вот это будет работать только на винде и только в борландовской реализации", а так же "а вот этот патч чинит крэши паскалевских приложений на компах мощнее Pentium 1" (и такое было!).

И если уж "вкусовщина" действительно не важна, то почему вы за него так усердно цепляетесь, когда есть альтернативы лучше?

Missing
+1

Что значит полудохлый? Вроде по всем рейтингам живее всех живых.

Во-первых, толстые клиенты не отменяет серверной части, они же клиенты, а во-вторых, не вебом единым жив программист.

Missing-male

Не не не. Не надо путать хотелки и факты. Упрощённая версия для тех кто не осилил Алгол ещё не становится языком ориентированным на образование целиком. Плюс на тот момент ещё не было достаточного опыта у людей чтобы сказать что вот это в языке хорошо, а вот это плохо. Первые языки были созданы почти на шару. Как и не было реальной возможности обсудить наработки с другими учебными заведениями. Товарищ Вирт просто тыкался в слепую и почти единолично решил что "о, это будет прикольно, всё равно лучше чем Алгол!". Но выиграл в угадайку из языков стартовавших тогда C который и тогда его обходил и сейчас обходит по всем критериям от скорости и удобства разработки до популярности, который действительно ближе к машинному коду, и по которому хотя бы актуальные вакансии есть и будут.

Я тоже начинал учиться ещё на Turbo Pascal, на олимпиады ездил, потом Delphi пробовал (опять же с тогда ещё он продавался у нас ТОЛЬКО на дисках с краденным софтом и к нему были точно такие же криво крякнутые компоненты). Бейсик пробовал но не зашло. Очень рад был после паскаля программировать на C/C++ - прям глоток свежего воздуха. Сейчас пишу на C# в основном, немного на js для фронта и скрипты на Python. Посматриваю с интересом на новости в мире Go. И не понимаю, почему люди так цепляются за устаревшие отжившие анахронизмы и тратят своё и чужое время на изучение чего-то давно ненужного.

И почему я должен советовать JavaScript, чья ниша, честно говоря, дальше браузеров не ушла. NodeJS это адовый костыль с кучей проблем. А Electron всё ещё продолжает быть браузером, по сути. В Python всё просто - запустил команду и всё, учись, line by line ты будешь видеть как интерпретатор выполняет твои команды или не выполняет, что происходит, что высчиталось, что прочиталось из файла и как отрисовываются контролы в окнах, справка там же. С js всё не так, надо либо тыкаться в браузере с сильно ограниченным по возможностям языком, либо ставить WebStorm, либо ещё какую кочергу. И всё равно результаты этого будет почти негде за пределами веба применить.

Missing

Pascal с ассемблерными вставками и портами, ячейками памяти может работать. Не вижу в нем ничего плохого хоть и не пишу на нем давно. Его знание никак мне не помешало, а можнт даже и помогло:) В какой-то мере он даже дисциплинирует.

Lararus IDE и FreePascal

Missing-male

Кажется из TOP10 с ассемблерными вставками и портами только js не умеет работать. Не вижу в этом ничего. А расскажите, как он дисциплинирует, например код хотя бы минимально форматировать?

Lazarus (который под капотом и есть FreePascal) это такие штуки в вакууме, которые некоторые вещи описанные в доступной литературе не выполняют или выполняют совсем не так, не говоря о том что UI там вообще-то отличается от Delphi. Т.е. как минимум учебники нужно переписывать. У нас же мин.обр. на это забило и стало втюхивать школьникам ещё более ушибленный ABC Pascal, а на то что на нём часть примеров из паскалевских учебников не работает ещё больше забило. Такое "ну мучайтесь дети, привыкайте к тому что дальше будет хуже"

Вы ещё мертворожденный Kylix вспомните.

Missing

и эта IDE работает с Android и iOS

Missing

Ваш подход да еще бы в школы. Так как там, в лучшем случае, учат делать, но не думать. В школе моего времени, каждому троечнику стремились вложить базовые знания и к этому прикладывали колоссальные усилия. Сейчас же в основном всем наплевать, понял не понял, никто за так с тобой возится не будет


Авторизуйтесь, чтобы оставлять комментарии

Использование материалов, размещенных на сайте, разрешается при условии прямой гиперссылки на dev.by. Ссылка должна быть размещена в подзаголовке или в первом абзаце публикации.
datahata — хостинг в Беларуси