Игровые задачи как мотивация к изучению программирования

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 21.01.2018
Размер файла 18,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Игровые задачи как мотивация к изучению программирования

Дмитриев Владислав Леонидович

Аннотация

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

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

Дело в том, что обучение программированию чаще всего ведется с использованием языка программирования Pascal. Можно предположить, что это связано с рядом следующих факторов:

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

· широкое распространение получили Pascal ABC и Free Pascal, которые ориентированы на школьников и студентов младших курсов (среды используют целый ряд упрощений, способствующих рассмотрению и изучению более сложных конструкций даже на начальных этапах обучения);

· язык программирования Pascal все еще остается базовым в большинстве педагогических университетов нашей страны, а значит, учителя информатики в своем большинстве владеют основами программирования именно на языке Pascal;

· после изучения основ программирования необходим переход к рассмотрению возможностей визуальных языков программирования, и в данном случае переход от Pascal к Delphi (или его бесплатному аналогу Lazarus) для многих является наиболее приемлемым [2].

Очень хорошим способом мотивировки изучения программирования является идея использования заданий, вызывающих наибольший интерес при работе с компьютером. Как правило, в качестве таких заданий выступают всевозможные задачи на разработку компьютерных игр [3] (в том числе задачи на разработку игровых тестирующих программ [4]) или задачи, решение которых важно в плане развития современных технологий [5]. В этом случае в процессе обучения активно развиваются аналитическое, абстрактное и конструктивное мышление [6], способность к достижению цели, а элемент творчества является важнейшим компонентом для обеспечения мотивации обучающихся. Следует также отметить, что кроме традиционных конструкций структурного программирования в процессе работы над игровым проектом всегда присутствует возможность с достаточно высокой степенью наглядности освоить и воплотить принципы объектно-ориентированного программирования [7].

Конечно, научиться программированию достаточно сложно. Нужно уметь писать программы, ясно мыслить, логически думать и быть терпеливым. Но все-таки, как и в любом деле, здесь главное практика. Хорошим программистам всегда мало знаний, они всегда ищут чего-то нового, новые пути, новые загадки. Недаром многие талантливые программисты, учась на собственных ошибках, были «самоучками». Как говорил известный американский журналист, написавший серию книг об информационных технологиях, Стивен Леви, программирование -- это искусство. Совершенство достигается лишь тогда, когда программа, выполняющая свою функцию, занимает всего несколько строк; когда одна программа может делать то, чего не может делать другая.

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

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

Рассмотрим некоторые задачи, которые можно использовать при изучении программированию. Одна из таких задач рассмотрена в работе [3], и носит название «Лабиринт». Игра включает в себя противостояние игрока и некоторого противника (монстра) в пределах заданного лабиринта. Игрок и монстр перемещаются по лабиринту, задача игрока -- дойти до выхода из лабиринта и не попасться при этом монстру. При перемещении игрок может как разбивать стены лабиринта, так и возводить новые (при наличии необходимых бонусов). На каждый шаг при перемещении игрок тратит определенное значение энергии, которая может восстанавливаться посредством ее сбора в лабиринте. Разумное поведение монстра в игре достигается благодаря использованию волнового алгоритма. При реализации игры предлагается разбить ее реализацию на 5 этапов, на каждом из которых происходит усложнение игрового процесса и частичное переписывание уже имеющегося кода.

Также в процессе обучения программированию можно использовать следующие игровые задачи.

Задача 1. Клавиатурный тренажер для начинающих. Пользователю предлагается нажимать клавиши на клавиатуре, соответствующие показываемому на экране символу. Время работы ограничено следующим образом. Изображен капающий водопроводный кран, под которым расположена емкость (например, стакан). Каждая капля приводит к некоторому увеличению воды в емкости. Когда емкость заполняется, выводятся результаты работы: количество правильно набранных символов. Можно предусмотреть изменение времени работы (чаще или реже падает очередная капля воды, например); набора символов; типа тренажера -- ввод только символов, или набор целых предложений (в этом случае будет вестись подсчет не правильно набранных символов и статистика набора -- например, средняя скорость набора, относительная частота появления ошибки и т.д.).

Задача 2. Написать программу-игру, развивающую внимание. Основное окно программы содержит поле, разбитое на заданное количество ячеек, каждая из которых содержит какой-либо рисунок. С левой стороны (например) этого поля (ячейка-задание) в начале игры отображается один из рисунков, расположенных в ячейках. Смысл игры заключается в том, чтобы как можно быстрее найти рисунок, отображающийся в ячейке-задании, в поле с ячейками. Как только рисунок найден, по нему осуществляется щелчок кнопкой мыши, и, если это правильный выбор, рисунок в поле исчезает, открывая расположенный за ним фон, а рисунок в ячейке-задании заменяется другим, и т.д. Игра проходит на лучшее время, результаты фиксируются в таблице рекордов. Смена рисунков в поле и порядок появления рисунков в ячейке-задании полностью случаен. Можно предусмотреть случай, когда в ячейках поля могут располагаться одинаковые рисунки.

