Ученик решает математическую задачу правильно.

Он понимает условие, выбирает нужную формулу, выполняет вычисления и получает ответ.

Затем ему предлагают решить практически ту же задачу с помощью Python.

И неожиданно возникает затруднение.

Какую переменную создать первой?

Что именно записать в код?

Нужно ли сначала вычислить промежуточное значение?

Где поставить условие?

Почему решение, которое только что казалось очевидным, больше не выглядит очевидным?

В такой ситуации легко сделать вывод:

«Ученик плохо знает Python».

Но причина нередко находится глубже.

Человек способен мыслить в сокращённой форме. Мы можем объединять несколько операций в один смысловой блок, пропускать очевидные промежуточные действия и всё равно понимать, что делаем.

Компьютер так не умеет.

Чтобы математическая мысль стала программой, её необходимо развернуть в точную последовательность действий.

Именно этот переход часто оказывается сложнее и математики, и синтаксиса Python.

В голове решение может быть короче, чем на самом деле

Представим простую задачу.

Есть три результата:

16, 21 и 29.

Нужно найти их среднее значение.

Ученик практически мгновенно записывает:

[
(16 + 21 + 29) / 3 = 22
]

Для него этого достаточно.

Но внутри одной короткой записи уже скрыта структура:

  1. существуют три исходных значения;
  2. их необходимо объединить;
  3. результат сложения становится новым значением;
  4. это значение нужно разделить на количество элементов;
  5. полученный результат является средним.

В Python эту структуру можно сделать явной:

a = 16
b = 21
c = 29

total = a + b + c
average = total / 3

print(average)

С точки зрения математики программа не содержит ничего принципиально нового.

Но она показывает то, что бумажное решение позволяло оставить скрытым.

Код заставляет формализовать ход мысли.

Математическая запись — это уже сжатие информации

Когда ученик пишет:

[
S = v \times t
]

он может воспринимать формулу как единое целое.

Он знает, что обозначают символы. Понимает физический или математический смысл. Может подставить числа и получить результат.

Но формула сама по себе ещё не отвечает на все вопросы, которые возникают при программировании.

Откуда программа получит v?

Откуда появится t?

Нужно ли проверить введённые значения?

Что делать, если одна из величин неизвестна?

Нужно ли вывести только число или пояснение?

Нужно ли повторить вычисление для нескольких случаев?

Одна математическая формула может быть частью множества разных алгоритмов.

Поэтому переход формула → код нельзя свести к механической замене математических символов командами Python.

Между ними находится модель процесса.

Почему ученик пишет неправильный код, хотя знает математику

Возьмём классический пример:

x = 12
y = 18

print(x + y / 2)

Ученик хотел найти среднее арифметическое двух чисел.

В голове у него была правильная идея:

сложить два числа и разделить результат на два.

Но код описывает другую последовательность:

[
12 + (18 / 2)
]

Python не может догадаться, что ученик «на самом деле имел в виду».

Правильная запись:

average = (x + y) / 2
print(average)

Можно объяснить ошибку приоритетом арифметических операций.

Это необходимо.

Но педагогически интереснее другой вопрос:

почему правильная мысль превратилась в неправильную формальную запись?

Именно здесь начинается работа с алгоритмическим мышлением.

Компьютер выполняет не намерение, а инструкцию

Для человека контекст чрезвычайно важен.

Если ученик говорит:

«Сначала найдём скидку, потом вычтем её из цены»,

мы понимаем его практически без дополнительных объяснений.

Программе нужны конкретные объекты и операции.

Например:

price = 1200
discount_percent = 15

discount = price * discount_percent / 100
final_price = price - discount

print(final_price)

Здесь появились две разные величины:

discount — размер скидки;

final_price — цена после скидки.

В голове ученика они могли существовать как один общий процесс: «посчитать цену со скидкой».

Код требует разделить этот процесс.

Именно поэтому программирование иногда обнаруживает пробелы, которые были почти незаметны при обычном решении на бумаге.

Между математикой и Python находится алгоритм

Полезно представить решение не как переход:

задача → Python

а как более длинную цепочку:

условие → математическая модель → логические шаги → алгоритм → код → проверка

Каждый переход требует своего навыка.

Ученик может правильно понять условие, но построить неверную модель.

Может правильно построить модель, но не суметь разделить её на шаги.

Может сформулировать алгоритм, но ошибиться в синтаксисе.

А может написать работающую программу, которая выдаёт число, но решает не ту задачу.

Поэтому сообщение об ошибке в Python ещё ничего не говорит о том, на каком уровне возникла настоящая проблема.

Знание команд Python не гарантирует умения программировать математические задачи

Ученик может знать:

  • переменные;
  • input();
  • print();
  • if;
  • циклы;
  • функции.

Он может успешно выполнять упражнения типа:

«Напишите цикл от 1 до 10».

Но затем получает новую математическую задачу и не понимает, какую структуру программы построить.

Это важное различие.

Знать инструмент — не то же самое, что уметь выбрать способ его применения.

Если ученику каждый раз показывают готовый образец, он может научиться воспроизводить знакомые конструкции.

Но новая задача требует переноса знания.

Нужно самостоятельно распознать:

что является входными данными;

что требуется получить;

какие промежуточные величины необходимы;

какие операции зависят друг от друга;

