Пример

Prev Next
.
.

  • Главная
    Главная Страница отображения всех блогов сайта
  • Категории
    Категории Страница отображения списка категорий системы блогов сайта.
  • Теги
    Теги Отображает список тегов, которые были использованы в блоге
  • Блоггеры
    Блоггеры Список лучших блоггеров сайта.
  • Авторизация
    Войти Login form

Зачем учить умножению столбиком?

Добавлено : Дата: в разделе: Математика
  • Размер шрифта: Больше Меньше
  • Просмотров: 1215
  • Подписаться на обновления поста
  • Печатать

1 марта в НИУ ВШЭ состоялся круглый стол, посвященный преподаванию математики философам. Это было заинтересованное и, как я полагаю, полезное обсуждение. Отчет будет в ближайшее время опубликован в интернет-журнале студентов-гуманитариев Вышки - Doxa. Я тоже принял участие в круглом столе и сделал небольшое сообщение. Здесь я приведу его первую (“негативную”) часть в несколько уточненном виде. Позитивную программу, я выложу позднее.

 

Почему не надо учить умножению столбиком

В начальной школе ученикам объясняют, как умножать числа столбиком. Вот фрагмент подробного объяснения процесса умножения. (Целиком см. здесь)

Multiplate-colonn-example-4.jpg

Верно ли последнее утверждение (выделение красным мое - В.Г.)? Действительно ли мы “теперь сможем перемножать сколь угодно большие числа”?

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

Почему бесполезен?

При умножении чисел велика вероятность ошибки, и чем больше числа - тем больше вероятность “обсчитаться”:

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

- при “откладывании” части полученного при таком перемножении числа в память (“на ум пошло”),

- при сложении чисел.

Поэтому закончив умножение, нам необходимо провести еще и проверочное деление уголком, при котором мы тоже можем ошибиться. При вычислениях в докомпьютерную эпоху одни и те же большие числа перемножали обязательно несколько человек (даже если они использовали механический калькулятор), и проверяющий сравнивал числа, полученные независимо, и в случае ошибки (совсем нередкой) был вынужден эту ошибку отыскивать.

Сегодня ни один разумный человек не станет перемножать столбиком более чем трехзначные числа, да и трехзначные не станет - он воспользуется калькулятором, будь то смартфон, который лежит у него в кармане, или приложение на десктопе. И это правильно, поскольку, как я уже отметил, при умножении более чем трехзначных чисел вероятность ошибки критически возрастает, а калькулятор всегда под рукой. Даже на ЕГЭ официально разрешено использование калькулятора. Это, правда, такие специальные калькуляторы, сертифицированные, у которых нет возможности выхода в Сеть.

Почему алгоритм умножения в столбик вреден?

Потому что обучение строится не на общем методе, а на наборе тестовых примеров. Никто школьнику не объясняет, как работает сам алгоритм умножения. Считается, что школьник должен прорешать некоторое (достаточно большое) количество примеров “на умножение” и каким-то образом сам эксплицировать алгоритм. Ведь только в этом случае он действительно сможет “перемножать сколь угодно большие числа”. А вот самому алгоритму умножения школьника, как раз никто и не учит. То есть по-существу умножать-то он не умеет, хотя пребывает в полной уверенности, что уж этому-то его точно выучили.

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

Я поступил на мехмат в 1977 году. Как это и положено во втором семестре первого курса, у меня был курс логики. Читал логику Андрей Андреевич Марков-младший (1903 - 1979) - выдающийся логик, но он был уже в весьма преклонном возрасте. Читал он в основном классическое исчисление высказываний и немного говорил о нормальных алгоритмах имени себя. На лекции мы ходили не часто.

А вот на семинарах было гораздо интереснее. У моей 103-й группы семинары по логике вел Альберт Григорьевич Драгалин. И на этих семинарах мы занимались, чем-то вроде программирования, с которым мы не были знакомы вовсе.

Альберт Григорьевич познакомил нас - насколько я могу сегодня восстановить по памяти - с чем-то подобным лямбда-исчислению Черча, и мы писали разные интересные алгоритмы. На одном из занятий Драгалин дал такое задание: написать алгоритм умножения натуральных чисел. И вот тут-то оказалось, что мы с ходу такой алгоритм написать не можем, и наше умение умножать столбиком нам никак не помогло.

