Методика обучения программированию на основе визуальных сред и робототехники
Автор: Катруш Г.В.
Журнал: Известия Волгоградского государственного педагогического университета @izvestia-vspu
Рубрика: Методология и технологии подготовки специалистов в системе профессионального образования
Статья в выпуске: 9 (192), 2024 года.
Бесплатный доступ
Обосновывается необходимость модернизации методики обучения школьников программированию в курсе информатики. Раскрывается потенциал использования визуальных сред программирования и робототехники при обучении программированию. Описывается модель авторской методики обучения программированию школьников.
Методика обучения программированию, программирование, визуальные среды, конструкторы роботов, компетенции программиста
Короткий адрес: https://sciup.org/148330095
IDR: 148330095
Текст научной статьи Методика обучения программированию на основе визуальных сред и робототехники
Сегодня в обществе сложилась ситуация острой нехватки специалистов в области программирования, в основном это связано с необходимостью разработки импортозамещающего программного обеспечения, которое необходимо для эффективной работы во всех сферах жизни общества.
По прогнозам к 2030 году уровень нехватки специалистов в области программирования достигнет нескольких миллионов, что повлечет за собой такие негативные последствия, как увеличение рисков в области кибербезопасности, снижение инновационности и увеличение зависимости от иностранных специалистов в сфере информационных технологий (IT). При этом программирование непрерывно развивается, на данный
момент можно выделить следующие значимые направления: веб-программирование, разработка игр, андроид- и iOS-разработка, разработка программного обеспечения, нейронные сети, искусственный интеллект и др.
Необходимо обратить внимание на ситуацию востребованности кадров в области программирования, уже начиная с системы школьного образования. В курсе информатики школы учащиеся впервые знакомятся с основами программирования и спецификой этого раздела информатики. Среди содержательных линий курса информатики присутствует линия «Алгоритмизация и программирование». Однако анализ существующей образовательной практики обучения информатике в школе показал, что количество часов, которое выделено на ее изучение, недостаточно, само обучение проходит на базе сложных языков программирования, требующих логического, алгоритмического, системного, структурного видов мышления, что вызывает у учащихся затруднения.
В основном при начальном обучении программированию в школьном курсе информатики разделы содержательной линии «Алгоритмизация и программирование» у разных авторов изучаются, начиная со 2 класса, затрагивая такие темы, как различия языка людей и языков программирования; алгоритм как форма действия; знакомство с понятиями «алгоритм» и «исполнитель». В результате этого акцент сделан на развитии алгоритмического мышления. В средней школе возобновление изучения тем, связанных с алгоритмами, и первые попытки их написания начинаются с 6 класса на примере управления исполнителем Чертежник, языка Pascal или Visual Basic, но в последнее время все большую популярность набирает язык программирования Python. В основном именно на нем сегодня учащиеся сдают ОГЭ и ЕГЭ по информатике, однако данный вариант все-таки достаточно сложен в качестве начального языка программирования. Обучающимся, которые программируют впервые, приходится сразу работать с абстрактными понятиями; судить о правильности написанного кода они могут только по внешним проявлениям его работы – ответу, который будет выведен на экран компьютера после завершения программы. При этом может быть не совсем очевидно, что программа работает правильно; как действовать, если результат, выведенный по итогу ее выполнения, неверный; как изменить программу, чтобы получить верный ответ. Как следствие, угасает познавательный интерес к изучению тем, связанных с программированием, они кажутся слишком сложными и незначительными.
В старшей школе особое внимание программированию уделяется в основном только при углубленном уровне изучения информатики.
Можно сделать вывод о том, что изучению тем, связанных с содержательной линией алгоритмизации и программирования, уделяется недостаточное количество времени, а также методы и средства, применяемые при этом, обладают малой долей визуализации и зачастую оказывают негативное влияние на интерес к изучению анализируемых тем. При обучении программированию с использованием текстовых языков программирования результатом выполнения является числовое значение, что делает сам процесс выполнения непонятным и неинтересным для обучающихся. Так, для ученика программа, которая производит сортировку массива, кажется не имеющей практического смысла, а следовательно, не вызовет интереса к программированию в целом.
В связи с этим важно на сегодняшний день провести модернизацию методики обучения программированию, направленную на рост мотивации и познавательного интереса у школьников в курсе информатики. Один из вариантов того, как можно справиться с решением такой задачи, предлагается в данном исследовании – это интеграция визуальных сред программирования и конструкторов роботов в обучении программированию [4]. Данное направление набирает популярность в рамках дополнительного образования, но также прослеживается потенциал для его использования в рамках классноурочного образовательного процесса по информатике в школе.
Можно сделать вывод о том, что в теории и методике обучения и воспитания (по информатике) на сегодняшний день существует проблема, связанная с недостаточной разработанностью эффективного подхода к современному обучению школьников программированию, что в дальнейшем может негативно повлиять на кадровый потенциал формирующегося цифрового общества, базирующегося на сфере программирования.
Многие ученые-методисты на протяжении ряда лет решают эту проблему. Исследования Л.Л. Босовой, Е.Г. Дорошенко, А.О. Глебовой, Е.В. Данильчук, Н.Ю. Куликовой, А.Л. Семенова, Н.В. Софроновой, Т.Н. Суворовой, Н.Н. Самылкиной, А.Н. Сергеева, И.Г. Семакина и др. [1; 3] посвящены ключевым направлениям совершенствования методики обучения программированию с учетом разных уровней образования.
Н.Д. Угринович, Т.Е. Сорокина, М.П. Лапчик, М.Е. Гурьевских, И.Г. Семакин, Э.М. Кагани, Н.Ю. Добровольская и др. [5; 11] посвятили свои работы теоретическим основам методики преподавания программирования с использованием визуальных сред разработки.
Разработкой методических подходов к обучению объектно-ориентированному программированию в визуальных средах программирования после того, как получены базовые навыки структурного программирования, занимаются такие авторы, как А.П. Пермякова, О.В. Смирнова и В.Ю. Нефедова и др. [8].
Такие авторы, как В.Ю. Нефедова и А.Ю. Петухов, рассматривают обучение программированию с использованием визуальных сред. Отмечается возможность обучения программированию без предварительного изучения структурного языка программирования, что подходит для обучающихся с разным уровнем подготовки и учебной мотивации [7].
Н.Ю. Пахомова, М.А. Ступницкая, Н.А. Барыкина, В.Ю. Короткова, А.В. Самохвалов, А.М. Герасимова, Н.Ю. Куликова, С. Ташлыкова, И.В Рожина, Д.В. Сидоренко, Е.К. Герасимова и другие исследователи [2; 9; 12] считают, что для повышения учебной мотивации при изучении программирования необходимо использовать визуальную составляющую в процессе обучения, а также предлагают внедрить метод проектов, ориентированный на разработку игровых проектов и приложений для повышения учебной мотивации при обучении программированию.
В работах Л.Г. Белиовской, А.Н. Богатырева, А.Н. Боголюбова, С.А. Зайцева, Н.В. Вознесенской, Л.Л. Босовой, В.Н. Халамова, М.В. Васильева, Д.Г. Копосова, Д.А. Никитина, Ю.А. Скурихиной, С.А. Филиппова и др. [10] рассматриваются вопросы, связанные с освоением робототехники в различных формах внеурочной деятельности. В процессе этой деятельности накоплен интересный и ценный опыт в области изучения робототехники среди учащихся разных возрастов и уровней подготовки. Однако необходимо отметить, что этот опыт носит пока фрагментарный характер. Наиболее часто сегодня наблюдается использование следующих конструкторов роботов: Lego Mindstorms EV3 Education, Vex IQ, Arduino и Клик. Каждый из этих наборов входит в образовательную линейку и предназначен для обучения.
Вместе с тем отметим, что несмотря на широкий спектр исследований по решению вопросов модернизации обучения программированию в школе, пока в школьном курсе информатики освоение разделов, связанных с алгоритмизацией и программированием, затруднено рядом факторов:
-
• большое количество абстрактного материала;
-
• востребованность развитого логического мышления;
-
• направленность разрабатываемых на уроке алгоритмов в основном на решение математических задач, которые сложно применяются в учебной и повседневной деятельности учащихся;
-
• необходимость освоения учащимся дополнительных знаний из других предметных областей, таких как математика и физика;
-
• ограниченность временных ресурсов на усвоение материала по заданной теме;
-
• клиповое мышление обучающихся;
-
• нечеткое представление о применимости и значимости умений, связанных с программированием в будущем.
В ходе нашего исследования сделана попытка построить авторскую методику обучения программированию, в основе которой рассматриваются в качестве приоритетных компетенций программиста следующие:
-
1. Алгоритмическое мышление – определение последовательности действий. Для программиста необходимо целостное осознание самой задачи, ее входных и выходных данных, понимание алгоритма как работы конечного продукта, выявление последовательности шагов, необходимых для решения поставленной задачи и получения результата.
-
2. Структурное мышление – выстраивание структуры алгоритма. При написании программного кода программисту необходимо выполнить декомпозицию задачи на более мелкие структурные единицы, описание каждой из которых должно решать подзадачу для получения результата, соответствующего поставленной цели.
-
3. Системное мышление – взаимосвязь между структурными единицами. Для корректной работы любого программного продукта он должен быть грамотно структурирован, каждый элемент должен выполнять свою функцию на определенном для него месте в общей системе, при этом не конфликтуя с другими элементами. Независимо от синтаксиса и языка программирования структура остается одна, отличия лишь в описании структурных элементов.
-
4. Логическое мышление – использование логики при построении программы. Для успешного написания программного кода программисту необходимо уметь выявлять причинно-следственные связи, что помогает предсказывать последствия действий в коде и видеть, как изменения в одной его части могут влиять на всю программу. Если программа выдает ошибку, то имеется возможность проанализировать последние изменения в коде, чтобы найти и исправить причину проблемы.
-
5. Мобильность в освоении новых знаний и умений в области программирования – постоянное обучение. Сфера программирования развивается очень стремительно, с каждым днем среды программирования обновляются и дополняются новыми возможностями, которые соответствуют нынешней ситуации. Специалист, который останавливается на достигнутых целях, вскоре может стать некомпетентным, не будет иметь возможности работать на достойном уровне.
-
6. Работа в команде – коммуникация с коллегами. Как правило, над разработкой крупного проекта работает целая команда специалистов: например, разработка сайта может включать в себя работу веб-дизайнера, верстальщика и веб-программиста. Работа каждого из этих специалистов важна и при этом имеет свои нюансы. Для успешного создания, например, сайта команда должна постоянно согласовывать свою работу, иначе возникнет конфликт возможностей, форм и наполнения сайта.
Представленный список является компетентностной моделью будущего специалиста в области программирования. Проведенное нами исследование направлено на развитие представленных компетенций у школьников при обучении программированию на основе интеграции средств визуального программирования и конструкторов роботов.
Визуальное программирование – это метод создания программы посредством осуществления манипуляций с объектами в графическом представлении вместо написания кода в виде текста.
Потенциал использования визуальных сред программирования в обучении программированию связан с такими особенностями, как:
-
• возможностью более наглядно изучить структуру готовой программы и оценить рациональность выбора метода и средств написания программного кода;
-
• простотой написания и тестирования первых программ, что помогает учащимся почувствовать себя успешными и позволяет облегчить процесс развития логического мышления, а это является основой для изучения программирования.
Использование робототехнического компонента связано с тем, что конструкторы роботов представляют собой материального исполнителя программного кода, который необходим для усиления эффекта визуализации при обучении программированию. Конструкторы роботов представляют собой набор совместимых элементов для построения каркаса будущей модели, а также электронных компонентов, позволяющих приводить в движение модель, программировать ее, анализировать внешние факторы посредством анализа данных, полученных из разнообразных датчиков.
Потенциал использования конструкторов роботов в обучении программированию связан со следующими аспектами:
-
• представление выполнения программного кода как порядка четких действий, которые должен выполнить исполнитель (робот), ассоциировав его действия со своими, которые обучающийся может также выполнить по шагам самостоятельно. Различия будут прослеживаться лишь в том, что он выполняет задание при помощи органов чувств и ощущений (зрение, ориентация в пространстве), а материальный исполнитель – при помощи набора датчиков;
-
• развитие интереса учащихся не только к программированию, но и технике, конструированию; формирование инженерного мышления. Использование подобных конструкторов в образовательном процессе ведет к популяризации технических профессий, а также прививает учащимся интерес к робототехнике.
По итогу исследования предлагается новый подход к обучению программированию, научная новизна которого состоит в разработке новой методики обучения на основе использования визуальных сред и конструкторов роботов. В отличие от традиционного подхода, представленная методика помогает увеличить долю визуализации выполнения программного кода, что позволяет упростить процесс усвоения полученных знаний, сделать обучение более мотивированным и интересным.
Разрабатываемая в ходе исследования модель авторской методики включает следующие основные компоненты: целевой компонент в виде компетенций программиста; содержательный компонент представляет модернизацию содержания в виде системы задач; процессуальный компонент связан с отбором методов, средств и форм обучения программированию на основе интеграции визуальных сред и конструкторов роботов.
Целевой компонент представлен компетенциями, описанными выше, в виде планируемых результатов освоения разделов информатики, связанных с программированием (виды мышления: алгоритмическое, структурное, системное, логическое; мобильность в освоении новых знаний и умений в области программирования, работа в команде). А также входят цели лабораторно-практических занятий, цели конкретных учебных ситуаций, цели проектов и т.д.
Содержательный компонент представлен системой заданий интегрируемых в общий подход к преподаванию программирования с поправками на использование визуальных сред программирования и конструкторов роботов. Обучающие задания направлены на получение новых знаний, навыков и умений. Контролирующие задания направлены на проверку полученных знаний, навыков и умений.
В каждую из этих групп входят следующие группы задач:
-
• Строго определенные подразумевают решение задачи (индивидуально или командно) при помощи определенного алгоритма (который необходимо реализовать), а также определенной конфигурации (набора датчиков) материального исполнителя.
Лабораторно-практическое задание к уроку 5
Тема «Алгоритмическая конструкция ветвление. Полная форма ветвления»
Цель занятия: обобщить представлешія об алгоритмической конструкции «ветвление»; получить навыки записи составных условий; получить навыки вьшолнения алгоритмов с ветвлешіями для различных формальных исполнителей; получить навыки разработки алгоритаов с ветвлешіями для различных формальных исполнителей с заданной системой команд.
Технология выполнения:

