ИСПОЛЬЗОВАНИЕ ТЕХНОЛОГИИ WORKED EXAMPLES ПРИ ПРОПЕДЕВТИКЕ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
Бутарев Кирилл Викторович,
студент,
Московский педагогический
государственный университет
Аннотация: В статье рассматривается использование готовых и неготовых примеров в процессе обучения; приводятся результаты иностранных исследований, посвященных изучению влияния примеров и задач на развитие когнитивных способностей учащихся; рассказывается про опыт разработки пропедевтического курса, посвященного изучению основ объектно-ориентированного программирования учащимися 5-6 классов, с использованием примеров; демонстрируется использование примеров в контексте рассматриваемого курса.
Ключевые слова: Worked Examples, Incomplete Examples, Example-Problem Pairs, объектно-ориентированное программирование, Greenfoot, обучение, пропедевтика, информатика.
Обучение программированию – одно из самых динамичных и перспективных направлений в современной педагогике и, в частности, в курсе информатики. Повышенное внимание к изучению основ программирования можно отметить в разных странах. Специалистами предлагаются к использованию различные методы обучения [8], включая технологии геймификации [15] и, в частности, метод обучения на готовых примерах [9].
Использование примеров решения задач в процессе обучения подразумевает под собой умение решать задачи, полученное через использование описанных примеров. По мнению ряда специалистов оно может быть более эффективным, чем умение решать задачи, полученное в результате традиционного обучения [5]. Отмечается также, что совмещение традиционной технологии обучения с использованием технологии обучения на готовых примерах может стать основой для повышения успешности обучающихся, что подтверждается работами Renkl A., Atkinson R. K. и Maier U. H. [3]. Эти специалисты описывают два способа совмещения обучения на примерах и решения задач:
- предоставляемый пример для разбора не подразумевает под собой полного решения, то есть, нуждается в доработке учащимися (Incomplete Examples);
- разобранный пример сопровождается альтернативной задачей, которую необходимо решить учащимся (Example-Problem Pairs).
Оба описанных способа хорошо зарекомендовали себя в современной педагогике. Так исследование Stark R., посвященное изучению влияния Incomplete Examples [4], показало, что данный способ помогает процессу обучения за счет получения и развития когнитивных навыков обучающихся. Про способ Example-Problem Pairs было сказано, что это «самый эффективный способ предоставить материал, предназначенный для приобретения навыка» [6].
При этом, чаще всего при демонстрации примера решения задачи используют инструкции, которые описывают совершение необходимых для решения задачи действий (Worked Examples). Подобная технология подразумевает под собой следующий состав: постановка задачи, описание шагов решения задачи и само решение. Данный подход к подаче материала позволяет развить первичные умения, необходимые при решении задач и способствует «когнитивной гибкости» при демонстрации большого количества аналогичных примеров с разными способами решения задач [1], особенно в хорошо структурированных областях, таких как математика, физика и программирование [7].
Данные способы давно укоренились в отечественной и зарубежной практике. Так, при рассматрении современных учебников и самоучителей по программированию, часто встречаются словосочетания «на примерах» или «на примерах и задачах»; если иллюстрировать – «Microsoft Visual C# в задачах и примерах» [16], «C++. Освой на примерах» [14], «PHP в примерах» [19], «Python на примерах. Практический курс по программированию» [12], «Программирование на JavaScript в примерах и задачах» [13] и т. д. В описанных выше изданиях есть примеры кода на языках программирования с подробными комментариями и заданиями, связанными с изменением представленного кода или написанием своего, порой по инструкции. Как мы видим, использование метода обучения, основанного на разборе примеров, довольно популярно в процессе обучения программированию. Между тем школьные учебники в настоящее время используют традиционную модель обучения, не обращаясь к работе с готовыми примерами.
В 2017-2018 учебном году группой в составе Павлова Д. И. и Бутарева К. В. под научным руководством Горячева А. В. была проведена апробация базового курса обучения основам ООП в среде Greenfoot, созданного разработчиками Greenfoot [2], в 5-6 классах [10].
По результатам апробации были определены следующие направления работы [17]:
- «экспериментальная апробация адаптированных и авторских разработок в области обучения основам ООП в 5-6 классах;
- подготовка авторских, русскоязычных проектов по освоению основ ООП на базе Greenfoot для 5-6 классов;
- подготовка учебной программы, методических материалов и учебных пособий по реализации программы освоения основ ООП в 5-6 классах, с использованием технологии геймификации, на базе Greenfoot».
Любая методика должна отвечать на вопрос «Как учить?», то есть, иметь набор форм, методов и средств обучения. Тогда, рассматривая вопрос «Как учить объектно-ориентированному программированию (ООП) учащихся 5-6 классов?», стоит сказать, что форма обучения (внеурочная) и средства обучения (GREENFOOT, Java), а также частично – методы обучения (геймификация), были обоснованы и описаны ранее [11, 18].
Основываясь на том, что использование примеров и задач в учебном процессе зарекомендовало себя эффективным методом обучения, авторским коллективом разрабатываемого курса был выбран метод решения задача на основе разбора и редактирования написанного программного кода.
Разрабатываемый курс нацелен на ознакомление учащихся с идеями ООП. На настоящий момент созданы два учебных модуля, нацеленных на знакомство со средой программирования Greenfoot, языком программирования Java и основными понятиями ООП. Каждый модуль состоит из восьми занятий. При чем первые 6 занятий в обоих модулях имеют безкомпьютерные и компьютерные задания. Для выполнения компьютерных заданий учащимся предоставляется код частично написанной компьютерной программы, который учащиеся должны завершить самостоятельно (Incomplete Example). Система заданий так же содержит описание решения какой-либо проблемы (Worked Examples) и ряд аналогичных проблем, решение которых может немного отличаться от примера (Example-Problem Pairs). Решение данных задач и будет завершать написание кода программы учащимся.
Например, занятие три из первого модуля. Учащийся открывает код программы – компьютерной игры, в которой главный персонаж Бегун (Бегун может быть мышью, енотом или хомяком) перемещается по игровому пространству и ест Еду (сыр, хлеб или орех). В коде программы имеется блок с описанными константами – скорость Бегуна, вид Бегуна, количество Еды в игровом пространстве, вид Еды и т. д. Все константы в коде имеют подробные комментарии, чтобы учащиеся не могли запутаться. Так, учащимся демонстрируется, как с помощью изменения значения специальной переменной изменить управление Бегуна (Стрелки на клавиатуре –> клавиши WASD), после чего идёт система заданий, связанная изменением других констант.
На протяжении первых шести занятий учащиеся работают с одной и той же программой, в которой появляется новый код на каждом занятии. По итогу шести занятий учащиеся должны завершить программу, при этом, конечный вид программы не регламентирован, главный критерий выполнения – корректная работа программы – возможность играть в созданную игру. Таким образом, учащимся рассказывается только часть решения поставленной задачи, что является примером Incomplete Example.
Реализация первых шести занятий и седьмого в совокупности является более ярким примером использования Example-Problem Pairs. Седьмое занятие является диагностическим и проверяет наличие умений, формируемых на протяжении первых шести занятий. Учащимся предоставляется код новой программы и задания, аналогичные уже выполненным.
Восьмое занятие ориентированно на поиск ошибок в написанной программе. Изначально приводится пример ошибки, её поиска и исправления, а далее учащиеся получают набор программ, в которых необходимо найти и исправить допущенные в них ошибки.
Таким образом видно, что авторы используют разные способы организации метода, основанного на использовании примеров и задач в совокупности – Incomplete Examples и Example-Problem Pairs и технологию Worked Examples.
В настоящий момент времени в ряде столичных школ ведётся апробация разработанных модулей. Результаты этой апробации позволят скорректировать программу, проверить адекватность выбранных методов и средств. Члены авторского коллектива открыты для предложений об апробации, а результаты внедрения среды Greenfoot в образовательный процесс будут опубликованы в научно-методических сборниках.
- Atkinson R. K. Derry S. J., Renkl A., Wortham D., Learning from Examples: Instructional Principles [Конференция] // Review of Educational Research. — 2000.
- Kölling M. Introduction to Programming with Greenfoot. Object-Oriented Programming in Java with Games and Simulations [Книга]. — [б.м.] : Pearson, 2010.
- Renkl A. Atkinson R. K., Maier U. H., From Studying Examples to Solving Problems: Fading Worked-Out Solution Steps Helps Learning [Конференция] // Proceedings of the 22 nd Annual Conference of the Cognitive Science Society. — 2000.
- Stark R. Lernen mit Lösungsbeispielen: Einfluss unvollständiger Lösungsbeispiele auf Beispielelaboration, Lernerfolg und Motivation [Статья] // Verlag für Psychologie. — [б.м.] : Hogrefe, 1999 г..
- Sweller J. van Merriënboer J. J. G., Paas F. G., Cognitive architecture and instructional design [Конференция] // Educational Psychology Review. — 1998.
- Trafton J. G. Reiser B. J., The contributions of studying examples and solving problems to skill acquisition [Конференция] // Proceedings of the Fifteenth Annual Conference of the Cognitive Science Society. — Hillsdale : Erlbaum, 1993.
- VanLehn K. Cognitive skill acquisition [Конференция] // Annual Review of Psychology. — 1996.
- Босова Л. Л. Как учат программированию в XXI веке: отечественный и зарубежный опыт обучения программированию в школе [Статья] // Информатика в школе. — 2018 г.. — 6.
- Босова Л. Л. Каплан А. В., Международная конференция по школьной информатике ISSEP 2018 [Статья] // Информатика в школе. — 2018 г.. — 9.
- Бутарев К. В. Greenfoot как инструмент обучения программированию с элементами объектно-ориентированного подхода [Конференция] // Актуальные проблемы методики обучения ин-форматике в современной школе – материалы международной научно практической конференции 24-26 апреля 2018 год. — Москва : МПГУ, 2018.
- Бутарев К. В. ГЕЙМИФИКАЦИЯ КАК МЕТОД ОБУЧЕНИЯ ОСНОВАМ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ В ОСНОВНОЙ ШКОЛЕ [Конференция] // Информатизация непрерывного образования – 2018 . — Москва : РУДН, 2018.
- Васильев А. Н. Python на примерах. Практический курс по программированию [Книга]. — Санк-Петербург : Наука и Техника, 2016.
- Васильев А. Н. Программирование на JavaScript в примерах и задачах [Книга]. — Москва : Издательство «Э», 2017.
- Динман М. И. C++. Освой на примерах [Книга]. — Санкт-Петербург : БХВ-Петербург, 2006.
- Каплан А. В. Применение технологии геймификации в проведевтике программирования в начальной школе [Статья] // Информатика в школе. — 2018 г.. — 6.
- Культин Н. Б. Microsoft Visual C# в задачах и примерах [Книга]. — Санк-Петербург : БХВ-Петербург, 2009.
- Павлов Д. И. Бутарев К. В., Балашова Е. В., О ПЕРСПЕКТИВАХ ИСПОЛЬЗОВАНИЯ ТЕХНОЛОГИЙ ГЕЙМИФИКАЦИИ ПРИ РАННЕМ ОБУЧЕНИИ ОБЪЕКТНО-ОРИЕНТИРОВАННОМУ ПРОГРАММИРОВАНИЮ [Статья] // Международный научный журнал «Современные информационные технологии и ИТ-образование». — Москва : [б.н.], 2018 г..
- Павлов Д. И. Бутарев К. В., Пропедевтика объектно-ориентированного программирования с использованием среды GREENFOOT. Опыт разработки [Конференция] // Актуальные проблемы обучения математике и информатике в школе и вузе: материалы IV Международной научной конференции в двух томах. Т. 1. ФГБОУ ВО «Московский педагогический государсветнный университет» (МПГУ), 4-5 декабря. — Калуга : АКФ «Политоп», 2018.
- Хольцнер Стивен PHP в примерах [Книга]. — Москва : БИНОМ, 2007.
Кирилл Викторович, скажите, справились ли ученики с проверочным заданием? Не стал ли довольно сложный синтаксис Java помехой? И как прошло занятие на поиск и исправление типовых ошибок? Смогли ли за короткий период обучающиеся освоить навыки чтения незначительных фрагментов кода?
Доброго времени суток, уважаемый Дмитрий Игоревич! Спасибо за вопрос! Можно утверждать, что занятие, направленное на диагностику полученных умений, прошло успешно с точки зрения результатов, которые показали ученики: в отведенное время занятия все задания выполнили большинство учащихся. В рамках разрабатываемого курса уделяется достаточно внимания синтаксису языка программирования Java, но все же, акцент делается на более общих понятиях самой объектно-ориентированной парадигмы программирования, в чем помогает сама среда разработки Greenfoot, например: необязательно писать код, чтобы создать объект. В теоретических частях многих занятий объясняются некоторые конструкции языка, с которыми учащиеся непосредственно не будут иметь дело (редактировать или репродуцировать), — это делается для того, чтобы… Read more »
Уважаемый Кирилл Викторович!
Спасибо за интересный материал. По Вашему мнению, что может быть альтернативой используемым Вами в 5-6 классах Greenfoot и Java?
Доброго времени суток, уважаемая Людмила Леонидовна! Спасибо за вопрос! Говоря про язык, стоит отталкиваться от того, что в рамках нашего курса в самом начале учащиеся скорее редактируют существующий код, чем с нуля его создают, а подобный подход можно реализовать на любом языке программирования, который поддерживает объектно-ориентированную парадигму. И выбор языка программирования Java скорее обусловлен выбором среды разработки Greenfoot, у которой есть большое количество плюсов: написанные специализированные библиотеки с документацией внутри самой среды; ориентация на создание программ-игр; возможность использовать элементы визуального программирования, что по началу обучения может создать более комфортные условия для обучающегося, минимальное количество кнопок в интерфейсе, что позволяет учащемуся… Read more »
А можно ли скачать код программ Бегуна и мыши?