Студенты один за другим выходили к доске и писали алгоритмы перемножения конкретных чисел, но алгоритм умножения любых чисел - ускользал. Иначе говоря, мы умели работать с константами, но не умели работать с переменными. Оказалось, что нас так научили умножать, что мы не знаем явного вида алгоритма. А ведь это были хоть и первокурсники, но первокурсники мехмата, то есть те, кто вообще-то и задачки решать умел - причем и более сложные, и с таблицей умножения было все у всех хорошо. Но вот тут-то таблица умножения как раз и не пригодилась.

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

А дома меня ждало настоящее открытие - оказалось, что алгоритм умножения столбиком и не единственный, и не самый быстрый

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

Написание такой программы и есть на самом-то деле “умение умножать”, потому что это умение, как в раз в программе выражено явно - не в виде набора примеров, а как последовательность формальных действий.

Сегодня дети учатся программировать очень рано. Они с младенчества работают с формальными интерфейсами, которые по сути своей - программы.

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

Зачем мы учим умножению столбиком? Наверное, это дань традиции. И если не учить такому умножению, то чему тогда учить?

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

Когда мы сегодня даем домашнее задание на умножение столбиком, мы должны помнить, что ученик найдет ресурс, где это умножение реализовано (третьеклассник прекрасно умеет гуглить), перепишет решение в тетрадь и принесет нам. Причем это не будет плагиатом, как в том случае, когда ученик копирует куски текста и составляет из них коллаж, называемый “сочинение” или “эссе”. Нет, в данном случае, мы получаем в точности то, что мы и просили, потому что есть единственный правильный способ перемножить столбиком два числа. Умеет ли такой ученик умножать? Надо признать: да, умеет, потому что он может и в будущем пользоваться этим ресурсом и при необходимости любые числа перемножит этим любимым нами столбиком. Было бы подключение к Сети. А вот отключение от Сети - это такой форс-мажор, который мы, пожалуй, рассматривать не будем.

 

Почему не надо учить интегрировать

Теперь давайте займемся уже непосредственно университетским курсом, и разберем другой пример.

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

- степенная функция с действительным показателем (например, x2);
- показательная (например, ex)
- логарифмическая функции; (например, ln (x) )
- тригонометрические (например, sin (x) )
- обратные тригонометрические функции (например, arcsin(x) ).

Почему мы работает именно с этими функциями, я не знаю. Есть ответ простой, но неудовлетворительный: так исторически сложилось. В принципе, этот список можно и расширить, добавив к нему, например, гамма-функцию, как обобщение факториала. Или сузить, исключив тригонометрические функции, которые в комплексной области легко выражаются через показательную.

В основе курса математики - и не только для философов, но практически всех специальностей - лежит математический анализ.

В основе математического анализа лежат два базовых навыка: умение символьно дифференцировать элементарные функции и умение символьно интегрировать (находить по функции ее первообразную с точностью до константы) некоторые специально отобранные элементарные функции.

Что такое дифференцирование? Дана элементарная функция, и мы должны применить к ней совершенно определенный алгоритм, который по формуле, выражающей исходную элементарную функцию, найдет формулу, выражающую ее производную.

Ну, например. Если функция f(х) = x2 , то ее производная имеет вид: f’(х) = 2x

Причем, мы можем доказать, что для любой формулы, выражающей элементарную функцию, существует формула, выражающая ее производную - тоже элементарную функцию.

Говоря другими словами, множество элементарных функций относительно оператора дифференцирования - замкнуто, то есть производная элементарной функции - всегда элементарная функция.

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

Онлайн-ресурсов, которые могут продифференцировать элементарную функцию, причем не только дадут результат, но и покажут как он получен - по шагам, очень много. Гугл, нам в помощь.

С интегрированием все намного хуже. Проблема в том, что хотя вроде бы интегрирование в некотором роде обратный к дифференцированию оператор (интеграл от производной функции равен самой функции), оператор интегрирования не замкнут относительно множества элементарных функций.