Алгоритм выполнения задания |
Примерные результаты в среде "Scratch" |
Введение понятия «ветвление». Разбор примеров из жизни, в которых встречается данная конструкция |
|
Совместное обсуждение алгоритмов, в которых используется ветвление (взять ли утром зонтик и т.д) |
|
Изучение правил записи и выполнения алгоритма с ветвлением через блок-схему (учащимся у доски) |
Рис. 1. Пример лабораторно-практического занятия
Датчик ультразвука (принципы работы)
Главное назначение ультразвукового датчика, это определение расстояния до предметов, находящихся перед ним. Ультразвуковой датчик может выдавать измеренное расстояние в сантиметрах или в дюймах. Диапазон измерений датчика в сантиметрах равен от 0 до 255 см, в дюймах - от 0 до 100 дюймов.


Левый окуляр датчика посылает звуковую волну высокой частоты (ультразвук) в виде пучка расходящегося примерно на 30 градусов, второй окуляр ловит обратную волну, отраженную от объекта и, замерив время на возвращение ультразвукового импульса, с высокой точностью рассчитывает расстояние до предмета.
Оптимальное расстояние »о объекта составляет от 3 см!!! Если расположить объект ближе, датчик будет показывать максимальное расстояние 255.
Рис. 2. Пример карточки, объясняющей принципы работы ультразвукового датчика EV3
Например: обнаружить объект, находящийся с любой стороны от исполнителя на расстоянии 30 см, затем подъехать к нему на расстояние 10 см и остановиться. Реализовать программу при помощи цикла с заданным условием окончания и полного ветвления. Дополнить исполнителя датчиком ультразвука. Результатом выполнения должно быть движение исполни- теля вокруг своей оси до момента обнаружения перед ним объекта, затем прямолинейного движения в сторону объекта и остановки перед ним на расстоянии 10 см.
-
• Творческие подразумевают самостоятельный подбор инструментов и методов для решения поставленной задачи.
Например: движение исполнителя на заданное расстояние до объекта, затем разворот на 180 градусов и возвращение в исходную точку. Выполнение поставленной задачи может быть выполнено как при помощи комбинации датчиков (ультразвукового датчика для определения объекта, энкодера для расчета пройденного расстояния, гироскопического датчика для измерения угла поворота), так и при помощи вычислений и линейного выполнения последовательности точных команд.
-
• Командные подразумевают задачу, которая разбита на 2 и более структурных элемента, разработка и отладка которых может быть выполнена каждой группой команды независимо друг от друга, затем они могут быть объединены в целостную структуру для решения поставленной задачи.
Например: материальному исполнителю при помощи датчика цвета необходимо двигаться по заданной траектории (черной линии на белом поле), затем при обнаружении датчиком ультразвука объекта на траектории движения необходимо остановиться и выполнить его объезд. В данном случае задача может быть разбита на 2 структурных элемента: езда по заданной траектории и обнаружение объекта с его последующим объездом.
-
• Соревновательные – при выполнении подобных задач учащимся необходимо добиться как можно более точного выполнения поставленной задачи, следовательно, более тщательно поработать с элементами, от которых зависит результат.
Например: при помощи датчика ультразвука определить и вытолкнуть за пределы черной линии объекты, находящиеся на равноудаленном расстоянии вокруг материального исполнителя так, чтобы сам исполнитель не покинул очерченную границу. При выполнении поставленной задачи обучающимся необходимо точно рассчитать расстояние, на котором исполнитель заметит объекты, которые ему необходимо вытолкнуть, а также расстояние, которое ему необходимо преодолеть, чтобы при выталкивании самому не оказаться за пределами очерченной границы.
Процессуальный компонент представлен в виде лабораторно-практических занятий и методических рекомендаций. Были разработаны лабораторно-практические занятия для 9 уроков, посвященных программированию в 6 классе, а также для 11 уроков в 8 классе (рис. 1 на стр. 37). Лабораторно-практические занятия были разработаны на основе рабочей программы Л.Л. Босовой.
Также был разработан онлайн-курс, посвященный основам работы с набором Lego Mindstorms EV3*.
Разработан набор карточек с информацией о принципах работы, методах установки и особенностях используемых на занятии датчиков (рис. 2 на стр. 37).
Методы обучения предлагаются следующие : решение кейсов, проектная деятельность, элементы соревнования между группами учащихся, мозговой штурм.
Формы обучения : смешанное обучение, командная, групповая и индивидуальная работа.
Средства обучения: рекомендации по подбору робототехнического набора для проведения занятий, набор лабораторно-практических занятий, схемы сборки материального исполнителя для конкретного лабораторно-практического занятия, онлайн- курс «Основы робототехники»; карточки с особенностями работы и установки датчиков, входящих в состав конструктора роботов, разработанную систему заданий.
Использование робототехнических наборов позволит вовлечь обучающихся в проектную деятельность, организовать межпредметную интеграцию информатики с физикой, географией и технологией.
Методика обучения программированию на основе использования визуальных сред программирования и робототехнических наборов реализуется на основе выполнения следующих педагогических условий: организационно-педагогические (подбор оптимального варианта робототехнического оборудования и его количество соответственно количеству обучающихся, готовность педагога к использованию визуального программирования и робототехнических наборов, понимание его значимости и возможностей по сравнению с традиционным программированием), психолого-педагогические (использование игрового формата проведения занятий, работа в командах, направленность на развитие творчества, создание ситуации успеха) и дидактические (введение элемента конструирования, вовлечение обучающихся в проектную деятельность, организация межпредметных интеграций информатики с физикой, географией и технологией).
Список литературы Методика обучения программированию на основе визуальных сред и робототехники
- Босова Л.Л., Самылкина Н.Н., Мишин В.А. О разноуровневом обучении программированию в курсе информатики основной школы в условиях дифференциации содержания обучения // Преподаватель XXI век. 2024. №1. С. 253–273.
- Герасимова Е.К., Гавриловская Н.В., Соболева Е.В., Суворова Т.Н. Исследование условий включения элементов геймификации в изучение основ алгоритмизации и программирования для повышения качества образовательных результатов обучающихся // ПНиО. 2021. №4(52). С. 461–477.
- Данильчук Е.В., Куликова Н.Ю., Сергеев А.Н. Образовательные онлайн-сообщества учащихся: обучение информатике в современной педагогической практике общего и высшего образования: монография. Волгоград, 2023.
- Данильчук Е.В., Куликова Н.Ю., Цымбалюк Г.В. Онлайн-обучение основам программирования и робототехнике в сетевых образовательных сообществах учащихся // Педагогическая информатика. 2021. №4. С. 29–39.
- Каган Э.М. Возможности и перспективы применения технологий и средств визуального
- программирования при обучении школьников // Вестник РУДН. Серия: Информатизация образования. 2018. №1. С. 18–28.
- Малова А.И., Куликова Н.Ю. Использование визуальных сред разработки компьютерных игр при обучении алгоритмизации и программированию // Образование и проблемы развития общества: сборник научных статей Международной научно-методической конференции. 2019. С. 18–21.
- Нефедова В.Ю. Обучение объектно-ориентированному программированию в системе дополнительного образования детей // Вестник ОГУ. 2014. №2(163). С. 155–159.
- Пермякова А.П. Интерактивный учебник по объектно-ориентированному программированию в среде DELPHI 5.0. [Электронный ресурс] // Информационные технологии в образовании. URL: http://bitpro.rU/ito/2002/I/l/I-l-648.html (дата обращения: 05.08.2024).
- Сидоренко Д.В. Исследование современных методов обучения на основе разработки обучающей компьютерной игры по языкам программирования // Известия ТулГУ. Технические науки. 2022. №10. С. 175–182.
- Скурихина Ю.А. Методические принципы изучения робототехники в рамках урочной и внеурочной деятельности // Концепт. 2018. №4. С. 37–47.
- Сорокина Т.Е. От stem к STEAM-образованию через программную среду Scratch // Современные информационные технологии и ИТ-образование. 2015. №11. С. 362–366.
- Уфимцева П.Е., Рожина И.В. Обучение программированию младших школьников в системе дополнительного образования с использованием среды разработки Scratch // Наука и перспективы. 2018. №1. С. 29–35.