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

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

«Каждый человек должен учиться программировать, потому что это учит нас думать.» Стив Джобс

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

Начинать заниматься можно довольно рано, как только ребенок начинает более-менее читать-считать. Моим  самым младшим  ученикам 7 лет.  Начинаем мы с того,  что выясняем ,  что такое программа, что можно считать программой. Пишем простые  инструкции «соберись в школу» или «как вскипятить чайник», проходим лабиринты. Действительно, детям не очевидно, что повернуться направо и пойти вперед это две разные команды, а не одна. Как только самые базовые понятия поняты, мы приступаем собственно к программированию.

Для малышей есть прекрасная программа codemonkey. Сюжет прост, нужно помочь мартышке  взять банан, но за  этим незамысловатым сюжетом скрыты большие возможности. Довольно быстро дается представление о  разных типах циклов , о том, что такое переменная ,  массив, условие. Обычно через два-три месяца почти все задачки решены, базовые понятия усвоены и можно идти дальше. Программа платная, но стоит совсем недорого, удовольствия приносит море!  Даже самый неподготовленный родитель может заниматься вместе с ребенком,  есть все решения задач, подсказки,  все, что нужно. Программа есть и на русском,  и на английском.  Первые 30 задачек бесплатные,  потом небольшая сумма в месяц. Всего больше 200 задач. https://www.playcodemonkey.com

На следующем этапе я знакомлю своих учеников с языком Лого. Этот язык был придуман в 60-е годы специально для обучения, но с тех пор изменился и трансформировался под современные нужды.  С большим удовольствием дети управляют черепашкой, рисуют и придумывают замысловатые фигуры. Кто-то с удовольствием придумывает свое, рисует домики и кошек, кто-то строит объемные фигуры, кто-то придумывает, как написать программу,  чтобы получилось так, как на картинке. Это уже настоящее программирование, от замысла, постановки задачи к ее воплощению.  Попутно разбираемся с углами, геометрическими фигурами, решаем массу забавных задач на плоскости. Например,  почему, чтобы нарисовать треугольник, черепашка  три раза  поворачивает на 120 градусов, а сумма углов в треугольнике 180.  Как нарисовать круг? Как нарисовать полкруга? C младшими детьми  мы надолго  «зависаем » на этом этапе, благо заданий придумать можно бесконечно много, а со старшими детьми пробуем делать мультфильмы, знакомимся с понятием рекурсии,  с условиями и с основами булевой алгебры. Детям очень нравится результат,  красивый и наглядный, даже если что-то  получилось неправильно.

Скачать программу можно здесь: http://myrobot.ru/logo/

Однако рано или поздно приходит пора изучать уже настоящий язык программирования.  Я начинаю с Python,  это взрослый язык, с настоящим синтаксисом, отлично подходящий для обучения и при этом с большими возможностями для использования в будущем.  Кто-то быстро принимает новые правила и начинает писать простые программы, а кто-то очень долго учится правильно расставлять «знаки препинания».  Начинаем снова с простых задач,  пишем простой калькулятор, пишем программу, имитирующую бота,  чуть позже  начинаем изучать алгоритмы. Детям, обычно, очень сложно дается переход к абстрактному мышлению.  Вот только сейчас решил задачу, смог разделить 15 яблок на 6 человек, понял,  сколько кому достанется, а сколько останется в корзине, а запрограммировать, решить в общем виде не получается.   Нужно определить,  какие параметры программа должна запросить, что должна вывести на экран, как посчитать и нигде не запутаться. Но как же радостно, когда все, наконец,  получилось! Как здорово, когда одну и ту же задачу каждый решает своим путем, а потом можно обсудить решения, сравнить, найти оптимальное.  Как на бесконечном поле шахматном поле определить черная клетка или белая? Как определить две клетки одного цвета?  Эту задачку решили четырьмя разными способами.  Часто мы программируем задачки математические, взятые из школьного учебника.  Например недавно программировали теорему существования треугольника и нахождение корней к квадратного уравнения с помощью дискриминанта,  задачки на площади различных фигур и строили графики функций.  Кстати, в Python  тоже есть модуль turtle, который позволяет,  как и в языке Лого управлять черепашкой. К каждому занятию я придумываю простые на первых взгляд задачи, которые под  силу  решить начинающему  программисту.   Скачать программу можно здесь. https://www.python.org/downloads/

Для любителей придумывать свои собственные игры есть две чудесные программы.  В программе  Kodu Game Lab можно конструировать свой 3-d мир, придумывать персонажей, сюжет и наделять их разными  свойствами. . Это не совсем программирование, но очень очень развивает творческое мышление, оказывается, что  придумать и построить свой мир совсем не просто.  Скачать бесплатно можно здесь:https://www.kodugamelab.com

 Программа Scratch позволяет , добавляя конструкции,  тоже придумать собственную игру.  Чем-то напоминает Лего. Игра получается  очень красочная и интересная, но конечною,  очень много зависит от фантазии создателя.  Придумывая что-то свое довольно быстро осваиваются основные понятия. Скачать бесплатно можно здесь: https://scratch.mit.edu 

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

Программирование это не сложно, а очень увлекательно!  Попробуйте сами;)