
Веб-сайт проекта: https://feli10.github.io/math-coding/
В 2022 году мои родители поручили мне помочь моему младшему брату изучать математику начальной школы. В то время ему было шесть лет, и я был новичком в средней школе. Чтобы заняться этим проектом, я сформулировал план - после того, как он завершил каждое устройство в своем учебнике по математике, я разработал бы и назначил ему 1-2 упражнения по кодированию, написанные на Python, которые тесно связаны с содержанием подразделения. Используя этот подход, объединяющий математику и кодирование, нам удалось завершить в среднем на одно семестр курсовой работы каждые два месяца. Примерно через год мы закончили учебную программу по математике китайской начальной школы с третьих до пяти классов.
Библиотека проекта содержит 60 программ Python, которые мы написали в течение года, в том числе 22 с графическими пользовательскими интерфейсами и 38 с интерфейсами командной строки. Эти программы охватывают все 49 единиц из учебников по математике в третьем и пятом классе китайской прессы народной образовательной прессы. Файл math_coding_handbook.pdf содержит основные математические темы для каждой единицы и описания соответствующей программы. Мы также включили подробную документацию и комментарии во всех программах.
Graphical User Interface | Command Line Interface |
|---|---|
![]() | ![]() |
Все программы и руководство по обучению имеют отдельные версии на английском и китайском языке. Справочник _en содержит английскую версию со всеми графическими дисплеями и комментариями программ на английском языке. Каталог _cn содержит китайскую версию со всеми графическими дисплеями и комментариями программы на китайском языке.

Скачать math_coding_handbook.pdf (английская версия)
Скачать math_coding_handbook.pdf (китайская версия)
В рамках этого проекта мы с братом доказали, что математика начальной школы с кодированием позволяет учащимся эффективно и эффективно изучать математику, одновременно становясь опытным на языке программирования.
Чтобы эффективно изучать математику начальной школы с кодированием в этом проекте, требуется следующее:
Есть два способа использовать этот проект:
В 2022 году, когда моему младшему брату Генри было шесть лет, моим родителям попросили меня временно взять на себя ответственность за его математику и английское образование. В то время я был на десять лет старше его и на первом курсе средней школы. Первоначальная цель, с которой мы согласились, заключалась в том, что до того, как я поступил в колледж, я помог бы ему завершить математику начальной школы и достичь уровня знания английского языка, где он мог бы продолжать улучшаться самостоятельно. Поскольку я был лучшим в семье на английском языке, в этом не было много неопределенности, но как бы я учил его математике?
Я закончил математику начальной школы, когда мне было девять лет. Оглядываясь назад, я помню, как читал много учебников, делал много проблем с практическими проблемами и проходил довольно много фиктивных тестов. После некоторого рассмотрения я понял, что Генри, которому было всего шесть, нужен был другой подход. Основываясь на моем опыте обучения, когда кто -то постоянно борется с конкретным типом математической проблемы, это обычно потому, что им не хватает глубокого понимания основных понятий. Цель задания практики должна состоять в том, чтобы выявить и решать эти слабости. Однако, если кто -то практикует проблемы бездумно, те же ошибки появятся снова и снова. Вот почему выполнение моря практиковых проблем часто не является эффективным способом выучить новые математические темы. Поэтому я стремился найти подход, который позволил бы Генри тщательно понять любые математические концепции и навыки, которые ему необходимы для изучения, прежде чем погрузиться в обширное решение проблем.
Основное вдохновение для сочетания математики и кодирования было из-за прохождения курсов по математике высокого уровня в рамках исследовательского проекта машинного обучения. При прохождении курсов я обнаружил, что использование инструментов программирования для оказания помощи в обучении математике на уровне университета было довольно распространенным и очень эффективным. При изучении исчисления, линейной алгебры и статистики использовалось программирование для проведения математических экспериментов и решения практических задач. В сочетании с визуализацией результатов это очень помогло мне понять абстрактные математические концепции и теоремы. Позже я также нашел несколько ресурсов для изучения математики средней школы с помощью программирования. Тем не менее, я никогда не нашел ничего подобного для математики начальной школы.
Итак, после обсуждения моей идеи с Генри, родился проект «Learn lement School Math с кодированием».
В дополнение к годичному проекту с Генри, мы организовали несколько мероприятий «Программирование выходных», в которых я возглавлял группы из 5-10 детей, чтобы изучать математику с программированием. Поскольку эти события были довольно успешными, я считаю, что этот проект может принести пользу большему количеству детей, что позволяет им эффективно учиться математике с улучшенными результатами обучения, одновременно оснащая их навыками программирования.
Для детей, выполняющих школьную программу, мы надеемся, что этот проект может помочь им улучшить свои способности по математике и программированию. Мы также надеемся, что этот проект позволит тем, кто хочет ускорить свое математическое обучение, как Генри, сделать это. Одним из преимуществ ускоренного обучения является то, что знание фундаментальной математики может способствовать развитию раннего интереса. Например, математические способности Генри очень помогли его музыкальному обучению, позволяя его музыкальному интересу и таланту развиваться рано.
Я надеюсь, что этот проект может предоставить людям новый подход к обучению математике и принести больше возможностей для тех, кто решит его использовать. Если у вас есть какие-либо вопросы или предложения о проекте, не стесняйтесь обращаться ко мне по этому электронной почте: [email protected].
Организация каталогов идентична учебникам по математике в начальной школе китайской математической прессы. Например, для имени каталога g311_time «G311» в начале идентифицирует, что каталог соответствует единице 1 семестра 1 учебника 3 класса.
Текст после идентификатора указывает основное обучающее содержание устройства. Блок G311 в основном рассказывает о времени, поэтому имя каталога этого блока - g311_time .
Каждый каталог содержит 1-2 файлы программы Python. Названия программ указывают на их содержимое. Например, g311_time содержит две программы: clock.py , который отображает функционирующие аналоговые часы, и digital_clock.py , который отображает функционирующие цифровые часы.
Файл math_coding_handbook.pdf в каталоге _en содержит описание страниц для всех 60 программ в течение 49 единиц от 3 до 5 классов. Каждое описание программы содержит следующее:

