«Алгоритмический детектив»: как я превратила скучную отладку программ в увлекательное расследование
Автор: Мазурова Татьяна Анатольевна
Организация: МАОУ школа «Открытие»
Населенный пункт: Томская область, г. Томск
Введение
Каждый учитель информатики знает: когда доходит до практики написания и отладки кода, половина класса «зависает». Ошибки в циклах, потерянные переменные, бесконечные условия — дети воспринимают их как личное поражение. Моя находка — превратить поиск ошибок в детективную игру с ролями, уликами и протоколом.
Суть приёма
Я разработала формат урока «Алгоритмический детектив». Класс делится на группы по 3–4 человека. Каждая группа получает «Дело» — заведомо неработающую программу (на Python или на псевдокоде) с несколькими «преступлениями»:
- логическая ошибка (неправильное условие),
- синтаксическая ошибка (пропущенная скобка или двоеточие),
- ошибка ввода-вывода (не тот тип данных).
Вместе с программой выдаётся «Протокол осмотра» — таблица, где нужно фиксировать:
- Подозрительный фрагмент (строчка кода).
- Тип ошибки (зачёркивают из списка: логическая / синтаксическая / семантическая).
- Способ исправления (как именно меняем код).
Роли внутри группы распределяются так:
- Следователь — читает код вслух и ведёт протокол.
- Эксперт — предлагает гипотезы, где ошибка.
- Тестировщик — мысленно (или на черновике) прогоняет программу с разными входами.
- Прокурор — проверяет, действительно ли исправленный код решает задачу.
Через 10 минут команды меняются делами — они проверяют уже чужие исправления. Так появляется внутренний контроль и понимание, что ошибки бывают у всех.
Пример из практики (8 класс, тема «Цикл while»)
Одной группе я дала программу, которая должна была суммировать числа от 1 до N, но вместо этого уходила в бесконечный цикл. Вот фрагмент кода (на псевдокоде):
text
сумма = 0
число = 1
пока число < N:
сумма = сумма + число
# забыли увеличить число
вывести сумма
В протоколе «Следователь» отметил строку с условием, «Эксперт» предположил, что ошибка логическая (нет шага число = число + 1), а «Тестировщик» показал на бумаге: при N=3 программа выдаст 1+2 и не остановится, а должна выдать 6. Группа исправила код, добавив увеличение счётчика.
Самое интересное случилось, когда они поменялись делами с соседями: нашли в чужом решении другую ошибку — условие число <= N вместо <, и спорили, как правильнее. Спор перерос в исследование граничных значений. В итоге дети сами сформулировали правило: при суммировании до N включительно нужен строгий знак <= или менять начальное значение.
Результаты
- Заметно выросла точность при выполнении самостоятельных работ: через месяц количество «зависаний» из-за мелких синтаксических ошибок уменьшилось на 60% (по моим замерам, на основе типовых проверочных).
- Ученики перестали бояться ошибаться — ошибка стала «уликой», а не провалом.
- Появился здоровый соревновательный интерес: группы соревнуются, кто быстрее «раскроет дело».
Заключение
«Алгоритмический детектив» — это не просто игра. Это способ научить детей читать чужой код, проверять граничные условия и работать в команде. При этом учитель выступает в роли «начальника полиции» — лишь направляет, но не даёт готовых ответов. Метод легко масштабируется на любые языки и темы: от линейных алгоритмов до рекурсии. Попробуйте — ваши ученики тоже полюбят отладку.