То есть: существуют элементарные функции, интеграл от которых элементарной функцией не является.

Только в 1980-1990-ые годы на основании алгоритма Риша были написаны программы, которые позволяют установить интегрируемость элементарной функции, то есть выразимость ее первообразной в элементарных функциях.

Причем определить, так сказать, “на глаз” - интегрируема ли данная функция можно далеко не всегда.

Функция f(x) - имеет элементарную первообразную.

integrate-rish.jpg

Но если заменить 71 на 72 - элементарной первообразной уже не будет, результатом будет эллиптический интеграл. (Вики - алгоритм Риша)

О чем это говорит нам с методической так сказать точки зрения?

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

Программ интегрирования в Сети достаточно много.

Вот например, как интегрирует Wolfram.

Wolfram-integrate.jpg 

 

Я не уверен, что человек может лучше. Более того, именно это решение и предполагалось.

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

Кажется, мы попадаем в ту же ситуацию что и при обучении умножению в столбик: это опять обучение на тестовых примерах.

Произведение двух натуральных чисел - натуральное число.

Производная элементарной функции - элементарная функция.

Но результат интегрирования элементарной функции - не обязательно элементарная функция.

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

Как действует компьютер, когда его просят проинтегрировать функцию (грубая схема). Прежде чем интегрировать, он переходит в комплексную плоскость и представляет синусы и косинусы через показательную функцию. Затем выясняет интегрируется ли данная элементарная функция. Если интегрируется, подбирает алгоритм интегрирования наиболее близкий к “интуитивно ясному”, то есть к такому, который применил бы человек.

Все это крайне непростые и довольно искусственные манипуляции.

В результате, не входя во все эти тонкости реализации, студент учится пользоваться порталом Wolfram, и мы удовлетворенно киваем. Домашнее задание сделано.

Чему же мы учим, когда учим дифференцировать и интегрировать? Мы учим манипулированию с цепочками символов. Причем если в случае дифференцирования такое манипулирование всегда приводит к успеху, то в случае интегрирования - успех вовсе не гарантирован. И мы держим в голове, что компьютер все эти манипуляции делает и быстрее, и лучше, чем мы сами.

Где может пригодиться подобный навык? Честно признаюсь, я не знаю.

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

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

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

 

Так чему же учить?

Замечательный математик Владимир Успенский неоднократно говорил, что математика, в частности, для гуманитариев - это своего рода строевая подготовка.

Это вероятно, верно. Вот только хорошо ли это?

Даже в армии строевая подготовка, это сегодня - скорее пережиток. По сути она перестала играть военную роль после наполеоновских войн, когда кончилась эпоха “больших батальонов”, и войска перестали ходить в атаку колоннами, потому что выросла плотность огня. С этого времени умение держать строй стало нужно только для парадов.

Вот интегрирование - это такой парад.

Элементарный анализ - это XVIII век. Причем довольно малая и довольно простая часть даже той математики, которая тогда развивалась.

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

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

Можно ли рассказать о топологии человеку, который не знает анализа?

Видимо, можно. Есть старая, но хорошая книжка Анатолия Фоменко “Наглядная геометрия и топология” (1992). (Фоменко, конечно, аховый хронолог, но математик-то он настоящий). Ее первая глава - “Полиэдры” - это нормальное введение в топологию. Анализа там почти нет (разве что представление о непрерывной функции), зато есть куча картинок, которые иллюстрируют основные топологические идеи. Во введении Фоменко пишет: “...мы делаем упор на наглядном объяснении постановок задач, методов их решения и полученных результатов, стремясь как можно быстрее ввести читателя в круг геометрических идей, игнорируя пока абстрактно-логическую сторону вычислений, рассуждений и т.п.” Но для вводного курса - этого почти всегда достаточно.

Так может быть, уже хватит учить умножать столбиком 427 на 36 и искать первообразную функции x2?

Оставим это компьютеру, он сделает это быстрее и надежнее.

На иллюстрации к посту приведен рисунок из книги Анатолия Фоменко “Наглядная геометрия”: отрезок гомеоморфен дуге, круг - квадрату, куб - тетраэдру...

Комментарии

No post has been created yet.