Все программы содержат подробный Docstring в начале и полезные комментарии повсюду.

Руководство по обучению и все программы имеют отдельные английские и китайские версии. Каталоги _en и _cn организованы одинаково, но с содержанием на английском и китайском языке соответственно.
Некоторые программы в библиотеке кода содержат ссылки друг на друга. Поэтому мы рекомендуем загрузить всю библиотеку кода перед использованием.
Несколько заметок о математическом содержании программы:
Все математические единицы находятся в Si (международная система).
Отображение арифметики вертикальной формы в определенных программах основано на вертикальных формах, показанных в китайских учебниках.

| Идентификатор единицы | Название блока | Программа (ы) |
|---|---|---|
| G311 | Рассказывая время - часы, минуты и секунды | 1. Аналоговые часы 2. Цифровые часы |
| G312 | 2-значное добавление и вычитание | Практикуйте 2-значное добавление и вычитание |
| G313 | Измерения | Практическое преобразование подразделения |
| G314 | Вертикальное добавление и вычитание | 1. Вертикальное дополнение 2. Вертикальная вычитание |
| G315 | Умножение слов задачи | Практикуйте проблемы с умножением слов |
| G316 | Короткое умножение | Короткое умножение |
| G317 | Прямоугольники и квадраты | Создать прямоугольный класс |
| G318 | Понимание фракций | Практика сравнения фракций |
| G319 | Наборы | Установить операции |
| G321 | Ориентации | Практика определения ориентаций |
| G322 | Короткое подразделение | Короткое подразделение |
| G323 | Столы | Создание и отображение таблиц |
| G324 | 2-значное длинное умножение | Длинное умножение 1 |
| G325 | Область | Улучшение класса прямоугольника - вычислить площадь и нарисовать прямоугольники |
| G326 | Годы, месяцы и дни | Календарь отображения |
| G327 | Понимание десятичных дел | 1. Десятичная практика 1 2. Визуализация десятичных десятичных |
| G328 | Комбинации | Три распространенные проблемы с подсчета |
| G411 | Работа с большим количеством | Прочитайте любое естественное число |
| G412 | Большие площади | Преобразование подразделения зоны практики |
| G413 | Измерение углов | Нарисуйте часовой циферблат |
| G414 | 3-значное длинное умножение | Длинное умножение 2 |
| G415 | Параллелограммы и трапеции | Подсчет трапеций |
| G416 | Длинное подразделение | Длинное подразделение |
| G417 | Бар -карты | 1. Создание гистограмм с использованием matplotlib 2. Создание подкласса табличного класса для рисования барных диаграмм |
| G418 | Оптимизация | Подсчет игры |
| G421 | Орден операций | Оценить арифметические выражения |
| G422 | Наблюдая за объектами | Три вида кубиков |
| G423 | Основные законы эксплуатации | Решите 24 |
| G424 | Значение и свойства десятичных десятиц | Десятичная практика 2 |
| G425 | Треугольники | 1. Нарисуйте Isosceles треугольники 2. Нарисуйте обычные многоугольники |
| G426 | Добавление и вычитание десятичных актов | С добавлением и вычитанием десятичных декораций в вертикальной форме |
| G427 | Отражающая симметрия | Генерировать отражающие симметричные формы |
| G428 | Среднее значение и сгруппированные схемы | Среднее значение и сгруппированные схемы |
| G429 | Проблема с курицей и кроликом | Проблема с курицей и кроликом |
| G511 | Десятичное умножение | Длительное умножение десятичных декораций |
| G512 | Позиция | 1. Входные координаты на основе позиций 2. Нажмите на позиции на основе координат |
| G513 | Десятичное разделение | 1. Длинное разделение десятичных десятиц 2. Практика преобразования общих фракций в десятичные активы |
| G514 | Вероятность | 1. Случайный выбор с весами 2. Сумма двух рулонов костей |
| G515 | Простые уравнения | Решение проблемы курицы и кролика с использованием уравнений |
| G516 | Площадь полигонов | Полигоны классы с областями |
| G517 | Проблема посадки деревьев | Проблема посадки деревьев |
| G521 | Наблюдение за объектами 2 | Три вида кубиков v2 |
| G522 | Факторы и мультипликации | 1. Получите основные числа 2. ГОЛДБАХ ГПИОО |
| G523 | Кубоид и кубики | 1. Класс Кубоида с свойством единицы 2. Практическое преобразование единиц громкости |
| G524 | Значение и свойства фракций | 1. 2. Преобразовать десятичное в простейшую долю |
| G525 | Ротация | Ротация |
| G526 | Добавление и вычитание фракций | Добавление и вычитание фракций |
| G527 | Линейные диаграммы | Улучшить класс данных, чтобы нарисовать многострочные диаграммы |
| G528 | Определите выброс | Определите выброс |
Целью программ в этом проекте является перевод методов решения людей на машинный язык (то есть программы Python) как можно четко и явно. Это в основном связано со следующими соображениями:
Поэтому мы приоритетными результатами выше эффективности для большинства наших программ. Тем не менее, при сценариях, когда входные данные очень влияют на время выполнения, учащиеся будут руководствоваться, чтобы попробовать различные методы программирования различной эффективности.
Загрузите установщик Python с официального веб -сайта Python (подходит для различных операционных систем). Для пользователей Windows не забудьте проверить опцию «Добавить python.exe to path» во время установки.

