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

Ключевые слова: логика, логическое мышление, виртуальный робот, виртуальная среда VEX VR, алгоритмы.

Термин «логика» происходит от греческого слова «logos», что значит «мысль», «слово», «разум», «закономерность», и используется как для обозначения совокупности правил, которым подчиняется процесс мышления, отражающий действительность, так и для обозначения науки о правилах рассуждения и тех формах, в которых оно осуществляется [5]. Логично – означает мыслить точно и последовательно, не допускать противоречий в своих рассуждениях [1], поэтому развитие логического мышления имеет важное значение при организации учебных занятий. Дефицит логики у людей является одной из универсальных причин человеческих бед, на любом уровне противоречий – от личной жизни, до уровня организации и устройства всего общества [4], [8]. Если мы опираемся на достоверные данные и, анализируя их, делаем умозаключения, не нарушая законов логики, то в обязательном порядке придем к достоверным выводам, к знанию, которому можно доверять [2]. Именно так люди изобретают новые сложнейшие устройства, включающие в себя: телефоны, машины, роботы и другие инновационные механизмы.

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

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

Задача №1. Дисковый лабиринт [11]

Для решения данной задачи выберем поле «Дисковый лабиринт», на котором расположены диски с соответствующими цветными полями (см. рисунок 1).

Рис. 1. Дисковый лабиринт

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

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

После этого, учитель задает детям вопросы:

  1. Диск какого цвета встретится роботу первым, если начинать движение со старта и двигаться только прямо?
  2. Как только робот достиг первого диска, куда ему следует продолжить движение, чтоб не врезаться в стену?
  3. Сколько раз роботу нужно повернуть, прежде чем он достигнет красного диска и остановится?

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

Такую программу легко реализовать с помощью оператора ветвления:

Если <логическое выражение> тогда <действие>.

Составляем четкую последовательность команд:

  1. Если датчики робота обнаружили зеленый цвет, то следует повернуть направо на 90 градусов,
  2. Если датчики обнаружили синий цвет, то роботу нужно повернуть налево на 90 градусов.
  3. Если датчики обнаружили красный цвет, робот должен остановиться.

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

После того как алгоритм составлен, собираем его в виртуальной среде VEX VR с помощью соответствующих блоков (см. рисунок 2):

Рис. 2. Алгоритм с повторением

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

Задача №2. Перемещение фишек [12]

Условия задачи: собрать все фишки и переместить их в поле соответствующего цвета, при этом не разбившись о стены (см. рисунок 3).

Рис. 3. Перемещение фишек

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

  1. Доехать до синей фишки;
  2. Остановиться;
  3. Забрать фишку с помощью магнита;
  4. Развернуться на 180 градусов;
  5. Доехать до синего поля;
  6. Остановиться;
  7. Оставить в синем поле фишку;
  8. Развернуться на 180 градусов.

У учащихся может возникнуть вопрос, как сделать так, чтобы робот заметил фишку и забрал ее? Для решения этой задачи, нужно напомнить о существовании датчиков цвета и цикла с предусловием:

Пока <логическое выражение> делать

Добавим конструкцию <ждать пока> в алгоритм. Теперь робот будет двигаться, пока датчик не обнаружит фишку синего цвета, потом он ее заберет, развернется на 180 градусов и поедет к синему полю.

На данном этапе можно предложить ученикам реализовать алгоритм в виртуальной среде VEX VR. Однако они столкнутся с новой проблемой, ведь еще пока не было обозначено условие, при котором робот остановится в синем поле, а не врежется в стену. Предложим учащимся порассуждать о том, что можно сделать, чтобы не допустить этого? Очевидно, необходимо воспользоваться циклом с предусловием пока <логическое выражение> делать.

Сразу после того, как робот схватит фишку и развернется на 180 градусов, зададим цикл с условием: «Расстояние до препятствия <200 мм». Теперь, когда робот будет возвращаться обратно к синему полю, он не врежется, остановится за 200 мм от нижней стены, оставит фишку и развернется на 180 градусов.

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

После того, как робот переместит все фишки синего цвета в соответствующее поле, робот должен будет переместиться в соседнее поле красного цвета и повторить алгоритм сбора фишек. Затем все то же самое сделать с фишками зеленого цвета.  Для перемещения из синей клетки в красную, напишем исполнителю систему команд:

  1. Повернуть влево,
  2. Проехать 800 метров,
  3. Повернуть влево на 90 градусов.

Поскольку алгоритмы с красными и зелеными фишками повторяются, можно подсказать учащимся о том, что следует их также вложить в цикл и повторить три раза. Так программа будет короче, а значит быстрее выполняться. Не забываем добавить логические операции «ИЛИ» датчику обнаружения фишек. Поскольку данная последовательность действий будет выполняться с тремя различными цветами, то и в конструкции <ждать пока> должны быть представлены все цвета.

