2025-11-11T11:43:09.580597

Automatically Generating Questions About Scratch Programs

Obermüller, Fraser
When learning to program, students are usually assessed based on the code they wrote. However, the mere completion of a programming task does not guarantee actual comprehension of the underlying concepts. Asking learners questions about the code they wrote has therefore been proposed as a means to assess program comprehension. As creating targeted questions for individual student programs can be tedious and challenging, prior work has proposed to generate such questions automatically. In this paper we generalize this idea to the block-based programming language Scratch. We propose a set of 30 different questions for Scratch code covering an established program comprehension model, and extend the LitterBox static analysis tool to automatically generate corresponding questions for a given Scratch program. On a dataset of 600,913 projects we generated 54,118,694 questions automatically. Our initial experiments with 34 ninth graders demonstrate that this approach can indeed generate meaningful questions for Scratch programs, and we find that the ability of students to answer these questions on their programs relates to their overall performance.
academic

Автоматическое создание вопросов о программах Scratch

Основная информация

  • ID статьи: 2510.11658
  • Название: Automatically Generating Questions About Scratch Programs
  • Авторы: Florian Obermüller, Gordon Fraser
  • Классификация: cs.SE (Программная инженерия)
  • Время публикации/Конференция: CompEd 2025 (ACM Global Computing Education Conference 2025)
  • Ссылка на статью: https://arxiv.org/abs/2510.11658

Аннотация

При обучении программированию студентов обычно оценивают на основе написанного ими кода. Однако простое завершение задачи программирования не гарантирует истинного понимания лежащих в основе концепций. Поэтому в ряде исследований предложено оценивать понимание программы путём опроса обучающихся о их коде. Поскольку создание целевых вопросов для каждой программы студента является утомительным и сложным, предыдущие работы предложили методы автоматического создания таких вопросов. В данной статье эта идея распространяется на язык блочного программирования Scratch. Мы предлагаем 30 различных типов вопросов о коде Scratch, охватывающих установленную модель понимания программ, и расширяем инструмент статического анализа LitterBox для автоматического создания соответствующих вопросов для заданной программы Scratch. На наборе данных, содержащем 600 913 проектов, мы автоматически создали 54 118 694 вопроса. Предварительные эксперименты с 34 учащимися девятого класса показывают, что этот метод действительно способен создавать значимые вопросы для программ Scratch и выявляет корреляцию между способностью студентов отвечать на эти вопросы и их общей успеваемостью.

Исследовательский контекст и мотивация

Основная проблема

Основная проблема, которую решает данное исследование: как эффективно оценить степень понимания студентом написанной им программы Scratch, а не просто проверить, работает ли программа корректно.

Важность проблемы

  1. Разрыв между пониманием и реализацией: Студенты могут завершить задачу программирования методом проб и ошибок, копированием или с помощью ИИ, но при этом не понимают лежащие в основе концепции программирования
  2. Ограничения методов оценки: Традиционные методы оценки сосредоточены на корректности кода, а не на способности студента понимать программы
  3. Вызовы масштабирования: В крупномасштабных сценариях обучения учителям сложно вручную создавать персонализированные вопросы оценки понимания для каждой программы студента

Ограничения существующих методов

  1. Ограничения текстовых языков: Существующие методы создания вопросов в основном ориентированы на текстовые языки программирования, такие как Java, и не применимы к блочным языкам, таким как Scratch
  2. Различия в особенностях языка: В Scratch переменные создаются через пользовательский интерфейс, а не через операторы объявления; блоки не могут быть указаны по номерам строк
  3. Отсутствие систематичности: Отсутствует систематический подход к проектированию вопросов на основе теоретической базы

Исследовательская мотивация