Установите Anaconda или Miniconda (подходит для различных операционных систем). Conda-это пакет с открытым исходным кодом и система управления окружающей средой. Установка Conda также устанавливает Python и некоторые часто используемые модули.
Используйте Homebrew для установки Python (подходит для операционных систем MacOS и Linux). Homebrew-это система управления пакетами с открытым исходным кодом. Если Homebrew уже установлен в вашей системе, вы можете использовать следующую команду для установки Python:
brew install python-tkIDLE (интегрированная среда разработки и обучения)-это встроенный инструмент программирования для Python. Он включает в себя интерактивный интерпретатор и редактор кода. Idle имеет только функциональные возможности для голой кости, поэтому рекомендуется использовать более мощный редактор кода, как код VS.

VS -код (Visual Studio Code)

Интерактивный интерфейтор Python, иначе известный как оболочка, представляет собой очень полезный интерфейс командной строки, где вы можете ввести любое выражение Python, и результаты будут отображаться на экране мгновенно. Интерпретатор идеально подходит для экспериментов с небольшими фрагментами кода, такими как тестирование использования встроенных типов или функций данных. Рекомендуется, чтобы при программировании вы не только вводили код в редакторе кода, но и в то же время открыли интерактивный интерпретатор. Это позволяет вам экспериментировать и проверять результаты немедленно в интерпретаторе, когда результат выражения является неопределенным.
Вы можете получить доступ к интерактивному интерпретатору Python следующими способами:
Для пользователей MacOS или Linux вы можете ввести python в терминале, чтобы получить доступ к интерактивному интерпретатору. Если система не распознает python , вы можете попробовать python3 .

Пользователи Windows могут получить доступ к интерактивному интерпретатору, нажав «Python» в меню или введя python в окне командной строки (cmd.exe). Если система не распознает python , вы можете попробовать python3 или py .
Встроенный инструмент программирования в Python напрямую открывает интерактивный интерпретатор при запуске.

Вы также можете получить доступ к интерактивному интерпретатору через встроенный терминал или интерактивное окно VS-кода.
Модули или пакеты, такие как черепаха и Tkinter, являются частью стандартной библиотеки Python и предварительно установлены с Python, поэтому никакой дополнительной установки не требуется.
Matplotlib является популярной библиотекой визуализации данных Python и может быть установлен с использованием следующих методов:
Установите с помощью модуля Python's pip . Если система не распознает python , вы можете заменить python python3 или py (для пользователей Windows) в приведенных ниже командах:
python -m pip install -U matplotlib Если Conda установлена, вы можете использовать команду conda для установки:
conda install matplotlibPygame - популярная библиотека разработки Python Game. Программа G512 «Координатная игра» использует звуковой модуль от Pygame. Вы можете установить его аналогично Matplotlib:
Установите с помощью модуля Python's pip :
python -m pip install -U pygame Если Conda установлена, вы можете использовать команду conda для установки:
conda install pygame⏫ Вернуться к вершине