УДК 37.02
ОБУЧЕНИЕ УЧАЩИХСЯ ОСНОВАМ ПРОГРАММИРОВАНИЯ В РАМКАХ ЭЛЕКТИВНОГО ОБРАЗОВАТЕЛЬНОГО КУРСА «РОБОТОТЕХНИКА»
Родионов Михаил Алексеевич,
доктор педагогических наук, профессор, ФГБОУ ВО «Пензенский государственный университет», г. Пенза, e-mail: [email protected]
Кочеткова Ольга Анатольевна,
кандидат педагогических наук, доцент кафедры «Информатика и методики обучения информатике и математике», ФГБОУ ВО «Пензенский государственный университет», г. Пенза, e-mail: [email protected]
Пудовкина Юлия Николаевна,
кандидат педагогических наук, доцент кафедры «Информатика и методики обучения информатике и математике», ФГБОУ ВО «Пензенский государственный университет», г. Пенза, e-mail: [email protected]
В СТАТЬЕ РАССМОТРЕНО СОДЕРЖАНИЕ ОБУЧЕНИЯ УЧАЩИХСЯ ОСНОВАМ ПРОГРАММИРОВАНИЯ В РАМКАХ РАЗРАБОТАННОГО ЭЛЕКТИВНОГО КУРСА «РОБОТОТЕХНИКА». ВЫДЕЛЕНЫ АКТУАЛЬНЫЕ ПРОБЛЕМЫ ВНЕДРЕНИЯ ОБРАЗОВАТЕЛЬНОЙ РОБОТОТЕХНИКИ В ШКОЛЕ. ПРИВЕДЕНЫ ПРИМЕРЫ ОБОБЩЁННЫХ ФОРМУЛИРОВОК ПРОЕКТНЫХ ЗАДАНИЙ И УЧЕБНЫХ ЗАДАЧ КУРСА, ПРИ РЕШЕНИИ КОТОРЫХ ИСПОЛЬЗУЮТСЯ РАЗЛИЧНЫЕ ТИПЫ АЛГОРИТМОВ.
• информатика и ИКТ • образовательная робототехника • алгоритмизация • программирование
• элективный курс
Как известно, Федеральный государственный образовательный стандарт основного общего образования поколения, учитывая развитие современных технических средств обучения, вносит существенные изменения в содержание современного образования учащихся. Эти изменения неизбежно связаны с требованиями к материально-техническим условиям реализации основной образовательной программы [2, 3, 6, 8], одним из которых является обеспечение возможности «проектирования и конструирования, в том числе моделей с цифровым управлением и обратной связью, с использованием конструкторов; управления объектами; программирования» [8].
Робототехника — прикладная наука, занимающаяся разработкой автоматизированных технических систем. Она опирается на такие дисциплины как электроника, механика, программирование. В школе робо-
тотехника может интегрироваться с такими предметами как технология, физика, информатика и информационно-коммуникационные технологии (ИКТ) [1, 4].
В основном, занятия по робототехнике направлены на: развитие у учащихся навыков конструирования и моделирования, формирование логического и творческого мышления, математических и алгоритмических способностей, проектных и исследовательских умений и навыков.
Актуальность темы статьи заключается в том, что поскольку направление «Образовательная робототехника» является относительно новым для общеобразовательных школ, то наблюдается существенный дефицит в учебно-методическом обеспечении проведения занятий. Кроме того, в основном такие занятия сводятся к конструированию роботов, а программирование остаётся
Внедрение и прпмш
вне поля зрения учеников и учителей или рассматривается поверхностно. Следовательно, возникает необходимость в таком курсе, который сочетает в себе элементы как конструирования, так и программирования.
Обучение учащихся робототехнике в рамках дисциплины «Информатика и ИКТ» целесообразно основывать на использовании специальных конструкторов, содержащих программируемое устройство. Самыми распространёнными в настоящее время являются конструкторы Lego (NXT и EV3), позволяющие включить в обучение практически все возрастные группы учащихся, начиная от начальных классов и заканчивая учащимися старших классов. Данное обстоятельство является крайне важным, так как позволяет сохранить преемственность образовательного процесса.
На наш взгляд, изучение робототехники в школе должно обеспечивать следующее.
1. Формирование общей положительной мотивации учащихся к обучению информатике и ИКТ;
2. Развитие интереса учащихся к робототехнике, программированию и конструированию;
3. Формирование навыков программирования;
4. Развитие логического и алгоритмического мышления учащихся;
5. Развитие учебно-поисковых и исследовательских навыков при решении прикладных нестандартных задач.
Существует несколько сред программирования, используемых для разработки программы управления роботом [8].
1. Гоафическая среда программирования NXT-G, в которой реализован визуальный способ проектирования программ. Написание программы похоже на создание блок-схемы: задаётся схема управления роботом с использованием существующих блоков, которые представляют собой различные типы действий (ветвление, цикл, движение и т.д.). Данный способ создания программ подходит для учащихся с разным уровнем подготовки в области программирования.
2. Графическая среда Robolab позволяет создавать более сложные программы
с нестандартными математическими вычислениями, так как она использует целые и вещественные числа с плавающей и фиксированной точкой. Рекомендуется использовать её для программирования роботов учащимися старших классов.
3. Среда программирования роботов на базе Arduino содержит следующие основные элементы: главное меню, текстовый редактор для написания программы, область для вывода сообщений, текстовая консоль, панель инструментов с основными кнопками. Для написания программы на Arduino необходимо обладать минимальными знаниями программирования на С++ (6-9-е классы).
4. Текстовый язык программирования RobotC, основанный на стандартном языке C. Программное обеспечение имеет схожую с Visual Studio среду и включает в себя интерактивный отладчик, способный функционировать в режиме реального времени, обладает возможностями для работы с математическими выражениями, с помощью которых можно составлять сложные программы.
Обучать учащихся основам алгоритмизации авторы статьи предлагают в рамках элективного образовательного курса «Робототехника» с использованием среды RobotC (7-9-е классы). Курс рассчитан на 34 часа. Основа концепции предлагаемого элективного курса — ориентация на школьный курс информатики и ИКТ. Ведущей задачей курса является создание условий для изучения основ алгоритмизации и программирования с использованием конструктора Lego.
В результате изучения курса учащиеся должны научиться не только конструировать роботов, но и составлять алгоритмы различной сложности для их управления и выполнения ими различных действий. Кроме того, должны улучшиться понимание в целом основных алгоритмических структур и повыситься интерес к изучению содержательной линии «Алгоритмизация и программирование» в основном курсе информатики и ИКТ.
Робот рассматривается как исполнитель при изучении программирования в школьном курсе информатики. Однако, в отличие
от множества традиционных учебных исполнителей (чертежник, черепашка и др.), 1едо-робот действует в реальном мире, что не только увеличивает мотивационную составляющую изучаемого материала по программированию, но и привносит в него исследовательский компонент [5].
В содержании курса выделены 4 блока.
Блок 1. Основы алгоритмизации и программирования
Здесь учащиеся, используя среду ЯоЬоЮ, знакомятся с основами программирования и изучают основные алгоритмические структуры. Для написания программ используется графический язык программирования в среде ЯоЬоГС. Школьники знакомятся с датчиками 1едо-конструктора и учатся их использовать (гироскопический датчик, датчик расстояния, датчик света/ цвета, датчик оборотов, датчик касания, датчик звука).
В результате изучения темы учащиеся должны иметь представление о нижеперечисленном, знать и уметь:
• работать в среде ЯоЬоГС;
• собирать простейшие модели с использованием 1едо-конструктора;
• создавать программы, используя графический язык программирования;
• настраивать параметры команд и датчиков;
• подключать, настраивать и использовать в программе датчики;
• программировать, используя основные алгоритмические структуры: линейную, цикл, выбор, множественный выбор.
Блок 2. Основы сбора и анализа данных. Работа с датчиками
Ученики знакомятся с возможностями и инструментами регистрации данных в среде ЯоЬоЮ. Учатся использовать датчики для сбора и анализа данных. Осваивают различные инструменты регистрации данных: режим осциллографа, прогнозирование, анализ точек и другие. Используют данные, полученные в ходе исследования, для программирования в режиме регистрации данных. В результате изучения темы учащиеся должны иметь представление о нижеперечисленном, знать и уметь:
• подключать датчики, настраивать регистрацию данных с различных портов;
• использовать данные с датчиков для написания программы;
• пользоваться различными режимами регистрации данных.
Блок 3. Основы механики и конструирования. Творческие проектные работы
Учащиеся собирают и программируют базовые модели. Реализуют собственные проекты.
Блок 4. Подготовка к основным робототехническим соревнованиям
Учащиеся собирают и программируют авторские модели роботов для участия в основных видах робототехнических соревнований различного уровня («Гонки по линии», «Кегльринг», «Слалом», «Лабиринт», «Биатлон», «Шагающие роботы», «Битва роботов», «Робоволейбол» и др.).
Приведём примеры обобщённых формулировок задач по образовательной робототехнике, при решении которых используется линейный алгоритм.
Задача 1. Дана окружность диаметром не менее N см, разделённая линиями на 8 равных частей. Робот находится в центре неё. На сколько градусов должно повернуться левое колесо робота, чтобы он повернулся вправо на 45°, 90°, 180°? Проведите проверку, написав программы поворота робота.
Задача 2. Робот находится в начале отрезка чёрной линии длиной не менее N см, на котором на расстоянии A, B, C и D см от начала расположены чёрные точки. На сколько градусов должен повернуться вал левого и правого двигателей, чтобы робот проехал вперёд на заданное расстояние? Робот обязательно должен начать движение от начала линии и остановиться не далее X см от соответствующей точки.
Задача 3. На игровом квадратном поле со стороной X см в его вершинах располагаются флажки. Робот устанавливается самостоятельно так, чтобы он находился рядом с одним из флажков с внутренней стороны квадрата. Напишите программу
Внедрение и нрпмш
движения робота по периметру квадрата так, чтобы он обогнул все четыре флажка, не задев их. Нельзя удаляться от стороны квадрата более чем на Х см. Пересекать стороны квадрата запрещено. Замечание: задание выполнено, если робот вернулся в начальную точку движения с погрешностью не более Z см.
Задача 4. Игровое поле свободно от посторонних предметов. Напишите программу движения робота по дугообразной траектории.
Рассмотрим также примеры нескольких задач, решение которых на компьютере получается с помощью разветвляющихся алгоритмов.
Задача 1. Робот должен разжимать клешни, если к нему на расстояние X см поднести какой-либо предмет, и сжимать их, если предмет удалён на расстояние Х см.
Задача 2. От робота на расстоянии X см в его поле зрения находится только подставка с мячиком Y цвета. Роботу необходимо подъехать к мячику и захватить его клешнями, затем вернуться на исходное место.
Задача 3. На игровом поле нарисована толстая чёрная линия произвольной формы без пересечений. Толщина линии — не менее X см. Повороты образуют угол не менее Y. Радиус поворота линии — не менее Z см. Напишите программу движения робота по чёрной линии.
Примерная тематика проектных заданий
включает в себя задания следующих типов.
Задание 1. Напишите такую программу, чтобы робот попал из поля «start» в поле «stop». Необходимо использовать датчик касания (рис. 1).
Задание 2. Робот должен вытолкнуть все банки за пределы заданного круга, но при этом сам робот должен оставаться внутри. Банки выталкиваются только передним датчиком. Здесь учитывается время на выполнение программы (рис. 2).
Задание 3. Создайте программу движения робота по лабиринту (траектория задаётся заранее) с возвращением на исходную позицию.
Рис. 1. Поле для робота
Задание 4. Напишите программу для робота для прохождения «восьмёрки» (рис. 3).
Задание 5. На каждой стороне игрового поля находится пять шариков разного цвета. Необходимо перекинуть все шарики на сторону соперника.
Рассмотрим фрагмент занятия по робототехнике, в рамках которого решение задач опирается на тему «Циклы».
start
Рис. 3. Поле для робота
Учитель: На предыдущих уроках мы с вами говорили о роботах, которые различаются по внешнему виду, их функциональным возможностям и т.д.
Вспомним виды роботов, которых мы конструировали с вами на предыдущих занятиях. Как двигаются эти роботы?
Ученики: Роботы двигаются по времени, на заданное расстояние, по заданной траектории, переносят предметы с определённого месторасположения.
Учитель: Предлагаю просмотреть изображения (рис. 4) и сделать анализ, ответив на вопросы.
Учитель: Чем отличаются собранные ранее вами роботы от изображённых на этих фотографиях?
Учитель: Почему нельзя обойтись без датчиков?
Ученики: Потому что без датчиков будет долгая и трудоёмкая работа, мы не можем знать размеров исследуемого объекта, расстояния до него. Датчики позволяют определять дополнительные параметры исследуемого объекта.
Объяснение нового материала
Учитель: Итак, определим ключевые датчики, используемые при работе роботов.
Ученики: Датчики касания, определения расстояния, цвета/света/освещённости, температуры и т.д.
Учитель: Перед вами датчики, которые входят в базовый комплект EV3 (рис. 5).
Ученики: Роботы, которые мы раньше собирали, работали только в зависимости от времени или чётко выверенных формул углов поворота, движений вперёд и механических захватов. У роботов с фотографий есть датчики: касания, расстояния, цвета/света/освещённости.
Учитель: Сегодня мы познакомимся с датчиком касания. Прикрепите его к своим тележкам (ученики прикрепляют датчики касания к своим тележкам). Для чего нужен данный датчик? Каков принцип работы датчика касания?
Рис. 4. Роботы
Внедрение и прпмш
Ученики: В зависимости от нажатия кнопки касания на датчике робот может двигаться вперёд или назад, останавливаться или выполнять другие манипуляции. Всё зависит от условий, предъявляемых к датчику.
Учитель: Иначе говоря, робот работает, ПОКА нажата или отжата кнопка касания. По аналогии с языком программирования Pascal, работа датчика касания зависит от организации цикла ПОКА (WHILE).
Организация цикла ПОКА очень похожа на известный цикл в языке программирования Pascal (табл. 1).
Учитель: Выясним, что должно быть в <условии> и внутри <тела цикла>.
Ученики: В условии должно отображаться
Организация
состояние датчика касания — нажата или отжата кнопка.
Учитель: Совершенно верно, для того чтобы идентифицировать датчик касания, необходимо войти во вкладку Motors and Sensors Setup и просмотреть индекс датчика (рис. 6).
Условие будет выглядеть так: SensorValue (touchSensor) = = 0 или SensorValue(SI) = 0.
Учитель: Давайте подробно разберём организацию цикла While (табл. 2). Что происходит в результате выполнения программы к примерам 1, 2? (Каждый пример рассматривается отдельно с подробным объяснением учителя. После разбора каждого примера учащиеся пробуют программы на своих тележках.)
Таблица 1
цикла ПОКА
Язык программирования Pascal Язык программирования RobotC
While (<условие>) do begin <Тело цикла> end; While (<условие>) { <Тело цикла> }
Рис. 6. Идентификация датчика касания
Таблица 2
Пример программ с разными циклами
Цикл с условием выхода
Бесконечный цикл Условия, при которых цикл станет бесконечным: 1= =1 или true
task main() {
while (SensorValue(touchSensor) = {
motor[motorB] = 60;
motor[motorC] = 60; }
motor[motorB] = 0; motor[motorC] = 0;
}
= 0)
task main() {
while (true) {
while (SensorValue(touchSensor) = {
motor[motorB] = -60;
motor[motorC] = -60; }
= 1)
}
}
motor[motorB] = 0; motor[motorC] = 0;
Робот движется, пока датчик касания не нажат. Наталкиваясь на препятствие, робот останавливается
Робот движется при нажатой кнопке касания и останавливается, если кнопка отжата. (Имитация пульта управления)
Закрепление материала
Задание 1. Соберите робота с двумя датчиками касания: один из них отвечает за поворот налево, другой — направо. Напишите программу поворота робота в зависимости от нажатой кнопки датчика.
Задание 2. Модифицируйте программу «Движение вдоль чёрной линии» (задание 3 по теме «Разветвляющиеся алгоритмы») таким образом, чтобы робот двигался по ней:
а) пока он не совершит 1,5 оборота колеса;
б) пока он «не услышит» громкий звук.
Задание 3. Составьте программу для робота, который издаёт звуковой сигнал при нахождении зелёного кубика.
В целом, как показывает наш опыт, предлагаемый курс достаточно эффективно реализует указанный выше функционал, органично дополняя базовый курс «Информатика и ИКТ». Он, в частности, кроме непосредственного формирования умений конструировать и программировать роботов, демонстрирует учащимся прикладные возможности современных информационных технологий, способствует развитию их коммуникативных способностей, развивает навыки взаимодействия, самостоятельность и инициативу при принятии решений, раскрывает их творческий потенциал. При
этом ученики, самостоятельно изобретая и создавая реальные действующие модели роботов, начинают лучше понимать и использовать материал соответствующих тем курса информатики. □
Литература
1. Акимова И.В., Родионов М.А. Опыт обучения студентов педвуза реализации межпредметных связей // Информатика и образование. — 2015. — № 4 (263). — С. 59-63.
2. Губанова О.М., Родионов М.А. Особенности проектирования методической системы формирования профессиональных компетенций будущего учителя информатики и ИКТ // Вестник Нижегородского университета им. Н.И. Лобачевского. Серия «Социальные науки». — 2014. — № 4. — С. 235.
3. Губанова О.М., Родионов М.А. Современный урок информатики в условиях ФГОС // Вестник Пензенского государственного университета. — 2015. — № 1. — С. 18-21.
4. Захарова И.Г. Информационные технологии в образовании: учеб. пособие. — М.: Академия, 2003. — 183 с.
5. Кочёткова О.А., Купряшина Л.А., Пудовкина Ю.Н. Об эффективности применения курса «Робототехника и программирование» в средней школе // Современные проблемы физико-математических
Внедрение и прпмш
наук: Материалы IV Всероссийской научно-практической конференции с международным участием / под общ. ред. Т.Н. Можаровой. — 2018. — С. 93-96.
6. Родионов М.А., Акимова И.В. Подготовка будущих учителей информатики к обучению школьников объектно-ориентированному программированию // Вестник Нижегородского университета им. Н.И. Лобачевского. Серия «Социальные науки». — 2015. — № 1 (37). — С. 247-251.
7. Федеральный государственный образовательный стандарт основного общего образования [Электронный ресурс]. — URL: 1пир://минобрнауки.рф/ документы/938 (дата обращения: 15.01.18).
8. Шимов В.И. Применение робототехни-ческих устройств в обучении программированию школьников [Электронный ресурс]. — URL: http://cyberleninka.ru/ article/n/primenenie-robototehnicheskih-ustroystv-v-obuchenii-programmirovaniyu-shkolnikov_(дата обращения: 16.03.18).
konferencii s mezhdunarodnym uchastiem / pod obshch. red. T.N. Mozharovoj. — 2018. — S. 93-96.
6. Rodionov M.A., Akimova I.V. Podgotovka budushchih uchitelej informatiki k obuche-niyu shkol'nikov ob'ektno-orientirovanno-mu programmirovaniyu // Vestnik Nizhego-rodskogo universiteta im. N.I. Lobachevs-kogo. Seriya «Social'nye nauki». — 2015. — № 1 (37). — S. 247-251.
7. Federal'nyj gosudarstvennyj obrazova-tel'nyj standart osnovnogo obshchego obrazovaniya [Elektronnyj resurs]. — URL: http://minobrnauki.rf/dokumenty/938 (data obrashcheniya: 15.01.18).
8. Shimov V.I. Primenenie robototekhniches-kih ustrojstv v obuchenii programmirovaniyu shkol'nikov [Elektronnyj resurs]. — URL: http://cyberleninka.ru/article/n/prime-nenie-robototehnicheskihustroystv-v-obu-chenii-programmirovaniyushkolnikov (data obrashcheniya: 16.03.18).
Literatura
1. Akimova I.V., Rodionov M.A. Opyt obu-cheniya studentov pedvuza realizacii mezhpredmetnyh svyazej // Informatika i obrazovanie. — 2015. — № 4 (263). — S. 59-63.
2. Gubanova O.M., Rodionov M.A. Osoben-nosti proektirovaniya metodicheskoj sistemy formirovaniya professional'nyh kompetencij budushchego uchitelya informatiki i IKT // Vestnik Nizhegorodskogo universiteta im. N.I. Lobachevskogo. Seriya «Social'nye nauki». — 2014. — № 4. — S. 235.
3. Gubanova O.M., Rodionov M.A. Sovre-mennyj urok informatiki v usloviyah FGOS // Vestnik Penzenskogo gosudarstvenno-go universiteta. — 2015. — № 1. — S. 18-21.
4. Zaharova I.G. Informacionnye tekhnologii v obrazovanii: ucheb. posobie. — M.: Aka-demiya, 2003. — 183 s.
5. Kochyotkova O.A., Kupryashina L.A., Pu-dovkina Yu.N. Ob effektivnosti primeneniya kursa «Robototekhnika i programmirova-nie» v srednej shkole // Sovremennye pro-blemy fiziko-matematicheskih nauk: Mate-rialy IV Vserossijskoj nauchno-prakticheskoj