Мотивация данной работы заключается в распространении концепции «Вопросов о коде обучающегося» (Questions about Learner's Code, QLCs) на среду Scratch, обеспечивая автоматизированный инструмент оценки понимания программ для образования в области блочного программирования.

Основные вклады

  1. Систематизированное проектирование вопросов: На основе модели Block Model систематически разработаны 30 типов вопросов, ориентированных на код Scratch
  2. Расширение инструмента: Расширен инструмент статического анализа с открытым исходным кодом LitterBox для автоматического создания вопросов понимания программ Scratch
  3. Крупномасштабная валидация: Метод проверен на наборе данных, содержащем 600 913 открытых проектов Scratch
  4. Эмпирическое исследование: Через классный эксперимент с 34 учащимися девятого класса подтверждена эффективность вопросов и корреляция между результатами ответов и способностью к программированию

Подробное описание метода

Определение задачи

Входные данные: Проект программы Scratch Выходные данные: Набор автоматически создаваемых вопросов понимания программы, включая текст вопроса, варианты ответов и правильный ответ Ограничения: Вопросы должны быть основаны на конструкциях кода, фактически присутствующих в программе, и соответствовать теоретической базе Block Model

Архитектура метода

1. Теоретическая база: адаптация Block Model

Block Model включает четыре уровня охвата и три измерения программы:

УровеньТекстовое измерениеИзмерение выполненияИзмерение цели
АтомарныйЯзыковые элементыОперации элементовЦель элемента
БлочныйСинтаксически/семантически связанные областиОперации блока кодаФункциональность блока кода
РеляционныйСсылки между блоками кодаПоток между блоками кодаОтношение цели и подцели
МакроОбщая структура программыАлгоритм или поведение программыЦель или назначение программы

2. Проектирование типов вопросов

На основе Block Model разработаны 30 типов вопросов, разделённых на 5 форматов ответов:

  • Числовой (🔢): Ответ — одно число
  • Строковый (📝): Ответ — одна или несколько строк
  • Да/Нет (✓/✗): Ответ — да или нет
  • Множественный выбор (☑️): Выбор правильного ответа из вариантов
  • Свободный текст (📄): Открытые вопросы, требующие пояснительного ответа

3. Реализация автоматического создания

Реализовано путём расширения инструмента LitterBox:

  1. Анализ AST: Преобразование программы Scratch в абстрактное синтаксическое дерево
  2. Паттерн посетителя: Реализация поиска вопросов для каждого типа вопроса
  3. Обход кода: Обход AST для выявления шаблонов кода, способных генерировать вопросы
  4. Создание вариантов: Автоматическое создание отвлекающих вариантов для вопросов с множественным выбором

Технические инновации

  1. Адаптация для блочного программирования: Первое систематическое применение концепции QLCs к языкам блочного программирования
  2. Проектирование, управляемое теорией: Проектирование типов вопросов на основе зрелой теоретической базы понимания программ
  3. Автоматизированное создание: Реализация полностью автоматизированного процесса создания вопросов
  4. Многомерное покрытие: Вопросы охватывают все уровни от базовых языковых элементов до общей цели программы

Экспериментальная установка

Наборы данных

  1. Крупномасштабный набор данных: 600 913 открытых проектов Scratch с исключением пустых и смешанных проектов
  2. Данные классного эксперимента: 34 учащихся девятого класса из Германии с опытом программирования на Scratch
  3. Проекты-подмостки: Использование игры Boat Race в качестве базового проекта для классного эксперимента

Метрики оценки

  1. Частота создания вопросов: Общее количество создаваемых вопросов каждого типа и процент охватываемых проектов
  2. Анализ корреляции: Коэффициент корреляции Пирсона между результатами ответов студентов и полнотой выполнения задач программирования
  3. Анализ покрытия: Процент покрытия проектов для каждого измерения Block Model

Методы сравнения

Поскольку это первое исследование QLCs для Scratch, валидация проводилась следующим образом:

  1. Сравнение с концепциями существующих QLCs для текстовых языков
  2. Систематическая валидация на основе теоретической базы
  3. Валидация в реальных сценариях обучения

Детали реализации

  1. Расширение инструмента: На основе инструмента статического анализа LitterBox
  2. Формат вывода: JSON-формат с фрагментами кода в синтаксисе ScratchBlocks
  3. Представление вопросов: Выделение целевой части кода (как показано на рисунке 1a)
  4. Механизм оценки: Для вопросов с множественным выбором каждый правильный выбор даёт 0,2 балла, для вопросов с одиночным выбором правильный ответ даёт 1 балл

Результаты экспериментов

Основные результаты

RQ1: Частота создания вопросов

  • Общая статистика: Создано 54 118 694 вопроса в 600 913 проектах
  • Наиболее частые вопросы:
    • Purpose of Script: 9 748 844 раза (100% охват проектов)
    • Purpose of If Condition: 5 103 322 раза (41,1% охват проектов)
    • Scripts for Actor: 3 524 268 раз (100% охват проектов)
  • Наименее частые вопросы:
    • My Block Definition: 368 712 раз (11,3% охват проектов)
    • Purpose of Loop Condition: 486 902 раза (15,2% охват проектов)

Анализ покрытия Block Model

ИзмерениеАтомарныйБлочныйРеляционныйМакро
Текстовое64,5%61,2%46,5%100,0%
Выполнение30,4%58,4%99,0%71,1%
Цель49,0%100,0%31,2%100,0%

RQ2: Корреляция между результатами ответов и способностью к программированию

  • Коэффициент корреляции: r = 0,467 (p = 0,005)
  • Сила корреляции: Средняя положительная корреляция
  • Статистическая значимость: p < 0,01, статистически значимо
  • Практическое значение: Способность студентов отвечать на QLCs значительно коррелирует с полнотой выполнения задач программирования

Экспериментальные выводы

  1. Валидация универсальности: Все 30 типов вопросов часто генерируются в реальных проектах
  2. Иерархические характеристики: Вопросы высокого уровня (например, цель программы) генерируются почти во всех проектах, тогда как вопросы низкого уровня зависят от конкретных конструкций программирования
  3. Доказательство эффективности: QLCs действительно могут служить эффективным показателем способности понимания программ
  4. Педагогическая ценность: Может использоваться для выявления пробелов в предварительных знаниях студентов

Связанные работы

Основные направления исследований

  1. Оценка понимания программ: Традиционные методы в основном сосредоточены на навыках трассировки кода, интерпретации и написания
  2. Автоматическое создание вопросов: Существуют инструменты автоматического создания вопросов для текстовых языков, таких как Java
  3. Образование в области блочного программирования: Широкое применение Scratch как языка для начального обучения программированию

Отношение данной работы к связанным работам

  1. Теоретическое наследование: Использует зрелую теоретическую базу Block Model для понимания программ
  2. Техническое расширение: Первое применение концепции QLCs к языкам блочного программирования
  3. Инновация инструментов: Реализация автоматизированного создания вопросов для Scratch на основе инструмента LitterBox

Преимущества по сравнению со связанными работами

  1. Адаптивность языка: Специально разработано с учётом особенностей языков блочного программирования
  2. Системная полнота: Систематическое проектирование вопросов на основе теоретической базы
  3. Практичность: Крупномасштабная валидация данных и применение в реальных классах

Заключение и обсуждение

Основные выводы

  1. Техническая осуществимость: Возможность автоматического создания большого количества значимых вопросов понимания для программ Scratch
  2. Педагогическая эффективность: Созданные вопросы эффективно оценивают способность студентов понимать программы
  3. Практическая ценность: Предоставляет масштабируемый инструмент автоматизированной оценки для образования в области Scratch

Ограничения

  1. Оценка свободного текста: Автоматическая оценка открытых вопросов по-прежнему требует участия человека
  2. Полнота охвата вопросов: Недостаточное покрытие определённых конструкций Scratch на низких уровнях измерений
  3. Масштаб эксперимента: Относительно небольшой размер выборки классного эксперимента (34 студента)
  4. Временные ограничения: Ограничения по времени в классном эксперименте могут повлиять на результаты

Направления будущих исследований

  1. Интеграция LLM: Использование больших языковых моделей для автоматической оценки ответов свободного текста
  2. Расширение вопросов: Добавление большего количества типов вопросов для конкретных конструкций Scratch
  3. Пользовательский интерфейс: Разработка интерфейса, удобного для использования в классе, для создания и управления вопросами
  4. Исследование долгосрочных эффектов: Оценка долгосрочного влияния QLCs на результаты обучения

Глубокая оценка

Преимущества

  1. Высокая инновационность: Первое систематическое применение QLCs к языкам блочного программирования, заполняющее пробел в исследованиях
  2. Прочная теоретическая база: Систематическое проектирование на основе Block Model обеспечивает теоретическую полноту вопросов
  3. Достаточные эксперименты: Сочетание крупномасштабного анализа данных и классных экспериментов подтверждает осуществимость и эффективность метода
  4. Высокая практическая ценность: Публикация инструмента с открытым исходным кодом позволяет напрямую применять результаты исследования в педагогической практике
  5. Ясное изложение: Статья имеет чёткую структуру и точное описание технических деталей

Недостатки

  1. Ограничения оценки: Оценка вопросов свободного текста по-прежнему требует участия человека, что ограничивает полную автоматизацию
  2. Ограничения выборки: Небольшой размер выборки классного эксперимента требует более крупномасштабной валидации
  3. Недостаточный глубокий анализ: Отсутствует детальный анализ эффективности различных типов вопросов
  4. Проблемы адаптивности: Недостаточное обсуждение того, как адаптировать метод для студентов разных возрастных групп и уровней навыков

Влияние

  1. Академический вклад: Предоставляет новое направление исследований и инструменты для области оценки в образовании программированию
  2. Практическая ценность: Предоставляет учителям Scratch практический инструмент автоматизированной оценки
  3. Воспроизводимость: Открытый исходный код и подробная экспериментальная установка обеспечивают воспроизводимость исследования
  4. Потенциал распространения: Метод может быть расширен на другие языки блочного программирования и платформы

Сценарии применения

  1. Образование K-12: Особенно подходит для классов, использующих Scratch для обучения программированию
  2. Платформы онлайн-обучения: Может быть интегрирован в системы онлайн-обучения программированию для предоставления автоматической обратной связи
  3. Подготовка учителей: Помогает учителям лучше понять уровень понимания программ студентами
  4. Исследовательский инструмент: Предоставляет стандартизированный инструмент оценки для исследований в области образования программированию

Библиография

Статья цитирует 23 важные работы, охватывающие теорию понимания программ, оценку в образовании программированию, инструменты анализа Scratch и другие смежные области исследований. Особого внимания заслуживают оригинальные работы по Block Model, связанные работы по инструменту LitterBox, а также эмпирические исследования отношения между пониманием программ и способностью к программированию.