Как увлечь детей программированием. Этап 4
Если вы - не программисты, но детей на эту стезю направить хотите, то этот цикл статей - для вас.
Предыдущие части:
Как увлечь детей программированием. Этап 1
Как увлечь детей программированием. Этап 2
Как увлечь детей программированием. Этап 3
Цель этапа - отвлечься от паззликов и начать осваивать настоящее программирование на настоящем языке программирования "Python"
(он же "питон", он же "пайтон", называйте как хотите). Освоить синтаксис языка, его основные конструкции (циклы там и прочая лабуда). Набить руку в Редакторе программ (это по сути обычный текстовый редактор, но с некоторыми дополнительными удобствами).
Пока что будем это делать в максимально игровой форме. Нам поможет этот чудный сайт: https://codecombat.com/play
(тоже первым делом меняем язык на русский, нажав синюю кнопку внизу).
Это самая настоящая игра, с Героем и Злодеями, с Локациями и Заданиями, с зарабатыванием баллов и покупкой амуниции:
Отличие только в том, что "герой" (объект "Hero") управляется не мышкой, а управляется командами на настоящем языке Python.
Вот пример задания (при открытии задания, текст программы обычно уже частично написан, для затравки):
Python – хороший и красивый язык программирования, его особенность в том, что никаких фигурных скобок для выделения блоков команд не нужно, все вложенные блоки выделяются только отступами в четыре пробела (и глазу красиво, и компьютеру понятно!).
Например, тот наш пример из первого занятия:
на языке Python будет выглядеть так:
Красиво, да?
Итак, пишем программу на Питоне, играючи.
Подсказок в игре очень много, все на русском. И задание подробно разжуют, и всегда доступна подсказка. И в тексте программы заранее рассыпали кучу поясняющих комментариев (в Питоне комментарием считается строка, которая начинается с символа "#"). И в редакторе всякими синими прямоугольниками подсказывают, как именно нужно оформить вложенный блок команд. И слева от редактора перечислен доступный на данном уровне набор команд, щёлкаешь по ним – выводится подробное описание. Но это не паззлики, их мышкой не перетянешь – чаду придётся писать команды руками. Увы, они все на английском языке. Но они очень простые, например "hero.moveRight()" – всего три простых английских слова… чадо понахватается немного английской лексики, разве плохо?
Зато редактор, в котором вводится текст программы – вполне себе полноценный редактор для программистов, например он помечает ошибки, и раскрашивает для наглядности текст программы, а самое главное – по мере ввода буковок он вываливает выпадайку, где перечислены все возможные продолжения ввода, то есть продолжать вводить чуждые английские буковки уже не нужно – нужно просто выбрать нужный вариант в выпадайке:
Итак, подсказок море, все на русском. Проблема только в том, что чаду скучно и лениво их читать, оно махом закрывает все мешающие подсказки, и начинает подбирать нужные команды в своём прямолинейном детском стиле (то есть методом ненаучного тыка…)
Пожалуй, придётся вам ему помогать. Нет, не лупить по рукам, заставляя читать подсказки. А придётся самому их читать, и потом дозированно подбрасывать полученные из них знания чаду, по мере его затруднений. Это вам вполне по силам, вот например пример такой подсказки:
Ещё неплохо чаду пояснить, что такое "методы" и почему команда так чудно выглядит – с точкой после "hero". Здесь "hero" – это объект, поведение которого мы программируем. Что-то типа спрайтов в Scratch-е, который мы использовали на прежнем этапе. И этих объектов может быть много, а программа у нас одна общая – поэтому к действиям, которые умеет выполнять объект, принято обращаться в полном виде, через точку: "объект.метод". Чтобы точно было видно, к какому объекту мы обращаемся, и какое его действие выполняем.
Вот така игра, малята...
В идеале, чадо увлечётся самим игровым процессом, даже не замечая, что по ходу дела пишет настоящие питоновские программы (ну вот такое неудобное управление у игры сделали, но разве когда-то это останавливало игромана, да?).
В игре многие локации заблокированы (нужна оплата), но и бесплатных локаций вполне достаточно, чтобы добиться тех целей, которые мы поставили на этом этапе.
Следующим этапом уже опишу, как чаду установить на компьютер настоящий Редактор Программиста, и дам пример первой настоящей программы.