Робототехника
в образовательном процессе общеобразовательной школы.
По словам главы Роструда Всеволода Вуколова на
площадке Петербургского международного экономического форума (ПМЭФ-2017),
российские предприятия нуждаются в инженерах: «На сегодняшний день главная
(проблема) все-таки для предприятий: они не могут найти специалиста в
инженерной отрасли, не могут найти именно специалиста в сфере производственного
блока» - сказал Вуколов.
Программа «Робототехника: инженерно-технические кадры
инновационной России»
была запущена в 2008 году и нацелена на вовлечение детей и молодежи в
техническое творчество, воспитание инженерной культуры, выявление и продвижение
перспективных инженерно-технических кадров. Движущий механизм Программы –
система инженерно-технических соревнований, завершающихся Всероссийским
робототехническим фестивалем «РобоФест», который одновременно является
национальным отборочным этапом для ряда крупнейших международных
робототехнических состязаний: FIRST, WRO, ABU ROBOCON, ELROB. Каждый год
проходят десятки региональных робототехнических соревнований, которые являются
отборочными соревнованиями на общероссийский робототехнический фестиваль
«Робофест».
Сегодня уже в каждом городе, а кое-где и в каждой
школе преподается курс «Робототехники». Естественно, что цели и задачи такого
курса, как и материальная и методическая база, в каждой конкретной школе очень
сильно отличаются.
Но одной общей (и на мой взгляд немаловажной) целью
введения курса робототехники в школах является как раз развитие у учащихся
алгоритмического мышления и навыков программирования. Языки программирования на
уроках информатики начинают изучать с 8 класса, а робототехникой сейчас
начинают заниматься в начальной школе. Вот и получается, что первое знакомство
с программированием происходит как раз на занятиях робототехникой.
Рассматривая внедрение робототехники в образовательный
процесс общеобразовательной школы именно с этой точки зрения, как
практико-ориентированный курс программирования, мною была предпринята попытка
разработать и внедрить элементы такой методической системы, рассматривая ее как
совокупность взаимосвязанных компонентов (так же как видели этот термин
педагогической науки С. И. Архангельский, Н. В. Кузьмина,
А. М. Пышкало)
В соответствие с примерной рабочей программой общего
образования по информатике и ИКТ, «одним из важнейших понятий курса информатики
и информационных технологий основной школы является понятие алгоритма».
Соответственно, обучение алгоритмизации и программированию, т.е. способам
реализации алгоритмов на ЭВМ, является одним из основных компонентов школьного
курса информатики.
Если же проанализировать государственные нормативные
документы,
то можно увидеть, что на изучение раздела программирования отводиться
недостаточное количество времени, и это приводит к тому, что изучение некоторых
тем проходит поверхностно, а некоторые исключаются вовсе. Так Федеральный
базисный учебный план для образовательных учреждений РФ отводит 105 часов для
обязательного изучения информатики и ИКТ на ступени основного общего
образования и 70 часов на ступени полного общего образования. Из них, на
алгоритмизацию и программирование отводится всего 19 часов - чуть более 10% от
общего числа часов!
Но даже при таком малом внимании к такой серьезной
теме, как алгоритмизация и программирование, содержательный аспект преподавания
программирования сводится к преподаванию на основе специально разработанного
языка (Pascal или Basic),
ориентированного на обучение основным навыкам программирования без привязки к
конкретным задачам окружающего мира. Задачи, решаемые в курсе изучения
программирования в общеобразовательной школе являются хоть и базовыми, но
абстрактными (например, нахождение максимального элемента из предложенных,
выполнение простейших арифметических действий, обработка числовых массивов,
работа с символьными переменными).
Как итог, данная тема, и с точки зрения учителей, и с
точки зрения учеников, является сложнейшей в рамках учебного предмета.
С целью повышения мотивации обучающихся к изучению
программирования были поставлены следующие задачи:
1. Создать
рабочие программы по информатике (для 8-го и 9-го классов), ориентированные на
переход от «изолированного» изучения учащимися системы научных понятий,
составляющих содержание учебного предмета, к включению содержания обучения в
контекст решения значимых жизненных задач, через внедрение в образовательный процесс
элементов робототехники.
2. Разработать
поурочное планирование с включением элементов робототехники в каждое занятие по
темам алгоритмизации и программирования.
3. Произвести
замену основного изучаемого языка программирования на более современный и
востребованный.
С внедрением в образовательный процесс элементов
робототехники, изучение темы программирование становится не только
увлекательным для учащихся, но практико-ориентированным: перед учеником
ставятся не абстрактные задачи из учебника, а задачи «насущные». Например,
написание программы для выбора максимального числа из трех предложенных
превращается в задачу как научить робота выбирать самое «большое» яблоко из
трех.
Рассмотрим на конкретных темах школьной программы. Для
сравнительного описания была взята программы курса Л.Л. Босовой «Информатика»
для 7-9 классов средней общеобразовательной школы. (Заслуженного
учителя РФ, автора УМК по информатике для основной и старшей школы, доктора
педагогических наук, зав. кафедрой Московского педагогического государственного
университета, главного научного сотрудника Федерального института развития
образования). Нас интересует раздел 2. «Алгоритмы и начала программирования».
Изучение данного раздела подразумевается по следующим трём темам:
№ темы в тематическом планировании
|
Наименование темы
|
Основное содержание по темам
|
Характеристика деятельности ученика
|
8
|
Основы
алгоритмизации (10 часов)
|
Учебные исполнители Робот, Удвоитель и др. как примеры
формальных исполнителей. Понятие алгоритма как формального описания
последовательности действий исполнителя при заданных начальных данных.
Свойства алгоритмов. Способы записи алгоритмов. Алгоритмический язык —
формальный язык для записи алгоритмов. Программа — запись алгоритма на алгоритмическом
языке. Непосредственное и программное управление исполнителем.
Линейные программы. Алгоритмические конструкции, связанные с
проверкой условий: ветвление и повторение.
Понятие простой величины. Типы величин: целые, вещественные,
символьные, строковые, логические. Переменные и константы. Алгоритм работы с
величинами — план целенаправленных действий по проведению вычислений при
заданных начальных данных с использованием промежуточных результатов
|
• исполнять готовые алгоритмы для конкретных исходных данных;
• преобразовывать запись алгоритма с одной формы в другую;
• строить цепочки команд, дающих нужный результат при конкретных
исходных данных для исполнителя арифметических действий;
• строить цепочки команд, дающих нужный результат при
конкретных исходных данных для исполнителя, преобразующего строки символов;
• строить арифметические, строковые, логические выражения и
вычислять их значения
|
9
|
Начала
программирования (10 часов)
|
Язык программирования. Основные правила языка программирования
Паскаль: структура программы; правила представления данных; правила записи
основных операторов (ввод, вывод, присваивание, ветвление, цикл). Решение
задач по разработке и выполнению программ в среде программирования Паскаль
|
• программировать линейные алгоритмы, предполагающие вычисление
арифметических, строковых и логических выражений; • разрабатывать программы,
содержащие оператор/операторы ветвления (решение линейного неравенства,
решение квадратного уравнения и пр.), в том числе с использованием логических
операций; • разрабатывать программы, содержащие оператор (операторы) цикла
|
10
|
Алгоритмизация
и программирование (8 часов)
|
Этапы решения задачи на компьютере. Конструирование алгоритмов:
разбиение задачи на подзадачи, понятие вспомогательного алгоритма. Вызов
вспомогательных алгоритмов. Рекурсия.
Управление, управляющая и управляемая системы, прямая и обратная
связь. Управление в живой природе, обществе и технике
|
исполнять готовые алгоритмы для конкретных исходных данных; •
разрабатывать программы, содержащие подпрограмму; • разрабатывать программы
для обработки одномерного массива: • нахождение минимального (максимального)
значения в данном массиве; подсчет количества элементов массива,
удовлетворяющих некоторому условию; • нахождение суммы всех элементов
массива; • нахождение количества и суммы всех четных элементов в массиве; •
сортировка элементов массива и пр.
|
В соответствии с рекомендованным поурочным
планированием данные три темы изучаются на следующих уроках:
Для 8 класса:
№
урока
|
Тема
урока
|
Тема «Основы алгоритмизации»
|
14
|
Алгоритмы и исполнители
|
15
|
Способы записи алгоритмов
|
16
|
Объекты алгоритмов
|
17
|
Алгоритмическая конструкция «следование»
|
18
|
Алгоритмическая конструкция «ветвление». Полная форма ветвления
|
19
|
Сокращенная форма ветвления
|
20
|
Алгоритмическая конструкция «повторение». Цикл с заданным
условием продолжения работы
|
21
|
Цикл с заданным условием окончания работы
|
22
|
Цикл с заданным числом повторений
|
23
|
Обобщение и систематизация основных понятий темы «Основы
алгоритмизации. Проверочная работа
|
Тема «Начала программирования»
|
24
|
Общие сведения о языке программирования Паскаль
|
25
|
Организация ввода и вывода данных
|
26
|
Программирование линейных алгоритмов
|
27
|
Программирование разветвляющихся алгоритмов. Условный оператор
|
28
|
Составной оператор. Многообразие способов записи ветвлений
|
29
|
Программирование циклов с заданным условием продолжения работы
|
30
|
Программирование циклов с заданным условием окончания работы
|
31
|
Программирование циклов с заданным числом повторений
|
32
|
Различные варианты программирования циклического алгоритма
|
33
|
Обобщение и систематизация основных понятий темы «Начала
программирования». Проверочная работа
|
Для 9 класса:
Тема «Алгоритмизация и программирование»
|
10
|
Решение задач на компьютере
|
11
|
Одномерные массивы целых чисел. Описание, заполнение, вывод
массива
|
12
|
Вычисление суммы элементов массива
|
13
|
Последовательный поиск в массиве
|
14
|
Сортировка массива
|
15
|
Конструирование алгоритмов
|
16
|
Запись вспомогательных алгоритмов на языке Паскаль
|
17
|
Алгоритмы управления. Обобщение и систематизация основных
понятий темы «Алгоритмизация и программирование». Проверочная работа
|
При включении в образовательный процесс элементов
робототехники меняется материально-техническая база и учебно-методическое
оснащение. Так основным Исполнителем (в терминах алгоритмизации) становится
робот, собранный в нашем случае из образовательного набора Lego Mindstorms EV3
(набор 45544). Данный набор - один из самых популярных и распространенных
комплектов по робототехнике на данный момент в образовательных учреждениях и на
робототехнических соревнованиях. Для комфортного изучения программирования и
организации практических занятий необходимо предусмотреть достаточное
количество таких образовательных наборов – как правило, из расчета один набор
на один ученический компьютер в кабинете информатики.
Причем стоит отметить, что изучение всех тем предмета
«Информатика» не требует навыков конструирования самих роботов – для этого
достаточно базовой модели – так называемой, «образовательной тележки». Собрать
ее из конструктора можно самостоятельно за 20-30 минут даже при «нулевом»
уровне знакомства с конструктором по цветной пошаговой инструкции, входящей в
состав образовательного набора Lego Mindstorms EV3 (45544). Таким образом,
однажды собранные «базовые» роботы могут быть использованы на протяжении всего
образовательного процесса в течение учебного года и независимо от параллели
обучения. Ведь главным здесь является программирование, а не конструирование
робота (в отличие от кружков и дополнительных внеурочных занятий по
робототехнике).
Опишем ключевые понятия и направления для рассмотрения
вышеуказанных тем уроков программы «информатика» с точки зрения практической
направленности использования элементов робототехники на примере изучения
программы 8 класса.
№
урока
|
Тема
урока
|
Содержание
практической части урока
|
Основные
отличия от примерной рабочей программы
|
Тема «Основы алгоритмизации»
|
14
|
Алгоритмы и исполнители
|
Знакомство с образовательным набором Lego Mindstorms EV3 (45544)
и основной «базовой тележкой». Система команд исполнителя Lego Mindstorms EV3.
Управление роботом с помощью пульта управления
|
Конкретный исполнитель алгоритмов – физически доступный, а не
абстрактный (программный)
|
15
|
Способы записи алгоритмов
|
Знакомство с визуальной средой программирования Lego Mindstorms
EV3
|
Визуальное программирование более доступно для понимания, чем
алгоритмический язык или блок-схема
|
16
|
Объекты алгоритмов
|
Основные управляемые и управляющие элементы робота: моторы и
датчики. Понятие переменной и величины
|
Наглядное использование и обработка различных информационных
объектов – величин (значения датчиков, управление моторами)
|
17
|
Алгоритмическая конструкция «следование»
|
Простейшие программы робота: движение, повороты, прохождение
заданной траектории
|
Практическая отработка умений писать линейные алгоритмы на
исполнителе – роботе: «визуальный результат» программирования
|
18
|
Алгоритмическая конструкция «ветвление». Полная форма ветвления
|
Использование датчиков робота для оценки окружающей среды и
изменения поведения робота в соответствии с полученными данными. Датчик
касания, ультразвуковой датчик.
|
«Визуализация» алгоритма – поведение робота зависит от
окружающей среды и показаний датчиков
|
19
|
Сокращенная форма ветвления
|
20
|
Алгоритмическая конструкция «повторение». Цикл с заданным
условием продолжения работы
|
Прохождение лабиринта роботом, поиск оптимального пути. Движение
по линии. Релейный и пропорциональный регуляторы
|
Элемент соревнований по написанию оптимальной программы для
робота
|
21
|
Цикл с заданным условием окончания работы
|
Задача из серии «охотник и жертва»: робот должен догнать
движущийся объект и следовать за ним на заданном расстоянии.
Задача по объезду препятствий на пути следования робота.
|
Решение актуальной проблемы беспилотных автомобилей
|
22
|
Цикл с заданным числом повторений
|
23
|
Обобщение и систематизация основных понятий темы «Основы
алгоритмизации. Проверочная работа
|
Соревнования по робототехнике из серии «Лабиринт» или
«Траектория». Отличительная особенность – база у всех одинакова, отличия лишь
в программной реализации
|
Проверочная работа в форме образовательного события с
практическим выходом в виде написания программы для участия в городских
(региональных) соревнования по робототехнике.
|
Изучение темы «Программирование» по программе Босовой
Л.Л. проходит на языке программирования Паскаль (именно этот язык используется
в учебниках авторского УМК). С точки зрения современного развития
программирования данный язык является учебным (он и создавался в далеком 1970
году, как язык, пригодный для обучения программированию), а потому несколько
искусственным, имеющим ограниченное практическое применение в современном мире.
Pascal, как язык программирования, устарел, его никто из компаний не использует
в коммерческих целях. Можно, конечно, начать изучение программирования
с Pascal, но после основ всем придётся учить новый язык, с другим
синтаксисом, с новыми правилами.
В программировании есть несколько парадигм, подходов
к созданию программ: модульная парадигма, процедурные парадигма,
объектно-ориентированная парадигма.
В школах обычно преподают процедурный подход к программированию,
в то время как ООП (объектно-ориентированное программирование) —
очень редко или никогда. Выбор языка и системы программирования имеет
принципиальное значение, т. к. от этого во многом зависит методика
изучения курса, содержание и последовательность предъявления учебного
материала, система учебных заданий и, главное, вся дальнейшая работа по
овладению программированием для решения реальных практических задач на компьютере.
От этого выбора напрямую зависит доступность восприятия, изучения
и овладения учащимся приемами и методами программирования.
Стоит отметить, что в настоящее время можно найти
достойную альтернативу языку Паскаль для изучения в общеобразовательной школе. Наш
выбор, в качестве альтернативы, пал на язык программирования Python. На нем
можно разрабатывать серверные и клиентские программы, сайты и веб
сервисы, мобильные приложения и программировать роботов. Самое главное,
что на рынке труда Python-программисты получают широкую востребованность,
и она будет расти еще много лет, ведь язык Python используют крупные
корпорации в своих коммерческих проектах.
Кроме этого:
1. Язык
чрезвычайно прост и содержит небольшое количество ключевых слов, но вместе с
тем очень гибок и выразителен;
2. Язык Python входит в
пятерку самых популярных языков по различным международным авторитетным
рейтингам (RedMonk, IEEE Spectrum, TIOBE и др.)
3. Кроссплатформенность
языка: интерпретатор Python
реализован практически на всех платформах и операционных системах;
4. Расширяемость
языка - имеется возможность совершенствования языка любым заинтересованным
программистом;
5. Наличие
большого числа подключаемых к программе модулей, обеспечивающих различные
дополнительные возможности.
Одним
из таких модулей является библиотека ev3dev.ev3, которая позволяет управлять
роботом Lego Mindstorms EV3 с помощью языка Python – т.е. программа,
написанная на языке Python с помощью
команд библиотеки ev3dev.ev3может быть исполнена роботом Lego Mindstorms EV3.
Мы сейчас не будем вдаваться в технические подробности настройки и
«перепрошивки» интеллектуального блока Lego Mindstorms EV3, но справедливости
ради стоит отметить, что при должном уровне технической грамотности тот же
робот Lego Mindstorms EV3 может «понимать» около десятка современных языков
программирования (таких как Java, C, C#, и др.)
№
урока
|
Тема
урока
|
Содержание
практической части урока
|
Основные
отличия от примерной рабочей программы
|
Тема «Начала программирования»
|
24
|
Общие сведения о языке программирования
|
Введение в язык программирования Python: алфавит,
служебные слова, структура программы Python
|
Изучение более современного и «мощного» языка программирования
|
25
|
Организация ввода и вывода данных
|
Возможности связки Python-EV3: графический экран, управляющие кнопки, аудио- и видео- вывод
информации. Операторы ввода/вывода информации
|
Возможность работать с аудио- и видео- выводами информации
|
26
|
Программирование линейных алгоритмов
|
Арифметические операции. Основные управляющие команды языка
Python для блока EV3. Простейшие программы робота: движение, повороты, прохождение
заданной траектории
|
Написание не только вычислительных программ, но и «исполняемых»
|
27
|
Программирование разветвляющихся алгоритмов. Условный оператор
|
Использование датчиков робота для оценки окружающей среды и
изменения поведения робота в соответствии с полученными данными. Датчик
касания, ультразвуковой датчик.
|
«Визуализация» алгоритма – поведение робота зависит от окружающей
среды и показаний датчиков
|
28
|
Составной оператор. Многообразие способов записи ветвлений
|
29
|
Программирование циклов с заданным условием продолжения работы
|
Прохождение лабиринта роботом, поиск оптимального пути. Движение
по линии. Релейный и пропорциональный регуляторы
|
Элемент соревнований по написанию оптимальной программы для
робота
|
30
|
Программирование циклов с заданным условием окончания работы
|
Задача из серии «охотник и жертва»: робот должен догнать
движущийся объект и следовать за ним на заданном расстоянии.
Задача по объезду препятствий на пути следования робота.
|
Решение актуальной проблемы беспилотных автомобилей
|
31
|
Программирование циклов с заданным числом повторений
|
32
|
Различные варианты программирования циклического алгоритма
|
33
|
Обобщение и систематизация основных понятий темы «Начала
программирования». Проверочная работа
|
Соревнования по робототехнике из серии «Лабиринт» или «Траектория».
Отличительная особенность – база у всех одинакова, отличия лишь в программной
реализации
|
Проверочная работа в форме образовательного события с
практическим выходом в виде написания программы для участия в городских
(региональных) соревнования по робототехнике.
|
Ожидаемые результаты изучения раздела «Алгоритмы и
начала программирования» в предлагаемом нами виде в своей декларативной части
не отличаются от требований программы изучения предмета «Информатика». Но в
практической части можно выделить некоторые особенности:
1. Изучение
современного языка программирования, востребованного на рынке труда и имеющего
высокую практическую направленность.
2. Вовлечение
детей в прикладное программирование, через практическую деятельность на уроках
информатики.
3. Знакомство
с элементами робототехники на уроках информатики.
4. Воспитание
инженерной культуры, через развитие алгоритмического мышления.
5. Повышение
мотивации к изучению программирования и переориентация ученика в основных видах
деятельности по использованию компьютера.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.