От подбора ответа к построению алгоритма: организация работы обучающихся основной школы с задачами по python на платформах онлайн-тренинга
Автор: Максимова Екатерина Михайловна
Организация: ОГБПОУ «ТТВТС»
Населенный пункт: г.Томск
Аннотация. Рассматривается организация работы обучающихся 8–9 классов с задачами по программированию на Python в условиях использования онлайн-тренажеров с автоматической проверкой. Основное внимание уделено действиям, которые предшествуют написанию программы и следуют за получением результата проверки: анализу условия, выбору способа решения, подбору контрольных примеров и разбору ошибок. Предлагается последовательность работы с задачей на подсчет чисел, удовлетворяющих условию. Показано, какую часть проверки можно передать платформе, а какие вопросы требуют участия учителя. Материал представляет методическую разработку, не содержит результатов педагогического эксперимента и может быть использован при проектировании практических занятий по информатике.
Ключевые слова: информатика, Python, основная школа, алгоритмизация, онлайн-тренажер, программная задача, автоматическая проверка, отладка.
Введение
В программе по информатике для 7–9 классов предусмотрено составление и выполнение алгоритмов, создание и отладка программ с ветвлениями и циклами, а также анализ результата работы алгоритма [1]. Для ученика это разные действия. Можно правильно записать конструкцию if или for, но испытывать затруднения, когда приходится самостоятельно определить, какая конструкция нужна для решения задачи. На уроке различие заметно, если после объяснения нового оператора предложить не упражнение по образцу, а небольшую задачу с текстовым условием.
У онлайн-тренажера есть очевидное удобство: школьник отправляет программу и быстро получает сведения о том, приняла ли ее система проверки. Однако сообщение об успешной отправке еще не объясняет, почему решение верно. Отрицательный результат тоже не всегда помогает найти причину ошибки. Обучающийся может менять строки программы наугад, пока не получит ответ, который принимает система. В таком случае отрабатывается взаимодействие с проверяющей платформой, но не обязательно умение построить алгоритм.
Л. Л. Босова рассматривает программирование как средство формирования вычислительного мышления и подчеркивает роль последовательности учебных задач [2]. Д. М. Гребнева и Е. С. Васева анализируют открытые онлайн-курсы по программированию и особенности самостоятельной работы с автоматической проверкой кода [3]. В работах К. А. Сакаловой с соавторами и Ю. Н. Кашириной обсуждаются вопросы обучения алгоритмизации и развития алгоритмического мышления [4, 5]. Для основной школы особый интерес представляет организация действий ученика до отправки кода и после получения обратной связи. Цель настоящей статьи состоит в описании методической последовательности работы с одной задачей на Python, которую можно использовать при занятиях с онлайн-тренажером.
Организация работы с задачей
Для методического разбора выбрана задача, в которой нет новых для восьмиклассника операторов, но требуется самостоятельно соединить знакомые конструкции. Условие следующее: «Дано число n и затем n целых чисел. Определите, сколько из них кратны трем». Предполагается, что учащиеся уже использовали input(), цикл for, условный оператор и остаток от деления. Здесь рассматривается проект занятия, а не проведенный урок; выводов о результатах школьников автор не делает.
На первом этапе код не пишут. Учитель просит сформулировать ожидаемый ответ для последовательности 4, 6, 0, 7, –3. Нужно получить число 3, а не сами элементы 6, 0 и –3 и не их сумму. Затем разбирают назначение n: это количество элементов, которые еще предстоит прочитать. Вопрос о том, сколько раз выполняется ввод, помогает перейти к циклу, не предлагая заранее готовую конструкцию for. Подобный разбор обнаруживает ошибочное прочтение условия еще до появления программы.
Следующим шагом составляют короткий план решения. Сначала считывается n, затем создается счетчик со значением 0. Для каждого введенного числа проверяется условие делимости на три; при выполнении условия счетчик увеличивается на единицу. После последнего ввода выводится его значение. Отдельного обсуждения заслуживает место инициализации: если обнулять счетчик при каждом повторении, накопленный результат теряется. План можно записать словами на доске и только после этого перевести в команды Python.
По составленному плану ученики записывают программу. В качестве проверяемого решения рассматривается следующий вариант:
n = int(input())
count = 0
for _ in range(n):
x = int(input())
if x % 3 == 0:
count += 1
print(count)
В этой записи существенны три детали: цикл выполняется ровно n раз, count сохраняет значение между повторениями, а print(count) расположен за пределами цикла. Их можно обсудить независимо от того, приняла ли программа тесты онлайн-платформы. Например, вопрос «что произойдет, если перенести print внутрь цикла?» требует объяснить ход вычислений, а не воспроизвести синтаксис.
Проверка решения и работа с ошибками
До отправки кода предлагается проверить три набора данных. Для пяти чисел 4, 6, 0, 7, –3 результат равен 3: учитываются 6, 0 и –3. Для чисел 1, 2, 4 результат равен 0, а для –3, 0, 6 он равен 3. В последних двух наборах особенно заметна ошибка программы, которая считает лишь часть подходящих элементов. Необходимо заранее оговорить, что ноль кратен трем, а знак числа не влияет на делимость.
После сообщения «неверный ответ» школьнику предлагают вернуться к одному из открытых примеров. Сначала он записывает ожидаемый результат, затем проверяет значения count после каждого ввода. Для набора 4, 6, 0, 7, –3 правильная последовательность значений счетчика после обработки очередного числа будет 0, 1, 2, 2, 3. Ее удобно сопоставить с результатом исполнения программы. Временный вывод print(count) внутри цикла допустим при отладке, однако перед окончательной отправкой такие строки убирают, иначе изменится формат ответа.
Один из вариантов задания на отладку состоит в переносе count = 0 внутрь цикла перед проверкой x % 3 == 0. Ошибочная программа при входных данных 4, 6, 0, 7, –3 напечатает 1 вместо 3, поскольку после последнего ввода сохранит результат лишь последней проверки. Если заключительным числом будет 7, она напечатает 0. Задача учащегося состоит в объяснении причины двух результатов и исправлении положения строки, а не в подборе изменений до очередной успешной отправки.
После работы с ошибкой изменяют условие: теперь требуются только положительные числа, кратные трем. Проверка становится составной: x > 0 and x % 3 == 0. Удобный контрольный набор содержит –3, 0 и 6. По прежнему условию ответ равен 3, по новому – 1. Это изменение показывает, умеет ли ученик пересматривать алгоритм при появлении дополнительного ограничения. Сам факт принятия кода платформой ничего не говорит о том, может ли он объяснить исключение нуля и отрицательного числа.
Еще один источник ошибки связан не с подсчетом, а с выводом. Если print(count) перенести внутрь цикла, для трех чисел 3, 5, 6 программа выдаст три строки: 1, 1 и 2, хотя по условию требуется единственное число 2. Здесь алгоритм подсчета работает правильно, но нарушается формат результата. На занятии полезно сравнить эту ошибку с неверным расположением count = 0: в одном случае испорчено накопление значения, в другом –момент его вывода. Одинаковое сообщение системы «неверный ответ» скрывает два разных затруднения.
Роль онлайн-тренажера и учителя
В описанном сценарии тренажеру отводится конкретная функция: выполнить программу на тестовых данных и сообщить, принят ли результат. На некоторых платформах детали скрытых проверок не раскрываются. Поэтому учитель заранее подготавливает несколько собственных тестов с известными ответами, включая случаи без подходящих чисел и с несколькими отрицательными числами. Обсуждение этих тестов организуется отдельно от отправки решения. Без такого шага сообщение об ошибке дает мало материала для анализа причин.
Оценка принятой программы и оценка действий ученика не совпадают. Правильный ответ может получиться после копирования чужого решения или серии случайных изменений. И наоборот, одна неточность при вводе кода еще не означает, что ученик не понимает алгоритм. Поэтому предлагается фиксировать два результата: прохождение тестов и устное либо письменное объяснение решения. В объяснении проверяют, зачем нужен счетчик, когда изменяется его значение и почему печать результата вынесена за цикл.
Для записи наблюдений можно использовать диагностическую карту из четырех пунктов: верно определен результат задачи; составлен план с циклом и счетчиком; подобраны контрольные наборы; объяснена причина логической ошибки. Каждый пункт предлагается оценивать в 0, 1 или 2 балла. Два балла означает самостоятельное выполнение с объяснением, один –выполнение после уточняющего вопроса, ноль –отсутствие решения. Максимальный балл по карте равен 8. Шкала носит проектный характер, ее согласованность и пригодность предстоит проверить.
Проверку диагностической карты следует начинать с заданий, которые не повторяют образец дословно. Например, ученику дают фрагмент кода с циклом и просят определить значение счетчика по четырем входным числам. В другой задаче требуется составить план подсчета четных элементов без готового кода. Третий вопрос связан с ошибочной инициализацией переменной, четвертый –с добавлением нового условия отбора. Используемые операции должны входить в изученный материал, иначе затруднение может объясняться незнанием синтаксиса.
Перед апробацией понадобятся одинаковые инструкции и критерии для проверяющих. В частности, нужно определить, считается ли ответ самостоятельным после повторного прочтения условия учителем и сколько подсказок допускается. Желательно заранее разобрать спорные примеры ответов. Если проверку проводят два преподавателя, расхождения в выставленных баллах следует зафиксировать и обсудить. Пока эти процедуры не выполнены, предложенная карта не может рассматриваться как валидированный инструмент измерения алгоритмического мышления.
Для школьного занятия важны и обычные технические ограничения. Не у всех учеников одинаковая скорость работы, а регистрация на платформе иногда занимает часть урока. Желательно предоставить текст условия и тестовые данные также в локальном файле или на бумаге. Тогда время занятия не будет целиком зависеть от доступности сервиса. Роль учителя сохраняется в тех моментах, где автоматическая проверка недостаточна: при обсуждении неверно понятого условия, выборе проверочных данных и разборе логической ошибки.
Заключение
Разбор задачи на подсчет кратных трем показывает различие между проверкой правильного вывода и проверкой понимания алгоритма. Одного сообщения онлайн-тренажера недостаточно, чтобы установить, почему ученик выбрал цикл, где должен находиться счетчик и какие случаи он предусмотрел. В предлагаемом сценарии эти вопросы обсуждаются до отправки программы и при разборе ошибок. Автоматическая проверка остается полезным инструментом, но ее результат дополняется анализом рассуждений учащегося.
Представленный материал может использоваться для разработки занятий по циклам, ветвлениям и обработке числовых последовательностей. Для вывода об эффективности методики требуется отдельная апробация: согласование критериев оценивания, проведение занятий и анализ реальных результатов. В статье приведен проект такой работы, а не данные педагогического эксперимента.
Список источников
1. Федеральная рабочая программа основного общего образования. Информатика. 7–9 классы (базовый уровень). М., 2025. URL: https://edsoo.ru/wp-content/uploads/2025/07/2025_ooo_frp_informatika-7-9_baza.pdf (дата обращения: 20.10.2026).
2. Босова Л. Л. Программирование как инструмент формирования вычислительного мышления обучающихся // Информатика в школе. 2020. № 10 (163). С. 4–10. DOI: 10.32517/2221-1993-2020-19-10-4-10.
3. Гребнева Д. М., Васева Е. С. Применение открытых онлайн-курсов по программированию в организации самостоятельной работы обучающихся // Информатика в школе. 2024. Т. 23, № 4. URL: https://sci.ru/articles/19940 (дата обращения: 23.10.2026).
4. Сакалова К. А., Быкова К. И., Богданова М. В., Сергеева О. В. Формирование алгоритмического мышления посредством изучения языка Python // Международный научно-исследовательский журнал. 2025. № 3 (153). DOI: 10.60797/IRJ.2025.153.82.
5. Каширина Ю. Н. Методические и дидактические аспекты развития алгоритмического и логического мышления в базовом курсе информатики // Молодой ученый. 2024. № 52 (551). С. 410–413. URL: https://moluch.ru/archive/551/121238/ (дата обращения: 25.10.2026).



