Игровые методы при обучении программированию

Разделы: Информатика, Внеклассная работа


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

Как правило, традиционная методика обучения программированию в школах, сложившаяся к настоящему времени (вернее сказать, мы вернулись к старому), заключается прежде всего в том, что учащиеся знакомятся сначала с теоретическими основами программирования, а затем им предлагается написать программу, используя полученные теоретические знания по конкретному языку программирования. Конечно, существует мнение, что хорошему программисту не нужен компьютер вообще, а только ручка и бумага, но дети не готовы к таким «подвигам» - им важен не столько процесс, сколько результат. Хотя, как правило, в учебниках описаны задачи вычислительного типа, которые также не представляют никакого интереса для учащихся и воспринимаются ими как повинность.

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

Первый момент состоит в том, что язык программирования не дается сначала в полном теоретическом объеме, а берется конкретная задача и объясняются лишь те элементы языка, которые необходимы для ее решения. Постепенно работа усложняется, и при написании очередной программы даются новые знания о языке программирования, которые необходимы для решения более сложной задачи. Таким образом, обучение идет от простого к сложному на конкретных задачах по программированию. Такой подход снимает также психологическую нагрузку у детей, связанную со знакомством с новым предметом. Ребенок чувствует себя увереннее, сразу получая результат своей работы. При усложнении задач возникает потребность в использовании переменных, различных операторов, процедур и т. д.; все это объясняется детям после обсуждения алгоритма решения задачи. Так у учеников постепенно накапливаются знания о программировании, которые тут же закрепляются на конкретной задаче. Усложняется задача - расширяются знания.

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

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

Концепция «программирования из кубиков» методом «перетаскивания» (drag-n-drop) используется в ряде образовательных сред программирования, одной из самых популярных является Game Maker со встроенным языком программирования GML.

Game Maker — один из самых известных конструкторов игр. Создавать игры в нём достаточно просто, так как не требуется предварительного знакомства с каким-либо из языков программирования.

Игра в Game Maker строится как набор игровых объектов, поведение которых задаётся путём программирования реакции на события. Программировать можно, используя графическое представление программ (близкое к блок-схемам) в режиме drag-n-drop. Имеется в нём и скриптовый язык GML, похожий на JavaScript.

Game Maker является условно-бесплатной программой, поэтому бесплатная версия ограничена в функциональности, а при запуске откомпилированных в ней игр показывает логотип программы. Официальный сайт - www.yoyogames.com/make/.

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

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

Как же можно управлять уровнем мотивации? Оказывается, на уровень мотивации очень сильно влияет трудность решаемых задач. Действительно, при слабой мотивации обучаемому необходимо давать не слишком сложные задачи, способные укрепить в нем веру в свои силы и таким образом увеличить мотивацию. Слишком трудная задача на этом этапе обучения способна отбить у ученика желание заниматься предметом и свести к нулю даже тот незначительный интерес, который изначально был. При слишком сильной мотивации также следует избегать трудных заданий, т.к. неудача в этом случае может перерасти в трагедию и нанести слишком серьезную психологическую травму. Определить тот самый средний - оптимальный для данного ученика уровень заинтересованности всегда считалось искусством педагога. Зависимость мотивации от трудности решаемых задач и способы влияния на уровень мотивации путем подбора задач определенной трудности были детально исследованы в начале 20 века (1908 год) и получили название закона Йеркса-Додсона. Законом Йеркса-Додсона в психологии называют зависимость наилучших результатов от средней интенсивности мотивации. Существует определенная граница, за которой дальнейшее увеличение мотивации приводит к ухудшению результатов.

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

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

Конечно, не всякие игры пригодны для обучения. Например, вряд ли окажется полезной известная игра РАС-MAN. Но это тоже только на первый взгляд, так как даже из такой бессмысленной игры можно извлечь пользу. Во-первых, с ее помощью научиться создавать простейшие игры. Во-вторых, можно подкорректировать геймплей так, чтобы игра стала обучающей. Например, съедать только гласные буквы (изучая алфавит) или что-то другое. Тут нет предела фантазии учащихся и педагогов. Кажутся бесполезными, скучными и однообразными игры, которые в последнее время наводнили литературу и называются дидактическими. Примером одной из таких игр может служить игра "Попади в цель". Играющий, зная расстояние до цели, начальную скорость снаряда и т.д., должен рассчитать угол наклона орудия и проверить по известной формуле, попадает ли он в цель. Конечно, если вам удастся заставить ребенка играть в эту игру, то формулу он при этом запомнит, но эффект достигнут не будет. Должно быть разумное сочетание интереса и пользы. Только в этом случае создание игр не только обучит ученика программированию, но и поможет ему в других предметах. По большому счету игра должна быть еще и созидательной. Созидательная игра - это игра, в которой играющий человек должен создать некий материальный продукт (компьютерную программу, электронную схему и т.д.), а уже этот продукт собственно играет, т.е. человек играет опосредованно, через неодушевленного, созданного им игрока.

Программирование, как никакой другой предмет, может быть удачным как для индивидуального обучения, так и для работы в команде. Создание игр, как начала обучения программированию, также может быть индивидуальным или командным. Очень важно, чтобы результат работы был сразу виден и чтобы оценить творение мог не только учитель, но и друзья и даже другие коллеги - программисты со всего мира. Например, существует множество сайтов по всему миру, которые объединяют тех, кто создает свои работы с помощью Game Maker. На этих сайтах можно и «других посмотреть, и себя показать», спросить совета или самому кому-то помочь.

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

Для того чтобы помочь своим ученикам разобраться в Game Maker, я перевела с английского учебник «The Game Maker’s Apprentice Game Development for Beginners» авторов Jacob Habgood и Mark Overmars. Это помогло моим юным программистам от простого перейти к сложному и от примитивных игр перейти к учебным. Например, мой ученик Алексей Киселев создал графический исполнитель ГРИС, который описан в учебнике информатики для 9 класса под ред. И.Г. Семакина. Кроме того, им же была создана программа по физике, иллюстрирующая абсолютно упругий и неупругий удары. Таким образом, учебная игра помогает не только своему создателю научиться программировать, но и другим ученикам в изучении разнообразных предметов школьного курса.

Одно время считалось, что программирование – удел профессионалов и в школьном курсе информатики для него нет места, но с введением ЕГЭ, где практически треть заданий так или иначе связана с алгоритмизацией и программированием, этот раздел снова уверенно занимает свои позиции. Безусловно, подготовку к ЕГЭ следует начинать с 5 класса, а игровое программирование помогает ученикам разобраться в таком сложном разделе программы, как «Алгоритмизация и программирование». Игра мотивирует ребенка, доставляет ему удовольствие, поэтому можно вывести незамысловатую формулу успеха: игра + знания = успех.