Авторы: Ronny Scherera, Fazilat Siddiqb, Barbara Sanchez Viverosc.
Автор перевода: К. А. Бурзак
Источник (англ.): A meta-analysis of teaching and learning computer programming: Effective instructional approaches and conditions
Анотация Этот метаанализ отображает доказательства эффективности учебных подходов и условий для обучения компьютерному программированию при трех условиях исследования: (а) исследования, посвященные эффективности программных вмешательств как таковых, (б) исследования, посвященные эффективности визуализации и физичности и (c) исследования, посвященные эффективности доминирующих учебных подходов. Используя данные 139 вмешательств и 375 размеров эффекта, мы обнаружили (а) сильный эффект обучения компьютерному программированию как таковому, (b) размер эффекта визуализации от умеренного до большого и вмешательство физического характера, и (c) величина эффекта от умеренного до большого для исследований, посвященных доминирующим методам обучения. Модераторский анализ показал, что размеры эффекта различались лишь незначительно между учебными подходами и условиями, однако сотрудничество в обучении метапознанию, обучение решению проблем вне обычных уроков, краткосрочные вмешательства с упором на физическое состояние и вмешательства с фокусом на визуализацию с помощью Scratch были особенно эффективными. Наш метаанализ синтезирует существующие доказательства эффективности обучения компьютерному программированию и, в конечном счете, предоставляет ссылки, с которыми можно было бы сравнить результаты будущих исследований.
Ключевые слова: Вычислительное мышление; Компьютерное программирование; Интервенционные исследования; Многоуровневый мета–анализ; Программирование с нуля
За последнее десятилетие компьютерное программирование вновь привлекло к себе значительное внимание не только из–за быстрого развития технологий, но и потому, что, как утверждается, оно способствует развитию других навыков, включая решение проблем, логическое мышление и творчество (Liao & Bright, 1991; Scherer, 2016). Более того, образовательные системы по всему миру находятся в процессе разработки учебных программ, которые реализуют программирование и так называемое вычислительное мышление – концепцию, которая контекстуализирует компьютерное программирование и связанные с ним навыки как форму решения проблем (Shute, Sun, & Asbell–Clark, 2017) – либо как отдельный предмет, либо интегрированный в другие предметы (Европейская комиссия, 2016; Yadav, Good, Voogt, & Fisser, 2017). В то время как важность компьютерного программирования широко признана, систематической оценке эффективности учебных подходов и условий, способствующих приобретению знаний и навыков программирования, уделялось мало внимания (Grover & Pea, 2013; Lye & Koh, 2014).
Кроме того, существующая литература изобилует различными учебными подходами с упором на использование конкретных инструментов программирования (Florez et al., 2017), способах облегчения понимания вычислительных концепций и приобретения обработки информации наряду с метакогнитивными навыками (Lye & Koh, 2014), преимущества парного программирования перед индивидуальным программированием (Umapathy & Ritzhaupt, 2017) и настройки курсов программирования, включая эффекты смешанного и проектного обучения просто назвать несколько. Эти разные фокусы неизбежно привели к разным выводам, касающимся эффективности определенных учебных подходов и условий. Например, в то время как Лу, Абрами и д'Аполлония (2001) обнаружили слабое влияние совместного обучения с использованием технологий, включая компьютерное программирование, на индивидуальную и групповую производительность, Umapathy и Ritzhaupt (2017) выявили умеренные и сильные эффекты. Более того, в то время как Юксель и Юксель (2015) получили сильные эффекты обучения программированию посредством решения проблем (> 1.00), Denny, Cukierman и Bhaskar (2015) показали лишь небольшие эффекты (= 0,27). Список исследований и разнообразных результатов можно легко расширить – в целом эти примеры показывают, что эффективность обучения программированию значительно различается в разных исследованиях.
Поскольку все больше преподавателей информатики заинтересованы в том, чтобы сделать программирование доступным для молодых студентов, ожидается, что изучение программирования с помощью игрового дизайна, робототехники и визуальных языков вместо текстовых будет более эффективным, чем другие подходы. Однако существующие исследования еще не предоставили достаточных доказательств, подтверждающих эти ожидания (Florez et al., 2017; Scherer, 2016). Итак, каковы эффективные подходы и условия для преподавания и изучения компьютерного программирования/ Этот метаанализ нацелен на то, чтобы дать некоторые ответы на этот вопрос, синтезируя данные экспериментальных и квазиэкспериментальных исследований, направленных на улучшение знаний и навыков студентов в области программирования. В частности, используя схему обзора эффективности образовательных технологий, предложенную Ченом, Вангом, Киршнером и Цаем (2018), мы различаем три категории первичных исследований, чтобы изучить три аспекта эффективности и, в конечном итоге, отобразить область обучения программированию (рис. 1): (а) исследования, в которых сообщалось об эффективности обучения компьютерному программированию как таковому (т. е. с контрольными группами, которые не участвовали в какой–либо деятельности по программированию); (б) исследования, в которых сообщалось об эффективности визуализации и физичности во время программирования (например, визуальных языки программирования, такие как Scratch, использование робототехники) и (c) исследования, в которых сообщается об эффективности доминирующих учебных подходов(например, обучение программированию с упором на метапознание, игровое обучение, сотрудничество, обратную связь). Для этих трех категорий мы оцениваем общую величину эффекта вмешательства на основе переменных результата, основанных на производительности, то есть показателей знаний и навыков программирования, с помощью нескольких отдельных метаанализов и количественно оцениваем вариацию эффектов внутри и между исследованиями. Дальнейший модераторский анализ проводится для объяснения этой вариации контекстными переменными. В целом наш исследовательский синтез предоставляет информацию о том, оправдали ли подходы и условия обучения ожиданиям, связанным с их эффективностью при обучении компьютерному программированию.
Компьютерное программирование определяется как процесс разработки и реализации различных наборов инструкций, позволяющих компьютеру выполнять определенную задачу, решать проблемы и обеспечивать взаимодействие с людьми
(Balanskat & Engelhardt, 2015, p. 7). Таким образом, помимо знания языков программирования, необходимы знания в предметах, связанных с разработкой специализированных алгоритмов и логики, а также способность анализировать, понимать и решать проблемы в итеративном процессе (Forsstrom & Kaufmann, 2018). Поэтому процессы, задействованные в программировании, во многом аналогичны процессам, связанным с решением проблем, таким как декомпозиция задач, применение алгоритмов, абстрагирование и автоматизация.
В своем основополагающем обзоре Лай и Кох (2014) утверждали, что компьютерное программирование открывает учащимся вычислительное мышление, которое включает решение проблем с использованием таких концепций информатики, как абстракция и декомпозиция
. (стр.51). В конечном итоге авторы пришли к выводу, что развитие навыков программирования также улучшит навыки вычислительного мышления. Несмотря на критику (Denning, 2017), концепция вычислительного мышления нашла свое отражение в существующих учебных программах по информатике, программах подготовки учителей и исследовательских программах (Grover & Pea, 2013). Крыло (2006)в широком смысле вычислительное мышление определяется как концепция, которая включает решение проблем, проектирование систем и понимание человеческого поведения с использованием концепций, фундаментальных для информатики
(стр. 33). Опираясь на это определение и последующие спецификации тех самых концепций, которые являются фундаментальными для информатики
, Shute et al. (2017) назвали ключевые процессы, задействованные в вычислительном мышлении, – формулировку (пере) задачи, рекурсию, декомпозицию, абстракцию и систематическое тестирование решений и процедур. В свете этих процессов авторы утверждали, что вычислительное мышление можно рассматривать как форму решения проблем в контекстах, богатых технологиями.
Хотя задействованные процессы и навыки, необходимые для компьютерного программирования, связаны с вычислительным мышлением и необходимы ему (Lye & Koh, 2014), последнее включает в себя нечто большее, чем просто программирование. В своей влиятельной структуре Бреннан и Резник (2012)выделил три ключевые области вычислительного мышления: вычислительные концепции (т. е. концепции, используемые программистами, такие как последовательности и циклы), вычислительные практики (т. е. процессы решения проблем во время программирования, такие как тестирование и отладка) и вычислительные перспективы (т. е. понимание учащимися самих себя и своего взаимодействия с другими и с технологиями, например, вопросы технологии как средства решения реальных проблем). В то время как вычислительные концепции и методы играют решающую роль в программировании, последнее – использование вычислительных перспектив как способа участия в вычислениях – представляет собой отличительную черту вычислительного мышления (Kafai & Burke, 2013; Shute et al., 2017). Программирование считается способом обучения и обучения вычислительному мышлению – другими словами, обучение программированию компьютера может в конечном итоге помочь в приобретении навыков вычислительного мышления (Florez et al., 2017).
Учитывая ограниченную направленность интервенционных исследований на вычислительные перспективы (Lye & Koh, 2014), текущая серия метаанализа фокусируется на вычислительных концепциях и практиках, обозначенных как знания и навыки программирования. В этом отношении знания о программировании включают концептуальные и процедурные знания, необходимые для решения проблем с помощью вычислений (т. Е. Синтаксические, семантические, схематические и стратегические знания). Навыки программирования включают в себя навыки создания, изменения и оценки компьютерного кода.
В своей недавней статье Браун и Уилсон (2018) рассмотрели роль компьютерного программирования для вычислительной биологии и пришли к выводу, что в свете сохранившейся литературы по обучению программированию компетенция в программировании не является врожденной, а скорее приобретенным навыком, которым можно научиться. приобретаются и улучшаются с практикой
(стр. 1). Исходя из этого предположения, что знания и навыки программирования можно эффективно преподавать, за последние десятилетия были предложены и оценены несколько учебных подходов, но с разной направленностью и степенью успеха (Grover & Pea, 2013; Robins, Rountree, & Rountree, 2003 г.).
В ранних исследованиях 1980–х и 1990–х годов основное внимание уделялось обучению программированию на языке Logo. После того, как было проведено множество экспериментальных и квазиэкспериментальных исследований, доказательная база эффективности различных учебных подходов была разнообразной. В то время как одни исследования показали, что обучение под руководством учителя более эффективно, чем открытое обучение (Lee, 1991), другие обнаружили противоположный эффект (см. Обзор в Clements, 1995). Таким образом, Палумбо (1990) утверждал, что для объяснения этих различных эффектов следует учитывать ключевые особенности дизайна исследования, такие как тип языка программирования и продолжительность вмешательства. Контекст и инструментальная зависимость эффективной инструкции по программированию кажутся очевидными.
Рассматривая существующую литературу по компьютерному образованию в K–12 для новых исследований, Garneli, Giannakos, and Chorianopoulos (2015) выделили несколько приоритетных областей, в которых участвовали интервенционные исследования – эти области включали изучение важности инструментов программирования, образовательных контекстов и методов обучения. Авторы также подчеркнули растущую популярность игрового дизайна и обучения робототехнике, проектных вмешательств и вмешательств, которые предполагают совместную работу и использование физических объектов для определения результата определенных задач программирования. Garneli et al. (2015) пришли к выводу, что внедрение компьютерного образования в систему школьного образования до 12 лет может быть приятным и эффективным
, однако эмпирических данных, подтверждающих эти ожидания, все еще недостаточно (Гровер и Пи, 2013; Шерер, 2016). Поэтому Лай и Кох (2014) призвали исследовать больше возможностей компьютерного программирования в классе, чтобы обогатить существующую базу знаний о том, что работает, а что нет
. Анализируя эффективность обучения вводному программированию для оценки успешности прохождения курса, Вихавайнен и др. (2014)определены основные программы вмешательства. Эти программы включали сотрудничество и поддержку со стороны коллег, соответствующий контент и контекстуализацию, процедуры оценки, настройку курса и обеспечение ресурсами. Авторы синтезировали величину эффекта, полученную в результате интервенционных исследований, которые были сосредоточены по крайней мере на одной из этих программ, и обнаружили общий положительный эффект, предполагающий, что показатели успешности могут быть улучшены до 40% по сравнению с традиционными курсами на основе лекций и лабораторий. В то же время Vihavainen et al. (2014) признали, что эти улучшения различаются в зависимости от учебных подходов и что комбинация нескольких подходов может быть наиболее эффективной для обучения программированию. Флорес и др. (2017)согласились с этим выводом и далее указали на важность сотрудничества и поддержки со стороны сверстников, а также на использование инструментов визуализации, чтобы помочь студентам развить и объяснить свои ментальные модели концепций программирования. Наряду с этими тенденциями в интервенционных исследованиях, направленных на стимулирование преподавания и обучения компьютерному программированию, существует несколько других программ, в которых основное внимание уделяется, например, преимуществам смешанного обучения по сравнению с очным обучением, эффективности обучения решению проблем, обратная связь и развитие метакогнитивных навыков.
В целом, наш обзор существующей литературы показал, что (а) существуют различные учебные подходы к развитию компьютерного программирования; (б) несколько программ вмешательства эффективны в развитии знаний и навыков программирования; (c) эффективность программ вмешательства может варьироваться в зависимости от исследований и условий обучения (см. также Li & Ma, 2010). Фактически, существующие исследования показали, что эффективность программных вмешательств зависит от контекста, в котором они находятся. Kafai and Burke (2015), например, отметили актуальность продолжительности вмешательства, которая может варьироваться от нескольких часов до нескольких месяцев, а также интеграцию вмешательства в краткосрочные лагеря кодирования, внеклассные мероприятия или обычные школьные уроки. Несмотря на это разнообразие, некоторые основные программы, похоже, повторяются, например, эффективность определенных инструментов программирования и сотрудничество.
Инструменты визуального программирования. Значительное количество исследований было сосредоточено на эффективности определенных инструментов программирования по сравнению с альтернативными инструментами. Например, Ли (1990) в ходе раннего метаанализа обнаружил, что программирование с помощью программного обеспечения Logo было значительно более эффективным, чем с помощью программного обеспечения Basic. Позже Ау (1992) подтвердил этот вывод, используя тесты передачи решения проблем в качестве оценки результатов. В том же исследовании способы, которыми была интегрирована инструкция по программированию логотипа (ориентированная на процесс или на контент), повлияли на общий размер эффекта. Аналогичным образом, некоторые свидетельства ранних исследований свидетельствуют о том, что превосходная эффективность языка программирования Logo над Pascal и BASIC зависела от учебного подхода (см. Также Lee, 1991). Ляо и Брайт (Liao and Bright, 1991) подытожили первичные исследования программирования и подтвердили, что некоторые языки программирования более эффективны в содействии передаче навыков программирования, чем другие – наблюдение, которое также было сделано для современных языков. В частности, Коста и Миранда (2017) провели метаанализ интервенционных исследований эффективности обучения программированию на языке Алиса. Авторы определили шесть подходящих исследований и обнаружили общее, положительное и умеренное влияние на производительность программирования. Коста и Миранда пришли к выводу, что Алиса является эффективным программным обеспечением для обучения программированию, но они не смогли объяснить вариацию эффекта вмешательства в разных исследованиях. Кроме того, Морено–Леон и Роблес (2016) рассмотрели исследования, в которых язык визуального программирования Scratch использовался в основном в контексте игрового дизайна и повествования. Авторы обнаружили поддержку общей эффективности обучения с помощью Scratch для улучшения отношения студентов к программированию и их эффективности программирования; однако, учитывая ограниченное количество реальных (квази) экспериментальных исследований, эти эффекты не могли быть синтезированы метааналитически.
Сотрудничество. Другой, значительный набор интервенционных исследований был посвящен влиянию совместного обучения программированию, например, парного программирования. Мета–анализировали общие эффекты обучения с использованием технологий совместно по сравнению с индивидуальным обучением. Авторы выявили слабое, но значимое и положительное влияние на индивидуальную и групповую производительность. Позже Umapathy и Ritzhaupt (2017) проанализировали 28 размеров эффекта, о которых сообщалось в 18 первичных исследованиях, и обнаружили умеренное или сильное влияние парного программирования на успеваемость на экзаменах и заданиях по программированию – эти эффекты значительно различались в разных исследованиях. Соответственно, Браун и Уилсон (2018) призвали преподавателей компьютерного программирования рассматривать сотрудничество как ключевой элемент в их обучении. Поддержка сверстников и совместное решение проблем кажутся особенно эффективными для стимулирования вычислительного мышления, поскольку они позволяют учащимся решать немедленные вопросы быстрее, чем индивидуальная работа. Хотя эта доказательная база в значительной степени поддерживает эффективность совместной практики, некоторые данные свидетельствуют о том, что эффекты могут иметь место в зависимости от предметной области, пола и состава выборки.
Игровой дизайн и физичность. Пытаясь сделать программирование более доступным для младших школьников, исследователи и преподаватели информатики использовали контекстуализированные инструкции по программированию при разработке игр и использовании роботов. За этой контекстуализацией стоит ожидание того, что и игровой дизайн, и робототехника не только облегчат понимание вычислительных концепций в большей степени, чем альтернативные подходы, но и будут более эффективно вовлекать учащихся в сотрудничество. Согласно раннему обзору Ли (1990), вмешательства, основанные на моделировании и играх, действительно были наиболее полезны для обучения компьютерному программированию старшеклассниками. Что касается вмешательств, связанных с робототехникой (например, Lego Mindstorms), Лито (2017) провел метаанализ доступных размеров эффекта и обнаружил сильную положительную и статистически значимую величину эффекта. Можно возразить, что и разработка игр, и программирование роботов особенно эффективны для преподавания и обучения программированию, поскольку они смещают акцент с создания кода на приложения и создание творческих продуктов. Более того, код, который разрабатывают студенты, можно протестировать напрямую, а имманентная обратная связь доступна, наблюдая, например, за движениями запрограммированного робота. Лю, Шунн, Флот и Шуп (2013) поддержали аргумент в пользу включения физичности в программные вмешательства и предоставили некоторые эмпирические доказательства того, что физическая среда программирования может положительно влиять на алгоритмическое мышление учащихся.
Создание игр с помощью программирования может не только повысить мотивацию студентов к программированию и приобрести необходимые технические навыки, но и создать возможности для совместного обучения. Тем не менее, эти подходы все еще должны оправдать свои обещания, предоставив достаточно большой объем доказательств их эффективности. Настоящий мета–анализ исследует некоторые аспекты этой доказательной базы.
Настоящий метаанализ направлен на изучение эмпирических данных, касающихся эффективности обучения компьютерному программированию как такового (условие исследования 1), эффективности визуализации и физичности (условие исследования 2) и эффективности учебных подходов (условие исследования 3). для развития у студентов знаний и навыков программирования. Было обнаружено несколько открытий, которые послужили основой для исследований в этой области: Во–первых, ожидалось сильное положительное влияние инструкции по программированию как таковой (= 0,814) и предполагает обучаемость знаний и навыков программирования. Этот отчет об общей величине эффекта представляет собой точку отсчета, относительно которой могут быть оценены будущие вмешательства и их размер эффекта.
Во–вторых, метаанализ исследований, посвященных визуализации или физичности, выявил положительные общие размеры эффекта (визуализация: = 0,436, телесность: = 0,718) и поддержал некоторые из существующих заявлений об эффективности современных языков программирования, таких как Scratch. Удивительно, но визуализация была по–разному эффективна в разных студенческих выборках. Следовательно, мы утверждаем, что контекст обучения и изменение режимов представления языков программирования следует тщательно учитывать для конкретных групп студентов (см. Также Саез–Лопес, Роман–Гонсалес и Васкес–Кано, 2016). Точно так же инструменты программирования, использующие физический аспект, показали большую величину эффекта, чем нефизические; еще раз, хотя эти тенденции могут указывать на то, что эти языки и инструменты, возможно, выполнили свои обещания, они должны быть подкреплены дополнительными эмпирическими данными, полученными в результате тщательно разработанных экспериментальных исследований.
В–третьих, помимо этих выводов, которые в первую очередь могут иметь научное значение, поскольку они генерируют знания об общей эффективности вмешательств, последующий модераторный анализ может иметь более практическое значение: мы не нашли доказательств преимущества конкретных вмешательств, таких как совместные действия., обучение на основе обратной связи или обучение программированию на основе игр. Следовательно, утверждения об их превосходстве среди альтернативных учебных подходов не могут быть полностью обоснованы для настоящих метааналитических выборок. Таким образом, преподаватели могут выбирать среди них, не теряя при этом эффективности, но с учетом их пригодности для конкретной группы учащихся, которых они обучают. В то же время, данные о возрастной специфичности некоторых эффектов вмешательства подтверждают текущие попытки разработать программные вмешательства с инструментами, адаптированными для разных возрастных групп учащихся. Вывод о том, что учебные практики существенно не различались по величине эффекта, может стать облегчением для многих исследователей и преподавателей: во–первых, им, возможно, не придется ограничивать свое преподавание конкретным подходом, а предоставить учащимся различный опыт обучения и методы преподавания. Во–вторых, они могут адаптировать свои учебные подходы к конкретным обстоятельствам и условиям учебной среды и учащихся, не снижая успешности обучения программированию. В то же время, Постоянный мониторинг того, что лучше всего подходит для обучения программированию, должен стать неотъемлемой частью исследовательской программы в этой области. Более того, тот факт, что ключевые особенности дизайна исследования (например, рандомизация, стандартизованное тестирование) смягчали некоторые эффекты, подчеркивает важность хорошо спланированных экспериментальных исследований для уменьшения возможной методологической ошибки в размерах эффектов (см. ТакжеМайер, 2015 ). Поэтому мы призываем исследователей продолжать систематическое изучение эффективности различных учебных подходов и условий в хорошо спланированных экспериментальных исследованиях и стремиться к разработке вмешательств, инструментов и функций, которые делают компьютерное программирование доступным для студентов на разных этапах их обучения.