Предложим учащимся реализовать программу в виртуальной среде VEX VR. Если алгоритм составлен верно, то робот сначала повторит три раза действия со сбором фишек синего цвета, затем три раза повторит сбор фишек красного цвета и потом три раза повторит сбор фишек зеленого цвета. Программа сработает верно. Однако, после того как робот переместит все фишки зеленого цвета, он врежется в правую стену. Это произойдет, потому что сработает третий раз цикл перехода исполнителя от поля одного цвета к полю другого цвета. Чтобы избежать крушения, добавим оператор условия:

Если <логическое выражение> тогда <действие>

Установим, что расстояние перемещения от поля к полю должно быть больше 400 мм. Если оно меньше, робот остановит.

Полный алгоритм робота по сбору фишек представлен на рисунке 4:

Рис. 4. Полный алгоритм робота по сбору фишек

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

Задача №3. Детектор линии [9]

Условия задачи: необходимо в зависимости от локации робота (A, B, C, D, E) посчитать количество линий черного, синего, зеленого и красного цветов и вывести соответствующие значения на экран (см. рисунок 5).

Рис. 5. Детектор линии

Для начала подготовим систему задач: предлагаем ребятам порассуждать, что нам нужно, чтобы выполнить данную задачу:

  • В каком направлении будет ехать робот?
  • Какой датчик(и) нам здесь необходим(ы)?
  • Нужно ли здесь использовать цикл, если да, то какой?
  • Как вывести количество подсчитанных значений на экран?
  • Нужны ли нам здесь операторы? Если да, то какие?
  • И наконец, с помощью каких блоков будем реализовывать данную программу?

Определяем, что наш робот будет двигаться только прямо: либо по дороге A, либо B, либо C, либо D, либо E (программа должна работать, вне зависимости от того, на какую дорожку мы поставим робота). По ранее изученным программам, учащиеся уже должны ответить, что нам здесь необходим датчик цвета для распознавания цвета линий, а также цикл с предусловием <повторять пока>. Повторяем учащимся, что цикл выполняется до тех пор, пока заданное условие остается истинным. Еще мы будем использовать оператор ветвления: если <логическое выражение> тогда <действие>. Продолжаем беседу с ребятами, отвечая на вопрос, какие операторы здесь нужны, поясняем: в состав операторов входят ключевые слова, переменные, константы, операции и выражения. В одной строке программы может быть записано несколько операторов и один оператор может быть записан в нескольких строках.

Реализуем программу:

Для начала создадим переменные с названиями цветов и присваиваем им значение 0, и удаляем значения с экрана, устанавливаем скорость движения (порассуждаем, что будет происходить с роботом, если установить скорость движения больше? А если меньше?). Итак, наш робот движется прямо, чтобы он распознавал цвет линии, мы задаем условие: <если датчик цвета обнаружил красный>, то с помощью оператора присваивания увеличиваем значение на 1. Повторяем данное условие с каждым цветом. Помещаем все наши условия в цикл <повторять пока…>. Нужно ли нам использовать блок <ждать … в секундах>? Безусловно, необходимо, так как задержка в секундах нужна, чтобы датчик не считывал цветной блок лишнее количество раз. Добавляем в программу блоки вывода результата программы на экран. В результате считывания полосы D экран вывода будет выглядеть вот так (см. рисунок 6):

Рис. 6. Экран вывода

Итоговый код представлен на рисунке 7:

Рис. 7. Алгоритм решения задачи «детектор линии»

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

Задача №4. Лабиринт [10]

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

Упрощенная задача: написать блочный код для робота, перемещающегося, к примеру, из стартовой точки в пункт A, затем в другие пункты и так далее, дойдя уже до конечной точки (см. рисунок 8).

Рис. 8. Лабиринт

Рассуждаем с учениками, какими способами можно пройти лабиринт. Ученики предлагают свои варианты. Рассмотрим два из них. Первый — это написать программу, специальную под данный лабиринт. Робот будет двигаться по заданной траектории. Обратим внимание, что, если лабиринт поменяется или добавится/убавится стенка, то наш алгоритм с точки зрения логики и практичности будет неэффективен. Таким образом, учитель с учениками делают вывод о том, что необходимо видоизменить программный код, который будет универсален для любого лабиринта. Делаем акцент на логику и закономерность. Вводится понятие: датчик расстояния. Применим его в нашем коде. Благодаря ему робот, измеряет расстояние от себя и до стены и двигается только по тому пути, где стены нет. Целесообразно использовать логическую конструкцию <ждать пока (расстояние в мм) меньше 35>. Видим, как много повторяющихся пунктов, поэтому следует объединить их в цикл <ждать пока…>. Ранее изучив цикл <повтори n раз> учащиеся самостоятельно определяют, как с помощью него скорректировать наш алгоритм.

Итоговый алгоритм представлен на рисунке 9:

Рис. 9. Итоговый алгоритм