Задача 3. По полю заданного размера могут перемещаться одна или две мухи, по которым нужно попасть мухобойкой [8]. В игре можно предусмотреть два варианта ее ведения: а) игрок должен «прихлопнуть» мух поодиночке; б) необходимо «прихлопнуть» сразу двух мух. За перемещения каждой из мух отвечают по две матрицы: первая хранит точки перемещения мухи (порядок смены ее положений в пространстве), вторая содержит информацию о том, с какими скоростями выполняется перемещение мухи от одной точки к другой. Числа в каждой из матриц перемещений не должны повторяться, так как их последовательность означает последовательность точек, в которые попадает муха при движении. Матрицы скоростей могут содержать повторяющиеся числа, т.к. они задают скорости движения мух от одной точки перемещения до другой. После того, как муха достигла конечной точки в матрице перемещений, процесс замыкается на первоначальную позицию мухи, и перемещения повторяются (можно, конечно, выполнить генерацию новой матрицы перемещений и матрицы скоростей). Если после удара по мухе (или мухам) игрок промахивается, то муха (каждая из мух) изменяет (изменяют) свое движение по правилу: берется точка матрицы перемещений, над которой в данный момент находится муха, и далее муха следует по направлению из нее к следующей по номеру точке со скоростью, соответствующей данной точке.

Задача 4. Пусть имеется поле размером NЧM, состоящее из ячеек [8]. Размеры поля задаются в настройках программы. Первоначально поле содержит ячейки только одного цвета А. Каждая из ячеек может также быть закрашена цветом В. Игра заключается в следующем. Если на некоторую ячейку наведена мышка и нажата левая ее кнопка, то, если ячейка имела цвет А, ее цвет становится В, и наоборот (если ячейка имела цвет В, то он заменяется на цвет А). По тому же правилу изменяются цвета ячеек, находящихся слева и справа от данной ячейки, а также находящиеся сверху и снизу от нее. Игра завершается, когда все ячейки поля перекрашиваются в цвет В. В игре нужно реализовать подсчет очков, набранных игроком, основываясь на подсчете количества шагов, совершенных им до завершения игры и предусмотреть сохранение результатов в таблице рекордов.

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

Список литературы

1. Окулов С.М. Программирование в алгоритмах. - М.: БИНОМ. Лабора-тория знаний, 2002. - 341 с.

2. Поляков К.Ю., Еремин Е.А. Информатика. Углубленный уровень: учеб-ник для 11 класса: в 2 ч., ч. 2. - М.: «БИНОМ. Лаборатория знаний», 2013. - 304 с.

3. Дмитриев В.Л. Поэтапная разработка программы в среде Turbo Pascal на примере поиска пути с использованием волнового алгоритма // Информатика и образование. - 2013. - № 8. - С. 29-33.

4. Дмитриев В.Л. Тестирование в игровой форме как способ проверки усвоения учебного материала // Информатика в школе. - 2012. - № 10 (83). - С. 41-43.

5. Дмитриев В.Л. Опыт отбора задач для активизации интереса школьников к изучению программирования // Информатика в школе. - 2015. - № 4 (107). - С. 51-54.

6. Дмитриев В.Л., Ахмадеева Р.З. Развитие конструктивного мышления при изучении программирования // Информатика и образование. - 2009. - № 2. - С. 69-73.

7. Дмитриев В.Л. Развитие представлений об объектном программировании на примере разработки объектов в среде программирования Turbo Pascal // Информатика в школе. - 2014. - № 2 (95). - С. 54-59.

8. Дмитриев В.Л. Игровые проекты как средство повышения мотивации к изучению программирования // СМАЛЬТА. - 2014. - № 4. - С. 89-92.

Размещено на Allbest.ru

...

