Робототехника, программирование: в чём польза модных занятий для детей?
Содержание:
- Какие языки программирования лучше для ребенка?
- Слишком юный возраст – это сколько?
- Обучение для детей разного возраста: что выбрать
- Когда можно начинать?
- 3. Программирование — это не просто смотреть в экран, а развивать полезные навыки для работы и жизни
- Программирование — фундаментальный навык
- Что такое программирование?
- Зачем учить детей программированию?
- Что изучать и какой язык программирования выбрать
- Минусы Scratch
- Их нужно учить делать что-то реально полезное
- Отвлечение от непродуктивных занятий
- Знания из разных областей
- Работа в команде
- Школа Roboschool
- Курсы школы Roboschool и их стоимость
- Заключение или преимущества школы Робоскул
- Этап 1. Общий ознакомительный
- Как программирование улучшает креативное мышление
- Что такое программирование?
- Scratch Junior и Scratch от MIT Media Lab
- Визуальное программирование
- Конкуренция как инструмент обучения
- Используйте все возможные ресурсы
- IDE, библиотека, что???
Какие языки программирования лучше для ребенка?
Языков программирования много, и с каждым годом их становится все больше. Выбрать из них какой-то один так же непросто, как определиться с иностранным языком. Выбор языка программирования может оказать сильное влияние на будущее.
Но для ребенка важно начать с того, что проще изучить и что можно быстрее применить на практике, чтобы почувствовать мотивацию к занятиям дальше, подробнее можно узнать на https://skysmart.ru/courses/onlajn-kursy-programmirovaniya-dlya-detej.
Python
Он идет первым в списке, потому что его синтаксис приближен к обычной человеческой речи. Код на Python во многом интуитивно понятен, ребенку будет несложно к нему адаптироваться, но не смотря на свою простоту он успешно формирует мышление программиста. Python хорош еще и тем, что в интернете можно без проблем скачать массу библиотек для любого проекта.
Ruby
Также превосходный вариант для юных новичков. Ruby прост, ребенку не придется проводить долгие часы, разбираясь, как устроен и работает его код. Это здорово, потому что, изучив всего лишь два-три скрипта, можно создать первый собственный проект. Первая версия платформы Twitter создавалась на Ruby. Это наглядно демонстрирует, какую ценность имеет язык.
Java
Этот язык сложнее предыдущих, к его изучению стоит приступить после основ более простого языка. Он существует уже двадцать лет, в свободном доступе лежат многочисленные библиотеки и уроки по его применению. Java – это своего рода переход на новый уровень, уход в профессиональное программирование. Его знание облегчает изучение всех остальных языков.
Javascript
Этот язык мы добавили не случайно, очень многие любители электроники начали программировать роботов и микроконтроллеры на этом языке. Российская компания Амперка даже выпустила свою плату — Iskra JS, которая работает именно с этим языком программирования.
Практически всё сегодня связано с компьютерами и техникой. Получение навыков программирования – это первый шаг ребенка к успешной жизни в мире, которым управляют высокие технологии и, со временем, роботы.
Слишком юный возраст – это сколько?
Наверное, самый распространённый вопрос. Сколько лет должно быть мне (или моему ребёнку), чтобы знакомиться с игровой разработкой? Ответить на него невозможно, поскольку все дети разные. На самой нижней ступени (при использовании подходящих инструментов) по-настоящему заинтересованный 6-летний новичок уже может достичь определённых успехов. На другой стороне спектра в 12 лет для этих успехов уже должно быть достаточно образовательной базы и умственных способностей. Реальный возраст получается где-то посередине.
Для начала нужно усвоить несколько критически важных вещей.
Первое – мотивация. Именно отсутствие мотивации, а не умственных способностей чаще становится преградой на пути к успеху. Если ваш ребёнок обожает творить (любить играть и любить делать игры – совсем не одно и то же) и готов к пробам и ошибкам, он идеально подходит для игровой разработки!
Второе – управление ожиданиями. Здесь мы теряем большую часть потенциальных разработчиков, независимо от возраста. Разработка игр – не самое сложное в мире занятие, но оно достаточно комплексное. Ваш ребёнок не будет в скором времени работать над масштабными современными играми, вроде Call Of Duty или NHL, не будет делать MMO-проекты. Начинать нужно с чего-то очень скромного и постепенно двигаться дальше.
Если ребёнок убеждает себя, что собирается делать новый Minecraft, его ждёт очень болезненная неудача. С другой стороны, установка «когда-нибудь я сделаю новый Minecraft» может отлично сработать
Тут очень важно понимать разницу. Как и с любым другим навыком, этот следует развивать постепенно
Попытка взяться за слишком серьёзное дело приведёт лишь к провалу и разочарованию. Для справки, сам я начал программировать лет в 8 на Atari BASIC.
Обучение для детей разного возраста: что выбрать
Теперь рассмотрим, какие активности подойдут будущим айтишникам в разных возрастах.
5 лет: от Lego к английскому и математике
5 лет — это возраст, когда дети особенно увлечены конструкторами Lego. Так, у Lego есть даже специальные курсы для детей: например, основы компьютерной грамотности или интересная инженерия для детей. Я бы добавила сюда все игры и конструкторы, связанные с моторикой и развитием мышления. И ребенку познавательно, и взрослому интересно собрать с малышом дом или космический корабль.
Лучше всего выбирать конструкторы, связанные с моторикой и развитием мышления
Также в этом возрасте можно познакомить ребенка с шахматами и изучением английского. Вообще, углубленные знания в изучении иностранного языка и математики — очень ценная инвестиция в ребенка. Чем раньше ребенок начнет изучать эти специальности — тем лучше.
10 лет: от Minecraft к знакомству с разработкой
10 лет — в этом возрасте дети активно играют в Minecraft, и это замечательно
Поэтому в 10-летнем возрасте ребенка уже можно знакомить с разработкой игр — очень примитивной, но важной составляющей его обучения
Детей можно постепенно знакомить с разработкой игр
Здесь уже можно увидеть, нравится ребенку это занятие или нет. Также можно начать изучать базовую анимацию, графический дизайн, 3D-моделирование, робототехнику и веб-программирование. Сейчас многие IT-компании практикуют дни открытых дверей, когда взрослые могут прийти на работу с детьми. Приводите детей на работу и показывайте, как устроены процессы. Это вовлечение со стороны родителей будет только плюсом для ребенка.
15 лет: технические курсы и репетитор
15 лет — время, когда подросток уже понимает, какая сфера ему по душе. Тут еще может не быть ответа на вопрос «Какую профессию ты выбрал?», но уже есть понимание базовых профессиональных предпочтений тинейджера. Совмещайте технические курсы по выбранной направленности и занятия с репетитором. Тут все зависит от финансовых возможностей родителей и местоположения курсов (иногда неудобно ездить куда-то из другого конца города), но совмещение — это идеальный вариант обучения подростка.
Совмещайте технические курсы по выбранной направленности и занятия с репетитором
Репетиторы часто дают что-то узконаправленное (математика, английский) — здесь есть возможность сфокусироваться углубленно на выбранном предмете. Курсы же имеют групповую динамику и другие преимущества — здесь много практики и сам подросток видит успехи других учеников, что добавляет конкуренции и стремления быть лучшим.
Если же курсы и репетиторство — это too much для родителей, стоит остановиться на чем-то одном.
Для младшего возраста ребенку легче сконцентрироваться на одном человеке (репетиторе), постарше — есть смысл приобщать к групповым занятиям.
Постарайтесь найти ментора или наставника по выбранной дисциплине для ребенка, который удаленно будет давать задания или встречаться с ним раз в неделю.
Можно приходить на дни открытых дверей на различных технических курсах, пользоваться возможностью посещать пробные уроки разных направлений
Еще на этом этапе важно прислушиваться к ребенку и собирать обратную связь от преподавателя. Смотрите на результаты и вовлеченность ребенка
Если вовлеченность падает, нужно понять — почему так происходит? Возможно, подросток потерял интерес к предмету и стоит переключить внимание на другое направление. И учитывать, что может быть момент, когда ребенок захочет взять время «на подумать» — и это абсолютно нормально
Когда можно начинать?
Говорят, что все индивидуально. Но многие игры предназначены для детой после 4х лет. А некоторые специалисты говорят – начинайте с двух лет! Сложно представить, но почему не попробовать? Взять легенькую игру и преодолевать шаг за шагом препятствия с ребенком. Понятно, что время надо выделить, чтобы не пересидеть у компьютера.
Игры для самых маленьких, для деток постарше – они начинают тренировать и навыки программирования, и логику, и мышление, и пр.
Дорого! Но почему бы и не купить дорогую игру, если ваше чадо просто не отлипает от программирования. Но специалисты советуют начинать с приложений подешевле.
3. Программирование — это не просто смотреть в экран, а развивать полезные навыки для работы и жизни
Любое хобби ребенка — это шанс прокачать личные качества и умения, которые пригодятся в будущей профессии. Раз уж школьникам нравится писать код, создавать приложения и придумывать, как автоматизировать рутинные процессы, — значит, сам процесс развития и обучения происходит приятнее и как бы между делом. И кстати, даже если ребенок вроде как не собирается связывать жизнь с IT, это не значит, что ему не потребуется программирование и те качества, которые развивает работа с кодом.
Тренд на автоматизацию продолжает разгоняться, появляются абсолютно новые сферы, где есть острая необходимость в разработчиках, инженерах, дизайнерах, дата-сайентистах и аналитиках. Все больше рабочих мест создают растущие компании в IoT (интернет вещей, например, умных бытовых приборов, датчиков освещенности и движения, систем охраны, климат-контроля и так далее), AR и VR (технологиях дополненной и виртуальной реальности), биотеха, эдтеха и медтеха. |
Вот навыки, которыми нужно обладать для успеха в IT и которые прокачивают детские занятия программированием:
аналитическое мышление, чтобы легче научиться писать и читать код, анализировать данные, просчитывать стратегию на несколько шагов вперед; логика, чтобы быстро выявлять корень проблемы и эффективно ее решать, когда что-то идет не так; критическое мышление, чтобы находить хорошие решения, проверять информацию, внимательно знакомиться с задачами и понимать, что конкретно нужно разработать; управление задачами и проектами, чтобы делать все для того, чтобы проект запустился в срок и работал на свою цель; планирование и тайм-менеджмент, чтобы грамотно распределять свое время и управлять нагрузкой, приоритизировать задачи, отказываться от неважного; переговоры и публичные выступления, чтобы участвовать во встречах с клиентами, выяснять их потребности и объяснять, как работает продукт; командная работа, чтобы двигаться в одном направлении с другими участниками проекта — разработчиками, аналитиками, маркетологами, дизайнерами, копирайтерами.
Программирование — фундаментальный навык
Известный автор-фантаст ХХ века Артур Кларк сказал, что «любая достаточно развитая технология неотличима от магии». Программирование действительно можно сравнить с волшебством, но только пока не научишься творить его сам.
Цитата из книги А. Г. Гайштута «Калькулятор — твой помощник и соперник в играх», 1988 год.
Если говорить серьезно, то программирование — фундаментальный навык по той простой причине, что оно заставляет мыслить абстрактно. В его основе лежат принципы анализа и синтеза, или композиции и декомпозиции — это одно и то же по своей сути. В английском языке существует понятие «computational thinking», которое можно определить как совокупность умений мыслить абстрактно, критически и разделять задачу на небольшие части. Именно этому может научить программирование, по мнению экспертов.
Но не только теория помогает в жизни и работе. Писать код для развития логического мышления — это здорово, но на этом польза не заканчивается.
Что такое программирование?
Программы управляют нашими персональными компьютерами, банковскими серверами, веб-сайтами, планшетами, смартфонами, даже стиральными машинами и лифтами. Программирование — это просто создание инструкций для компьютеров.
Самые первые программы были написаны в машинном коде — последовательности чисел в двоичной форме (состоящей из цифр 0 и 1), удобочитаемой для процессоров. Фрагмент примерной программы, добавляющий единицу к сохраненному номеру, выглядел так: 0000 0010 0000 0000 0001 0000 0011 0100.
Машина могла легко выполнить эту программу, но для человека, даже квалифицированного специалиста, расшифровка фрагмента кода, написанного таким образом, была сложной задачей, а иногда и невозможной.
Чтобы сделать кодирование более эффективным, необходимо было создать языки программирования: наборы команд, основанные на словах, а не на числах, снабженные особым синтаксисом, однозначно переводимым в машинный код. С момента появления первых компьютеров было создано множество (более 1000) языков, а с каждым годом изобретается еще больше.
Не существует «совершенного» или универсального языка, который можно было бы применять повсюду, но постоянно развивающиеся технологии вынуждают нас исследовать новые, более эффективные методы программирования. Несмотря на их множество, у этих разных языков много общего, поскольку — одна и та же программа может быть написана на разных языках программирования.
Зачем учить детей программированию?
Детские курсы программирования помогают приоткрыть завесу тайны
над тем, как создаются и работают программы. Осваивая премудрости
создания простейших учебных проектов и знакомясь с азами
разработки, дети получают хорошую базу для дальнейшего развития в
области IT. Даже если из ребенка в будущем не выйдет
высококлассного программиста, обучение на курсах разовьет навыки,
которые не раз пригодятся в жизни.
Вычислительное мышление
Занятия способствую развитию вычислительного мышления. В его
основе лежит приведение решения проблемы к такому виду, в котором
оно будет доступно для реализации компьютеру или человеку. Так,
ребенок на практике учится есть слона по кусочкам, разбивая
большую задачу на крошечные фрагменты. Помимо этого, занятия по
программированию для детей помогают «подружиться» и с другими
базовыми компонентами вычислительного мышления:
-
выделением паттернов или, говоря проще, поиском сходств
между элементами;
-
автоматизацией — представлением элементов в виде
алгоритма, позволяющего получить нужный результат;
-
абстрагированием, подразумевающим правильную
формулировку проблемы.
Умение учиться
Школа программирования для детей разовьет у маленького студента
и такой важный скилл как умение учиться, справляясь со сложностями
и ошибками. В процессе решения возникающих проблем учащиеся не
только ищут и запоминают новые сведения, но и постепенно
избавляются от страха совершить оплошность.
Креативность
Решение задач в программировании напрямую связано с созданием
чего-то нового и поиском нестандартных решений. Во время обучения
ребенок перестает быть только потребителем контента и превращается
в творца. Так, язык программирования для детей Scratch позволяет
создавать собственные анимации и игры.
Прочие плюсы обучения
Кроме вышеперечисленных умений, посещение школы
программирования дает учащимся и другие полезные бонусы,
например:
-
повышение мотивации к учебе за счет интереса к тому,
чем ребенок занимается;
-
улучшение способности к концентрации внимания;
-
прокачку логики;
-
круг общения по интересам.
Оценивая результаты своей работы и прорабатывая ошибки, дети
учатся анализировать. Умение по всем правилам провести разбор
полетов будет полезным не только в обучении другим дисциплинам, но
и в обычной жизни.
Что изучать и какой язык программирования выбрать
Сразу хочется сказать — не стоит учить детей высокоуровневым языкам программирования. Для понимания, тот же C++ требует четкого осознания ООП (объектно-ориентированного программирования), которое часто не способны понять даже взрослые программисты. А в JavaScript тонут даже студенты 4-го курса, которые на его изучение потратили несколько лет.
Также обязательным будет изучение английского языка, т. к. он используется в абсолютном большинстве языков программирования. Конечно, можно просто научить ребенка командам, терминам и их применению в конкретном языке программирования. Но, во-первых, тогда он будет привязан только к одному языку программирования и никогда не сможет стать Senior. Во-вторых, гайды, обучающие материалы и форумы в основном на английском языке. А без их регулярного изучения и просмотра стать хорошим программистом будет очень сложно.
Для дошкольников хороший вариант — ScratchJr. Для школьников подойдет продвинутый Scratch или Minecraft. В средней школе уже можно приступать к изучению языков программирования. Лучшим выбором будет Pascal. Но сейчас он отходит на второй план, и все чаще школьников сразу обучают работать с Python. Тут уже нужно посмотреть, какой язык программирования нравится вашему ребенку. В целом оба они задают нужный базис.
Минусы Scratch
Scratch не учит реальному программированию. Задача этого инструмента заключается в том, чтобы развить навыки алгоритмического мышления в подходящей для детей форме — играючи. К слову, не только детям этот навык пригодится в жизни 🙂 Если ваша цель это привить ребенку реальные навыки программирования, постарайтесь как можно раньше осуществить переход от визуального программирования в непосредственный процесс кодирования с использованием одного из реальных языков программирования. Например, Python является хорошим выбором. Несомненно с этим переходом может быть связано некоторое разочарование со стороны ребенка. Причина в том, что оба процесса значительно отличаются друг от друга. Книга Teach Your Kids To Code сглаживает переход путём ввода элементов игры в процесс кодирования.
Процесс обучения это всегда увлекательно. Даже побывав по ту сторону баррикад, приобретаешь массу новых впечатлений, знаний и эмоций. Особенно радостно становится, когда дети погружаются в среду и начинают самостоятельно экспериментировать и создавать объекты, опираясь на собственное воображение.
Их нужно учить делать что-то реально полезное
Я понял, что есть много способов создавать что-то реальное, и это совсем не написание программ с красивым графическим интерфейсом, обучение их структурами данных и т.д.
Я решил, что лучше всего использовать аппаратное оборудование, чтобы ученики могли физически увидеть, что они программируют. Мой выбор пал на Raspberry Pi и Arduino.
Raspberry Pi — это миниатюрный компьютер, на который установлена специальная версия Linux, а также он может работать с большинством языков программирования. Вы можете приобрести различные периферийные устройства, которые могут управляться с помощью созданного вами программного обеспечения.
Arduino сложнее. Это платформа аппаратного обеспечения с открытой спецификацией, и многие компании создают различные устройства, например, автомобиль с автоматической системой управления или четвероногий робот.
Smart Car we built using Arduino.
При помощи Raspberry Pi мы построили метеостанцию, которая определяет температуру и давление в окружающей среде и отправляет эти данные в облачную базу данных. После этого ученики могли видеть данные по погоде благодаря обновляющемуся графику. Также в рамках этого проекта мы создали простейшие функции, например, меняющиеся единицы измерения температуры или обнаружение минимальной, максимальной и средней температуры. Эти занятия помогли ученикам изучить простые структуры данных и алгоритмы, такие как потоки и сортировка.
После этого мы создали автомобиль с автоматической системой управления на базе Arduino. Каждый ученик написал программу, которая позволяла машине двигаться и обнаруживать препятствия. Затем мы построили лабиринт и я назначил приз тому ученику, чья машина первой выберется из этого лабиринта.
Также мы выполнили несколько упражнений, чтобы понять основы взлома. Так же, как и на LeetCode, где участникам помогают решить проблемы с собеседованиями, существует много способов обучить детей основам взлома. Например, HackThis — отличный сайт, который предлагает вам ряд задач, который вы можете просмотреть и решить в вашем браузере. Для решения вам придется использовать инструменты вашего браузера, например инструменты разработчика Chrome, чтобы найти уязвимости, использовав которые, вы сможете получить доступ к системе.
Когда они будут более подготовлены и изучат основы Linux, я планирую научить их взламывать при помощи Kali Linux. Думаю, это им понравится ещё больше.
Отвлечение от непродуктивных занятий
Социальные сети пользуются огромной популярностью. В жизни современных детей они занимают огромное место. Однако это непродуктивные занятия, как и многочасовые игры на компьютере. Нельзя ограничивать досуг только интернетом и просмотрами фильмов. Нужно расширять кругозор и получать обширные знания. Этому может поспособствовать школа робототехники и программирования для детей.
Знания из разных областей
Занимаясь в кружке, ребенок получит знания из различных сфер:
- Физика. Однако это будут не примитивные школьные опыты и скучные формулы, а применение законов на практике
- Математика. Дети не станут зубрить аксиомы с теоремами. Они будут вести реальные расчеты, помогающие получить работающее изобретение
- Проектирование, программирование. Только реальная практика, а не сухая теория
Опытные школьные педагоги всегда отмечают, что самое скучное для школьников – что-то учить. Просто так. В кружках робототехники они увидят результат того, что изучали. Дети получают наглядный пример! Поэтому ребенок развивается разносторонне, гармонично и у него не будет проблем с точными науками.
Работа в команде
Чуть выше мы уже говорили о соцсетях и их популярности. Однако они снижают у детей и подростков коммуникативные навыки и умения командной работы. А ведь при трудоустройстве важным аспектом является коммуникация. Поэтому возможны проблемы в будущем при реальном общении.
Занимаясь в кружках роботехники, можно научиться:
- Работать вместе с другими людьми
- Быть членом одной команды
- Находить оригинальные решения
- Выходить из сложных ситуаций
- Брать ответственность за себя и проект
Кроме того, серьезное увлечение роботехникой – это отличные перспективы в будущем
Закончив школу, можно легко поступить в технические ВУЗы, создав технику, — привлечь внимание солидных компаний
Школа Roboschool
Теперь посмотрим, чему учит детей и подростков в СПб школа программирования на Scratch, Python, Minecraft и робототехники Робоскул.
В школе создаются группы. Численность детей не превышает 12 человек. Ребята обучаются в классах, оснащенных необходимым оборудованием для качественной подготовки. К услугам детей:
- Интерактивные доски
- Ноутбуки
- Видеопроекторы
- Конструкторы
- Первоклассные учебники и учебная программа
Поэтому дети быстро и хорошо усваивают материал, применяя знания на практике. Опытные преподаватели способны быстро найти подход к детям, применяя в обучении игровые и интерактивные методы.
В школе дети изучают законы математики/физики на практике и основы:
- Роботехники
- Программирования
- Моделирования
Стоимость обучения зависит от конкретного курса (смотрите ниже). Диапазон цен колеблется в пределах 2 800 — 4 500 рублей. Количество занятий от 16.
Первый урок полноценный (60 минут), но носит ознакомительный характер. Родители могут не платить. Занятие пройдет в онлайн режиме. За это время ребенок сможет собрать первого робота либо создаст полноценную программу!
Преподаватели на первом пробном бесплатном уроке:
- Расскажут о профессиях, которые можно освоить в школе
- Оценят навыки детей в сфере робототехники/программирования
- Подберут им оптимальный курс обучения
- Совместно с учеником создадут робота/игру либо напишут программу
Для проведения первого урока надо оставить заявку на сайте Roboschool Pro. Менеджер компании позвонит и можно будет договориться о времени проведения первого урока.
Курсы школы Roboschool и их стоимость
Roboschool предлагает в СПб обучение для детей и подростков в возрасте 5-17 лет.
Начиная с 10 лет и до завершения школы (17 лет), разрешается совершенствоваться на курсах Python.
Надо отметить, что занятия могут проводиться как дистанционно, так и в офисах компании.
Заключение или преимущества школы Робоскул
Подведем итог и соберем вместе преимущества школы Робоскул:
- Первое занятие бесплатное
- С детского возраста можно получить неплохие знания по программированию и робототехнике
- Уроки могут быть в классах и в онлайн режиме
- Много практических занятий
- Развитие коммуникативных навыков и умения работать в команде
- Качественно оборудованные помещения
- Опытные преподаватели
Этап 1. Общий ознакомительный
Для начала покажите ребенку «классический» софт от Microsoft Office и других известных разработчиков:
- MS Word — оформление текста.
- MS Excel — электронные таблицы и формулы.
- MS PowerPoint — создание интерактивных презентаций (с триггерами).
- Графические редакторы (от стандартного Paint до Adobe Photoshop) и и прочие вспомогательные программы.
Создайте документы (файлы) в этих программах и поюзайте («юзать», комп. жарг. — использовать, применять, пользоваться) с ребенком интерфейс этих программ. Пусть ребенок прочувствует хорошо созданные программы и общие подходы и требования к интерфейсу программного обеспечения (под Windows).
Как программирование улучшает креативное мышление
Креативное мышление можно (и даже нужно) поддерживать и развивать. В идеале, сидя за компьютером ребенок должен не только проводить время в играх, потреблять информацию, но и развиваться в творческих аспектах. С этим хорошо помогают инструменты для программирования как, например, Scratch, Kodu или Alice, есть много интересных программ для изучения, например майнкрафт курсы для детей по программированию.
Перечисленные утилиты позволяют создавать художественные проекты, простые игры и анимации. Кодинг помогает раскрывать личность ребенка, развивать его творческие навыки.
Что такое программирование?
Итак, когда речь идёт об игровой разработке, скорее всего имеется в виду программирование. Что это такое? Проще всего сказать, что это искусство объяснять компьютеру, что он должен делать. В контексте разработки игр это значит делать вещи, вроде «если игрок нажимает кнопку «вверх», сделать то» или «если здоровье падает до нуля, сделать это».
Как вам программировать игры – это уже вопрос непростой, и с ним вам предстоит помучиться. Ещё важнее понимать, что здесь всё зависит от вашего ребёнка. Все мы думаем по-разному и по-разному выражаем свои идеи. Кто-то может выбрать стиль, совершенно непривлекательный для другого.
По большому счёту, существует три способа говорить компьютеру, что делать (зачастую дело сводится к их комбинации):
Визуальное программирование
Распространённый подход среди новичков, да и среди разработчиков вообще (к примеру, в популярном коммерческом движке Unreal Engine 4 есть интерфейс визуального программирования Blueprints). Вы формируете игровой экран, перетаскивая элементы, впоследствии связывая их подобием блок-схемы. Если ваш ребёнок мыслит визуальными образами, это лучший выбор.
Construct – один из инструментов визуальной разработки игр
Скриптовые языки
Здесь вы объясняете компьютеру задачу с помощью небольших текстовых файлов. Зачастую вы всё равно пользуетесь визуальным редактором, как на картинке выше, но даёте компьютеру понять, что нужно делать, не заполняя текстовые поля и не выстраивая схемы, а с помощью кода.
Пример скриптового языка LUA в библиотеке LÖVE
Этот кусочек текста указывает компьютеру загрузить изображение «whale.png» и вывести его на экран.
Традиционные языки программирования
Наконец, многие игры пишутся на традиционных языках: C++, Java, C# и других. Сразу скажу прямо, что не советую юным игроделам начинать с традиционных, или, если точнее, компилируемых языков по ряду причин.
Главный вопрос, который может у вас возникнуть: чем отличаются скриптовые и компилируемые языки? В основном различия касаются технических подробностей, выходящих за пределы данной статьи, но в целом всё сводится к комплексности. Работа с компилируемым языком затрагивает множество вещей, о которых не нужно думать в скриптовых языках: компиляция (превращение написанного вами текста во что-то, понятное компьютеру), линковка (тут в двух словах и не объяснить) и многое другое.
Более важным различием выступает назначение. Скриптовые языки в основном направлены на решение конкретных задач для упрощения жизни разработчика. Если вкратце, скриптовые языки гораздо проще в изучении и использовании.
В конечном итоге вы часто будете встречать средства разработки, совмещающие визуальное программирование и скриптовые языки.
Scratch Junior и Scratch от MIT Media Lab
Другой популярной средой для изучения программирования для детей от 6–8 лет является Scratch. Для дошкольников мы предлагаем начать изучение со Scratch Junior, для ребят 8–12 лет – приступить к программированию на Scratch.
На основе Scratch ребенок сможет начать программировать алгоритмы движения персонажей, создавать игры, в которые могут сыграть сразу несколько игроков и даже поучаствовать в международных соревнованиях по разработке игр на популярном движке.
В визуальной среде Scratch, как и в Kodu Game Lab, используется конструктор для создания алгоритма движения персонажей в игре.
Если в Scratch Junior код выглядит как последовательность действий в виде картинок, то в Scratch алгоритм уже более сложный и выглядит в виде пазла с описанием действий.
В обоих версиях Scratch есть удобное рабочее окно для создания новых объектов, а также привычные инструменты в виде графического редактора с функциями Paint, с помощью которого удобно рисовать спрайты и фон.
Рабочее окно с кодом-алгоритмом в Scratch Junior
Рабочее окно с кодом-алгоритмом в Scratch
Графический редактор в Scratch
Визуальное программирование
Этот вид разработки является очень простым для изучения, поэтому часто применяется на практике для обучения детей. Здесь не нужно писать код. Приложения создаются при помощи манипуляций с графическими объектами. Существует некоторый набор правил, которым нужно следовать при этом.
Одним из ярких примеров является нотация UML, которая в графическом виде позволяет построить программные модели и сгенерировать уже рабочий продукт
Главное внимание уделяется логике и алгоритму работы
Большая часть современных сред разработки включает возможность создания форм и размещения на них объектов. Это визуально представляет все данные и дает возможность наглядно изучить свойство каждого элемента.
Конкуренция как инструмент обучения
И наконец, последнее, что я понял: подростки очень любят соревноваться. Им нравятся упражнения, после которых им сразу дают обратную связь: объявляют счет, дают значки достижений или формируют списки лидеров.
Лучшей платформой, которая мотивирует учеников, по моему мнения, является CodingGame. На ней подростки решают задачи по программированию и повышают свой уровень. Также стоит отметить отличную визуальную составляющую упражнений, что удерживает к ним интерес учеников.
Также мы начинали занятие, уделяя немного времени Clash of Code — быстрой 5-минутной задачке по программированию, в решении которой ученики соревновались с другими ребятами онлайн. И иногда мои ребята опережали игроков, чей уровень был выше, чем у них. Это давало им огромный толчок, чтобы начать очередное занятие по программированию.
Используйте все возможные ресурсы
Самый эффективный способ научить детей кодить — записать их на курсы. Но если такой возможности нет, то отчаиваться не нужно. Существует много бесплатных ресурсов, по которым можно освоить программирование. Есть различные учебники, сайты, видеоуроки, которые помогают как новичкам, так и продвинутым ребятам. Вы можете ознакомиться с лучшими пособиями для юных программистов в блоге школы программирования “Пиксель”.
Также “Пиксель” регулярно публикует полезные видео о программировании на YouTube. Педагоги в доступной для детей форме рассказывают, как делать игры в Scratch, дают подробные онлайн-уроки программирования в Unity 3D, помогают разобраться в сложных вопросах и знакомят с азами программирования на разных языках.
Вот так происходит процесс обучения:
https://www.youtube.com/embed/Vc8moYRG-bE
IDE, библиотека, что???
Ладно, это последний вводный момент. В тексте будет много не самых понятных терминов и выражений, так что я вкратце их поясню.
Язык. Имеется в виду язык программирования. Мы общаемся между собой на разных языках, и с компьютером тоже можно говорить на разных. На примере выше показан язык Lua.
IDE. Интегрированная среда разработки (Integrated Development Environment) – приложение, отвечающее сразу за множество задач. Не все описанные программы включают IDE, то есть для разных работ вам может понадобиться разный софт. Обычно среда разработки содержит текстовый редактор, язык программирования и ряд других инструментов.
Библиотека. Представьте, что это некто, делающий за вас кучу работы. Как правило, даже «простые вещи», вроде вывода на экран, не являются частью языка. Эти вещи создают другие люди, делая их доступными в виде библиотек. В некоторых случаях (в GameMaker или Construct) всё это уже собрано для вас воедино. В Lua, к примеру, вам требуется самому выбирать библиотеку. У каждого подхода есть свои плюсы и минусы. Gamemaker многое упрощает для начинающих, зато Lua позволяет сменить библиотеку на более удобную.
Спрайт. Это используемая в игре графика, например, персонаж игрока. Спрайт может быть картинкой или содержать множество анимаций. Точное значение спрайта в каждом движке своё, но в игре это всегда видимый движущийся объект. В Super Mario Brothers это Марио, черепахи, огненные шары и т.д. Сам мир при этом – небо, трубы и прочее – не обязательно состоит из спрайтов.
HTML 5. Здесь не всё может быть понятно сразу. HTML 5 – это последняя версия HTML, языка разметки веб-страниц. При загрузке сайта в браузере компьютера или телефона вы видите HTML-документ. Но HTML5 – это ещё и обобщённый термин для множества технологий, на которых держится работа веб-сайтов. Сюда входит сам HTML, CSS (ещё один язык, определяющий внешний вид страниц) и JavaScript, скриптовый язык, отвечающий за логику. Люди часто пользуются HTML, HTML5 и JavaScript как взаимозаменяемыми понятиями, хотя технически это не совсем верно. HTML5 может использоваться для создания игр, и с ним не обязательно работать в самом браузере.
Отладчик. Когда игра не работает, как надо, бывает непросто выяснить, почему. В некоторых пакетах для этого существует так называемый отладчик, средство для выявления проблем или «багов». Для новичков это довольно продвинутый инструмент, но когда в нём возникает необходимость, отладчик нельзя переоценить.