Дополнительные задания для учащихся:

  1. Видоизмените программу так, чтобы робот чертил за собой линию красного цвета.
  2. Установите роботу максимальную скорость и сделайте вывод: на какой скорости робот будет точнее проходить лабиринт.
  3. Реализуйте алгоритм таким образом, чтобы робот проходил все пункты.

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

Литература:

  1. Абушкин Д.Б., Карташова Л.И., Левченко И.В. Теоретический материал лабораторного практикума по информатике: учеб. Пособие для студентов вузов М.: МГПУ, 2017. 99 с.
  2. Асмус В.Ф. Логика. М.: Либроком, 2014. 390 с.
  3. Бочарова Т. Обучение основам алгоритмизации и программирования в вузе в условиях инновационной образовательной среды // Проблемы высшего образования. 2014. №1. С.162-164.
  4. Вылегжанина А.О. Управление ресурсами социально-экономического развития. М., Берлин: Директ-Медиа, 2015. 372 с.
  5. Гетманова А.Д. Учебник логики. Со сборником задач: учебник. 8-е изд., перераб. М.: КНОРУС, 2011. 368 с.
  6. Каган Э.М. Обучение программированию как подход к развитию логического, абстрактного и вычислительного мышления у школьников// Вестник Российского университета дружбы народов. Серия «Информатизация образования». 2017. Т. 14. №4. С. 442-451.
  7. Лёвкин В.Е. Логика мышления: диагностика, развитие и воспитание // Педагогический журнал. 2015. №6. С. 30-49.
  8. Рассел Б. Искусство мыслить. Москва: Дом интеллектуальной книги,1999. 240 с.
  9. Color Counting Algorithms (дата обращения: 09.11.2022).
  10. Computer Science Level 1 – Blocks. Unit 4 - Navigating a Maze. Lesson 4: Wall Maze Challenge // STEM labs (дата обращения: 09.11.2022).
  11. Computer Science Level 1 – Blocks. Unit 7 - Decisions with Colors. Lesson 5: Disk Maze Challenge // STEM labs (дата обращения: 09.11.2022).
  12. Computer Science Level 1 – Blocks. Unit 8 - Moving Disks with Loops. Lesson 5: Disk Mover Challenge// STEM labs (дата обращения: 09.11.2022).

Development of logical thinking through programming virtual robots

Maksimova V.S.,
bachelor of 5 course of the Moscow City University, Moscow

Coauthor:
Grachevaea E.A.,
bachelor of 5 course of the Moscow City University, Moscow

Chernaja K.D.,
bachelor of 5 course of the Moscow City University, Moscow

Research supervisor:
Abushkin Dmitry Borisovich,
Associate Professor, Department of Informatics, Management and Technology, Institute of Digital Education of the Moscow City University, Candidate of Pedagogical Sciences

Annotation. The article is dedicated to the development of methodological recommendations for using tasks implemented in programming a virtual robot in the VEX VR environment. The authors have considered robotics tasks that contribute to the development of logical thinking. Various algorithm solutions for the tasks are proposed.
Keywords: Logic, logical thinking, virtual robot, VEX VR virtual environment, algorithms.

Literature:

  1. Abushkin D.B., Kartashova L.I., Levchenko I.V. Theoretical material of the laboratory workshop on computer science: a tutorial for university students - Moscow: MGPU, 2017. 99 pages.
  2. Asmus V.F. Logic. Moscow: Librokom, 2014. 390 pages.
  3. Bocharova T. Teaching the basics of algorithmization and programming in a university in the conditions of an innovative educational environment // Problems of higher education. 2014. № Page: 162-164
  4. Vylegjanina A.O. Resource management of socio-economic development. Moscow, Berlin: Direct-Media, 2015. 372 pages.
  5. Getmanova A.D. Logic textbook. With a collection of problems: a textbook. 8th ed., revised. Moscow: Knorus, 2011. 368 pages.
  6. Kagan E.M. Teaching programming as an approach to developing logical, abstract and computational thinking in schoolchildren // Bulletin of the Russian University of Friendship of Peoples. Series «Informatization of Education». 2017. Vol. 14. № Page: 442-451.
  7. Lyovkin V.E. Thinking logic: diagnosis, development and education // Pedagogical Journal. 2015. № Page: 30-49.
  8. Russell B. The Art of Thinking. Moscow: House of Intellectual Book, 1999. 240 pages.
  9. Color Counting Algorithms (date of the address: 09.11.2022).
  10. Computer Science Level 1 - Blocks. Unit 4 - Navigating a Maze. Lesson 4: Wall Maze Challenge // STEM labs (date of the address: 09.11.2022).
  11. Computer Science Level 1 - Blocks. Unit 7 - Decisions with Colors. Lesson 5: Disk Maze Challenge // STEM labs (date of the address: 09.11.2022).
  12. Computer Science Level 1 - Blocks. Unit 8 - Moving Disks with Loops. Lesson 5: Disk Mover Challenge // STEM labs (date of the address: 09.11.2022).