Урок-отладка: когда весь класс ищет одну ошибку
Автор: Барбинская Екатерина Алексеевна
Организация: МБОУ «СОШ № 3»
Населенный пункт: Свердловская область, г. Верхняя Салда
Аннотация: в статье представлена методическая разработка нестандартного урока информатики в 8 классе по теме «Условный оператор if в языке программирования Python», построенного в формате коллективной отладки программы с преднамеренной ошибкой. Описаны структура занятия, последовательность учебных действий, формируемые универсальные учебные действия в соответствии с требованиями ФГОС ООО, а также дидактические условия эффективного применения данной формы. Обоснована целесообразность использования приёма для развития навыков чтения чужого кода, алгоритмического мышления и культуры тестирования программ.
Ключевые слова: урок-отладка, язык Python, условный оператор if, программирование в школе, системно-деятельностный подход, универсальные учебные действия, чтение кода, тестирование программ, ФГОС основного общего образования.
Одной из устойчивых проблем школьного курса информатики при изучении основ программирования остаётся асимметрия между навыками написания и навыками чтения кода. Обучающиеся, как правило, способны составить простую программу по образцу или по формулировке задачи, но испытывают значительные затруднения, столкнувшись с чужим кодом, с кодом, содержащим ошибку, или с собственным кодом, написанным на предыдущем уроке. Между тем в профессиональной практике программиста чтение и отладка занимают существенно больший объём времени, чем написание нового кода с нуля. Требования ФГОС ООО, ориентированные на формирование функциональной грамотности и развитие регулятивных и познавательных универсальных учебных действий, предполагают, что выпускник основной школы должен уметь не только создавать, но и анализировать алгоритмы, выявлять в них ошибки и аргументированно их исправлять. Для решения этой задачи в практике работы применяется формат урока, который условно можно назвать «уроком-отладкой»: обучающиеся в течение занятия работают не с задачей, а с готовой программой, содержащей одну или несколько преднамеренных ошибок, и в групповой или коллективной работе выстраивают стратегию её обнаружения и устранения.
Рассмотрим применение данного формата на конкретном уроке информатики в 8 классе по теме «Условный оператор if в языке Python». К этому моменту обучающиеся уже знакомы с синтаксисом оператора, с понятиями истинности и ложности условия, с операторами сравнения и логическими связками. Традиционный урок закрепления обычно строится вокруг серии задач, которые дети решают по отдельности. В формате урока-отладки педагог заранее готовит один содержательный пример программы с единственной, но нетривиальной ошибкой и предлагает классу выступить в роли коллектива инженеров, которому необходимо диагностировать дефект.
В качестве рабочего примера используется программа, определяющая оценку ученика по количеству набранных баллов. Формулировка задания для класса звучит следующим образом: «Перед вами программа, которую написал другой ученик. Она должна выставлять оценку "5" при 90 и более баллах, "4" — от 70 до 89, "3" — от 50 до 69 и "2" ниже 50. Однако при проверке выяснилось, что программа работает неверно на некоторых входных данных. Ваша задача — найти ошибку, объяснить её причину и предложить исправление».
Практическая реализация урока включает следующие этапы:
-
Презентация кода: педагог выводит на экран программу, содержащую преднамеренную ошибку (например, использование строгого сравнения вместо нестрогого, неверный порядок веток elif, пропуск одного из условий или логическую ошибку в составном условии).
-
Первичное знакомство: обучающиеся индивидуально читают код в течение двух–трёх минут, пытаясь понять его общую логику.
-
Формирование гипотез: работа в парах или малых группах, где обучающиеся выдвигают предположения о том, на каких входных данных программа может сработать некорректно.
-
Экспериментальная проверка: группы предлагают конкретные значения переменной «баллы» и запускают программу, фиксируя фактический и ожидаемый результат.
-
Локализация ошибки: на основе результатов тестирования класс сужает область поиска и выявляет конкретную строку с дефектом.
-
Формулировка исправления: коллективно обсуждается, какой фрагмент кода следует изменить и почему именно такая правка устраняет обнаруженное несоответствие.
-
Рефлексия: обсуждаются методы поиска, которые оказались эффективными, и формулируются правила, позволяющие избегать подобных ошибок в собственном коде.
Методическая ценность данного формата существенно шире, чем простая отработка синтаксиса условного оператора. Во-первых, обучающиеся оказываются в позиции эксперта-аналитика, а не исполнителя, что меняет сам характер их взаимодействия с программным кодом: они перестают воспринимать его как набор команд и начинают видеть в нём осмысленную структуру, которую можно обсуждать и критиковать. Во-вторых, приём естественным образом формирует культуру тестирования: дети понимают, что корректность программы нельзя установить одним запуском и что необходимо подбирать пограничные значения — именно те точки, в которых ошибка проявляется чаще всего (в примере с оценками это значения 50, 70, 90). В-третьих, групповое обсуждение развивает предметную речь: обучающиеся учатся аргументировать свою гипотезу, оппонировать товарищам и формулировать причину ошибки с опорой на логику работы условного оператора.
Отдельного внимания заслуживает формирование регулятивных универсальных учебных действий. В традиционной задаче по программированию ученик, столкнувшись с неработающей программой, чаще всего обращается к педагогу. В формате урока-отладки такой путь исключён самой постановкой задачи: все работают с одной и той же программой, и помощь приходит не от учителя, а от коллективного анализа. Это формирует у обучающихся устойчивую стратегию самостоятельного поиска ошибки, которая переносится затем и на их собственные программы.
Требования к подготовке такого урока сводятся к тщательному подбору примера. Ошибка должна быть единственной, содержательной и не синтаксической — синтаксическая ошибка выявляется интерпретатором Python автоматически и не несёт дидактической нагрузки. Эффективными типами ошибок являются: off-by-one (путаница между строгим и нестрогим сравнением), неверный порядок ветвей elif (когда более широкое условие стоит раньше более узкого), пропуск ветви else или elif, логическая ошибка в составном условии (например, «and» вместо «or»). Программа при этом должна быть достаточно короткой — 8–12 строк, чтобы класс мог держать её в поле зрения целиком.
Формат урока-отладки применим не только к теме условных операторов. Он органично переносится на циклы, функции, обработку списков и строк, а в старших классах — на более сложные конструкции. Опыт показывает, что после двух-трёх занятий в таком формате обучающиеся начинают самостоятельно применять описанную стратегию — подбор пограничных значений, трассировка вручную, локализация через бинарный поиск — при отладке собственных программ, что существенно снижает зависимость от педагога и повышает уровень самостоятельности в проектной работе.
Список литературы
-
Босова Л. Л., Кузнецов А. А. Методика преподавания информатики в основной и средней школе. М.: БИНОМ. Лаборатория знаний, 2018. 368 с.
-
Поляков К. Ю. Программирование: задачи и решения. Python. М.: БИНОМ. Лаборатория знаний, 2021. 296 с.
-
Фундаментальное ядро содержания общего образования / под ред. В. В. Козлова, А. А. Кондакова. М.: Просвещение, 2011. 79 с.
БЕСПЛАТНЫЕ семинары