где появляется условие;

что нужно повторять.

Это уже не просто синтаксис Python.

Это алгоритмическое мышление.

Почему копирование готового кода создаёт иллюзию понимания

Сегодня получить готовый код особенно легко.

Можно найти похожий пример, спросить поисковую систему или получить решение от ИИ.

Программа может даже заработать.

Но работающий код и понимание кода — не одно и то же.

Проверка начинается с простого вопроса:

Почему именно этот шаг должен выполняться здесь?

Если ученик не может объяснить структуру собственного решения, изменение условия задачи быстро разрушает результат.

Например:

  • вместо двух значений появляются десять;
  • добавляется ограничение;
  • нужно исключить отрицательные числа;
  • результат зависит от предыдущего вычисления;
  • пользователь должен вводить данные самостоятельно.

Скопированный шаблон перестаёт подходить.

А понимание позволяет перестроить алгоритм.

GeoGebra, Excel и Python не взаимозаменяемы

Цифровые инструменты могут работать с одной и той же математикой, но требуют разного способа представления знания.

GeoGebra особенно полезна для визуализации математических объектов и зависимостей.

Excel естественно работает с таблицами, рядами данных, формулами и повторяющимися вычислениями.

Python позволяет строить явно заданные процедуры, условия, повторения и более сложные алгоритмы.

Поэтому уверенная работа в одном инструменте не означает автоматического владения другим.

Ученик может прекрасно понимать график в GeoGebra и не знать, как описать вычисление алгоритмически.

Может пользоваться формулами Excel и теряться, когда последовательность действий необходимо выразить кодом.

Это разные формы работы с одной и той же предметной областью.

А если сама задача дана на иностранном языке?

Для учащихся международных школ возникает ещё один важный слой.

Допустим, ученик изучает математику на английском или немецком языке, а затем должен написать решение в Python.

Тогда реальный процесс выглядит примерно так:

язык задания → смысл условия → математическая модель → алгоритм → Python

Ошибка в последнем звене может начаться ещё в первом.

Ученик неверно понял термин.

Не заметил смысловое ограничение.

Иначе интерпретировал вопрос.

Правильно выполнил вычисление, но решал немного другую задачу.

Поэтому при обучении предмету через другой язык нельзя автоматически разделять «языковую» и «математическую» трудность.

Иногда они являются частями одного процесса.

Что должен делать преподаватель

Самый быстрый способ помочь ученику — написать за него правильный код.

Но самый быстрый способ не всегда является обучением.

Гораздо важнее восстановить ход мысли.

Например:

  • Что известно в начале?
  • Что требуется найти?
  • Какие данные должны существовать в программе?
  • Какой результат нужно получить первым?
  • От чего зависит следующий шаг?
  • Где требуется выбор между двумя вариантами?
  • Какие действия повторяются?
  • Как проверить, что программа действительно решает исходную задачу?

Такие вопросы заставляют ученика раскрыть внутреннюю структуру решения.

После этого Python часто оказывается уже не главным препятствием.

Сначала нужно определить, где именно возник разрыв

В Levitin Language School подобные задачи рассматриваются на пересечении нескольких образовательных направлений.

Одному ученику действительно нужен Python.

Другому — математика.

Третьему — развитие логического и алгоритмического мышления.

А четвёртый знает предмет, но учится по программе на английском или немецком языке и теряет часть смысла ещё при чтении условия.

Поэтому правильная диагностика важнее общего назначения «больше заниматься программированием».

В Language Learnings этот же принцип особенно важен там, где язык становится инструментом изучения другого предмета: понимать терминологию недостаточно — нужно уметь использовать её внутри реального рассуждения.

А в авторской методологии Tymur Levitin задача рассматривается не только по конечной ошибке, но и по всей цепочке, которая к ней привела.

Это и есть наш тройной образовательный контур:

Tymur Levitin — авторская методология и диагностика механизма;
Levitin Language School — индивидуальная работа с языками, математикой, программированием и академическими предметами;
Language Learnings — международный образовательный маршрут и обучение через язык.

Математика + программирование + язык

Иногда ученику не нужен отдельный «курс Python».

Ему нужно научиться делать конкретный переход:

Я понимаю задачу → могу объяснить решение → могу построить алгоритм → могу записать его в коде.

И если обучение проходит на иностранном языке, появляется ещё один переход:

Я понимаю язык задачи → понимаю предмет → формализую решение → программирую его.

Именно поэтому математика, логика, программирование и язык не всегда следует искусственно разделять.

В реальной учебной задаче они могут работать одновременно.

Узнать больше

Если ученик решает математические задачи на бумаге, но затрудняется переносить их в Python, полезно сначала определить, где именно возникает разрыв: в математике, алгоритме, программировании или языке обучения.

В Levitin Language School можно выстроить индивидуальную работу вокруг конкретной комбинации этих навыков, а не вокруг формального названия одного школьного предмета.

Для учащихся международных программ языковая подготовка также может быть связана с предметной задачей: например, когда математика или программирование изучаются на английском, немецком или другом языке.

Levitin Language School
https://levitintymur.com/

Language Learnings
https://languagelearnings.com/


Tymur Levitin
Основатель и директор
Levitin Language School / Language Learnings

Глобальное обучение. Индивидуальный подход.

© Tymur Levitin. Все права защищены.