Уравнения - это весело, но настоящие открытия происходят, когда дети изучают математику с помощью кода.

Питер Фаррелл более десяти лет преподавал математику и информатику. Где-то по пути он начал использовать Python для создания задач программирования в сочетании со своими уроками. Но то, что начиналось как способ закрепления математических концепций, постепенно превратилось во что-то другое - путь к более практическому подходу к математическому образованию.

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

Начнем с простого урока математики. Центроид - это точная середина фигуры - технически это среднее значение каждой точки фигуры. Центроид в математике похож на идею центра масс физического объекта.

Теперь взгляните на следующую картинку. Он показывает два способа думать и узнавать о центроидах.

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

Справа вы видите изображение динамического эскиза с сотней или около того вращающихся треугольников. Это сложный проект по программированию, который я разрабатываю как упражнение в моей книге Math Adventures in Python. Если вы хотите, чтобы это изображение вращалось в правильном направлении (и выглядело круто), вам нужно найти центр тяжести каждого треугольника. Другими словами, это практическая задача, которую вы можете решить с помощью математики. Если у вас нет математики, вы не сможете представить себе картину.

Итак, какой подход вы бы предпочли?

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

Проблема школьной математики

Что я имею в виду под «школьной математикой»? В США в 1860-х годах школьная математика была подготовкой к работе клерком, добавляя столбцы чисел вручную. Сегодня рабочие места другие, и подготовка к ним должна измениться, чтобы соответствовать.

Люди лучше всего учатся на практике. Но это не было повседневной практикой в ​​школах, которые, как правило, предпочитают пассивное обучение. «Выполнение» на уроках английского и истории может означать, что студенты пишут статьи или проводят презентации. Студенты-естественники проводят эксперименты или строят простые механизмы. Но что делают студенты-математики?

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

Давайте посмотрим на другой пример. Вот типичная математическая задача, которую вы найдете в учебнике. Студентам предлагается определить функцию «f (x)» и оценить ее для длинного списка значений.

В том же формате задано еще 18 вопросов! Подобные упражнения - тривиальная проблема для такого языка программирования, как Python. Чтобы решить эту проблему, мы можем просто определить функцию f(x):

import math
def f(x):
    return math.sqrt(x + 3) — x + 1

А затем вставьте значения, перебирая список, например:

#list of values to plug in
for x in [0,1,math.sqrt(2),math.sqrt(2)-1]:
    print("f({:.3f}) = {:.3f}".format(x,f(x)))

Последняя строка просто делает вывод красивым, округляя все решения до трех знаков после запятой. Вот результат:

f(0.000) = 2.732 
f(1.000) = 2.000 
f(1.414) = 1.687 
f(0.414) = 2.434

В языках программирования, таких как Python, JavaScript, C # и т. Д., Функции являются жизненно важным инструментом для преобразования чисел и других объектов - и даже других функций! Другими словами, эта базовая абстракция в математике становится важным инструментом в коде. И снова мы перешли от размышлений об абстрактном мире уравнений к работе в практическом мире проектов.

Вот еще один пример. Учебник математики, опубликованный в 21 веке, спустя десятилетия после того, как Бенуа Мандельброт впервые создал свой знаменитый фрактал на компьютере во время работы в IBM, показывает изображение множества Мандельброта и восхищается этим открытием. Учебник описывает множество Мандельброта, показанное здесь, как «увлекательный математический объект, полученный из комплексных чисел. Его красивая граница иллюстрирует хаотическое поведение ».

Затем учебник проводит читателя через кропотливое «исследование», чтобы показать, как преобразовать точку на комплексной плоскости. Но студенту показывают, как это сделать только на калькуляторе, а это значит, что только две точки могут быть преобразованы (повторены семь раз) за разумный промежуток времени. Два очка!

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

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

Понравилась эта статья? Вы можете работать со всеми проектами из книги Питера Фаррелла Математические приключения с Python. Питер Фаррелл также ведет блог в Twitter под названием Techy Math.