Подобные документы

  • Особенности задач линейного программирования. Симплексный метод решения задач линейного программирования. Обоснование выбора языка, инструментария программирования, перечень идентификаторов и блок-схема алгоритма. Логическая схема работы программы.

    дипломная работа [2,4 M], добавлен 13.08.2011

  • Предмет, постановка и особенности задач дискретного программирования. Задачи с неделимостями и с разрывными целевыми функциями. Экстремальные комбинаторные задачи. Примеры решений задач дискретного программирования методом ветвей и границ, методом Гомори.

    курсовая работа [211,3 K], добавлен 22.05.2013

  • Постановка задачи линейного программирования и формы ее записи. Понятие и методика нахождения оптимального решения. Порядок приведения задач к каноническому виду. Механизмы решения задач линейного программирования аналитическим и графическим способами.

    методичка [366,8 K], добавлен 16.01.2010

  • Теоретическая основа линейного программирования. Задачи линейного программирования, методы решения. Анализ оптимального решения. Решение одноиндексной задачи линейного программирования. Постановка задачи и ввод данных. Построение модели и этапы решения.

    курсовая работа [132,0 K], добавлен 09.12.2008

  • Системы программирования и их графические возможности. Разработка мультимедиа курса, способствующего эффективному усвоению учащимися базовой школы темы "Графические возможности языка программирования" (на примере языков программирования Basic и Pascal).

    дипломная работа [588,3 K], добавлен 29.12.2010

  • Алгоритм решения задач линейного программирования симплекс-методом. Построение математической модели задачи линейного программирования. Решение задачи линейного программирования в Excel. Нахождение прибыли и оптимального плана выпуска продукции.

    курсовая работа [1,1 M], добавлен 21.03.2012

  • Решение задач нелинейного программирования различными методами для проведения анализа поведения этих методов на выбранных математических моделях. Компьютерная реализация выбранных задач нелинейного программирования в среде пакетов Excel и Matlab.

    дипломная работа [2,9 M], добавлен 25.01.2013

  • Применение методов линейного программирования для решения оптимизационных задач. Основные понятия линейного программирования, свойства транспортной задачи и теоремы, применяемые для ее решения. Построение первичного опорного плана и системы потенциалов.

    курсовая работа [280,8 K], добавлен 17.11.2011

  • Цели и задачи дисциплины "Технология программирования". Программные средства ПК. Состав системы программирования и элементы языка. Введение в систему программирования и операторы языка Си. Организация работы с файлами. Особенности программирования на С++.

    методичка [126,3 K], добавлен 07.12.2011

  • Решение задачи нелинейного программирования с определением экстремумов функции. Этапы процесса нахождения решения задачи нелинейного программирования с использованием ее геометрической интерпретации. Определение гиперповерхности уровней функции.

    курсовая работа [1,5 M], добавлен 25.09.2010

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

    контрольная работа [691,8 K], добавлен 08.09.2010

  • Методы определения оптимального плана производства (приобретения) продукции с учетом ограниченного обеспечения ресурсами различного вида. Технология поиска оптимального решения задач линейного программирования (ЗЛП) с помощью итоговой симплекс-таблицы.

    лабораторная работа [42,8 K], добавлен 11.03.2011

  • Анализ метода линейного программирования для решения оптимизационных управленческих задач. Графический метод решения задачи линейного программирования. Проверка оптимального решения в среде MS Excel с использованием программной надстройки "Поиск решения".

    курсовая работа [2,2 M], добавлен 29.05.2015

  • Анализ решения задачи линейного программирования. Симплексный метод с использованием симплекс-таблиц. Моделирование и решение задач ЛП на ЭВМ. Экономическая интерпретация оптимального решения задачи. Математическая формулировка транспортной задачи.

    контрольная работа [196,1 K], добавлен 15.01.2009

  • Обзор задач, решаемых методом динамического программирования. Составление маршрута оптимальной длины. Перемножение цепочки матриц. Задача "Лестницы". Анализ необходимости использования специальных методов вероятностного динамического программирования.

    курсовая работа [503,3 K], добавлен 28.06.2015

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

    презентация [1,8 M], добавлен 05.11.2016

  • Развитие и классификация языков программирования. Методические рекомендации по изучению языков программирования. Основные понятия объектно-ориентированного программирования. Создание электронного учебного пособия с помощью языка гипертекстовой разметки.

    курсовая работа [331,1 K], добавлен 06.09.2011

  • Формулировка общей задачи математического программирования. Классификация задач нелинейного программирования. Понятие о функции Лагранжа. Задача теоремы Куна-Таккера. Экономическая интерпретация множителей Лагранжа, формулирование условий оптимальности.

    презентация [669,1 K], добавлен 25.07.2014

  • Математическое программирование. Линейное программирование. Задачи линейного программирования. Графический метод решения задачи линейного программирования. Экономическая постановка задачи линейного программирования. Построение математической модели.

    курсовая работа [581,5 K], добавлен 13.10.2008

  • Общее понятие и характеристика задачи линейного программирования. Решение транспортной задачи с помощью программы MS Excel. Рекомендации по решению задач оптимизации с помощью надстройки "Поиск решения". Двойственная задача линейного программирования.

    дипломная работа [2,4 M], добавлен 20.11.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.