Files
Learn_System/plans/textbooks-5/PLAN_MATH_5.md
T
Maxim Dolgolyov c020a2c948 feat(math5): Phase 0 — фундамент учебника «Математика 5»
План (PLAN_MATH_5 + VISUAL: карта 22 визуал-компонентов), миграция
050_math5_hub (хаб math-5 + 3 главы: Натуральные числа §1–17, Выражения.
Уравнения §1–9, Обыкновенные дроби §1–18), страница-хаб (3 карточки +
курсовой финал из 3 боссов + звание «Математик 5 класса») и 3 каркаса глав
на ОБЩЕМ движке math6 (window.M6 с slug math-5-chN, ключи math5_*).
Baseline-тест math5-page: 6/6. § без билдера → заглушка движка.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 09:09:42 +03:00

14 KiB
Raw Blame History

PLAN — Интерактивный учебник «Математика. 5 класс»

Составлен 2026-06-03 (Opus). Источник: Герасимов В. Д., Пирютко О. Н., Лобанов А. П. «Математика. 5 класс», в 2 частях, Минск: Адукацыя і выхаванне, 2020 (2-е изд.). PDF: G:\Dev\Тесты\Методички\Разное\Книги\matematika_5kl_ch1_gerasimov_rus_2020 (1).pdf (181 стр.) и …_ch2_… .pdf (197 стр.). Контент пишем авторский (свой), не копируем книгу.

Цель: красивый, интерактивный, визуальный учебник того же класса качества, что «Математика 6», — с тренажёрами, canvas/SVG-анимациями, пошаговыми разборами, финалами-боссами и курсовым финалом. Реализация — Opus делает фундамент + эталонную Главу 1, Главы 2–3 тиражирует Sonnet по образцу.


1. Структура книги (оглавление, 3 главы)

Книга Герасимова переплетает геометрию внутрь числовых глав (это её замысел) — не выделяем геометрию отдельно, а сохраняем авторский порядок.

Часть 1

Глава 1. Натуральные числа (§117)

  1. Как решать задачу
  2. Натуральные числа и число нуль. Чтение и запись
  3. Сравнение натуральных чисел
  4. Точка, прямая, луч, отрезок, плоскость
  5. Измерение отрезков. Длина отрезка
  6. Изображение натуральных чисел на координатном луче
  7. Округление натуральных чисел
  8. Сложение и вычитание натуральных чисел
  9. Умножение и деление натуральных чисел
  10. Степень числа с натуральным показателем
  11. Деление с остатком
  12. Делители, кратные. НОД и НОК
  13. Признаки делимости
  14. Простые и составные числа. Разложение на множители
  15. Математика вокруг нас (прикладной)
  16. Задачи на движение, взвешивание, переливание (занимательный/прикладной)
  17. Исторические сведения о числах (история)

Глава 2. Выражения. Уравнения (§19)

  1. Числовые выражения
  2. Выражения с переменными
  3. Уравнение
  4. Формулы
  5. Решение задач с помощью уравнений
  6. Угол. Измерение и построение углов
  7. Математика вокруг нас (прикладной)
  8. Занимательные задачи
  9. Исторические сведения

Часть 2

Глава 3. Обыкновенные дроби (§118)

  1. Дробные числа. Обыкновенные дроби
  2. Деление и дроби. Основное свойство дроби
  3. Правильные и неправильные дроби. Смешанные числа
  4. Сравнение дробных чисел
  5. Сложение и вычитание обыкновенных дробей
  6. Сложение и вычитание смешанных чисел
  7. Умножение дробных чисел
  8. Деление дробных чисел
  9. Задачи на все действия с дробными числами
  10. Задачи на применение дробей
  11. Параллельные и перпендикулярные прямые (геом.)
  12. Ломаная. Многоугольник. Периметр (геом.)
  13. Площадь. Единицы измерения площади (геом.)
  14. Площадь прямоугольного треугольника и многоугольников (геом.)
  15. Среднее арифметическое
  16. Линейные и столбчатые диаграммы
  17. Прямоугольный параллелепипед. Куб (геом.)
  18. Объём. Единицы измерения объёма. Объём параллелепипеда (геом.)

Бэк-материя ч.2 (Задачи с геом. фигурами, Повторение и обобщение, Задания для тренировки, Задачи для любознательных, Логические задачи, Наглядная геометрия) — банки упражнений, не §. Из них черпаем задачи для тренажёров и финала, отдельными § не делаем.

Каждая глава в книге завершается тестом («Ответы к тесту: 1в); 2г)…») → в нашем учебнике это Финал главы (бой с боссами).


2. Архитектура — ПОЛНОЕ переиспользование движка «Математики 6»

Движок math6_engine.js уже generic: читает window.M6 со своими slug / lsPrefix / xpKey, строит para-selector, навигацию, прогресс/XP/достижения, сайдбар, поиск, глоссарий, тему, финалы. Ничего форкать не нужно. Страницы 5 класса подключают те же ассеты:

/css/math6.css            (общий фреймворк)
/js/api.js  /js/xp.js
/js/math6_svg.js          (window.Math6   — статичные SVG-фигуры)
/js/math6_anim.js         (window.Math6Anim — canvas/SVG-демо)  ← ПЕРЕД engine
/js/math6_engine.js       (window.M6engine — плумбинг)

Эти файлы — общая визуальная библиотека математики, а не «6 класс». Новые компоненты для 5 класса дописываем в math6_svg.js / math6_anim.js (выигрывают обе параллели). При желании позже переименуем в math_svg.js — сейчас не трогаем имена, чтобы не плодить churn.

Страница главы = head (KaTeX CDN + шрифты + math6.css + 5 скриптов) → inline :root-палитра → chrome (hdr / hero / psel / #sections / sidebar / search / ach-popup) → inline <script>: объявить data + builders, затем Object.assign(window.M6, {...}).

КРИТИЧНЫЕ правила (грабли с 6 класса — не наступать снова)

  • init() движка вызывается ПОСЛЕ всех window.*-экспортову defer-скрипта readyState уже interactive, и else init() срабатывает синхронно. Если builder зовёт makeCard до экспорта → ReferenceError → ВСЕ §1 показывают заглушку. (В нашем случае init внутри самого движка уже корректен — мы лишь не нарушаем порядок: Object.assign(window.M6,…) до подключения движка не нужен, движок читает window.M6 лениво в init.)
  • Русская запятая в KaTeX = 2{,}5 (иначе сбитый кернинг). В JS-билдерах — хелпер _kf(x).
  • applied:true у прикладных/исторических § (не входят в боссов финала), final:true у финала.
  • эмодзи — только inline SVG .ic. Grep-tool — ast-index/vex. Edit-флака на кириллице — верифицировать зелёным тестом.

3. Маппинг глав → LearnSpace

slug Глава § (paras) para_count Цвет
math-5 Хаб 47 (Σ) indigo
math-5-ch1 Натуральные числа p1–p14 + 3 прикладных + final 18 indigo #4f46e5
math-5-ch2 Выражения. Уравнения p1–p6 + 3 прикладных + final 10 teal #0d9488
math-5-ch3 Обыкновенные дроби p1p18 + final 19 rose #e11d48

para_count = paras.length (включая прикладные и финал — как в 6 классе). Хаб TOTAL = 18+10+19 = 47. Хаб закрыт по умолчанию (allowlist) → доступ выдаём в самом конце через /api/access (project_content_access).

Миграция: 050_math5_hub.sql (следующий свободный номер; 049 = math-6). Хаб sort_order = 5 (перед math-6=6), дети 1/2/3.


4. Фазы реализации (волны)

Phase 0 — Фундамент (Opus) ✦ делаем первым

  • backend/src/db/migrations/050_math5_hub.sql (+ npm run migrate)
  • frontend/textbooks/math_5_hub.html (клон math_6_hub: 3 карточки + курсовой финал из 3 боссов + ach-strip «Математик 5 класса», водяной знак «5», палитра indigo/teal/rose)
  • 3 каркаса math_5_ch1.html / ch2 / ch3 — head + chrome + window.M6 ТОЛЬКО с paras (без билдеров → движок рисует заглушки; страницы живые, навигация работает)
  • Тест backend/tests/math5-page.test.js (jsdom-over-HTML, инлайнит svg/anim/engine): страницы грузятся, секции/psel генерируются, нет рантайм-ошибок, init после экспортов
  • Commit + push

Phase 1 — Глава 1 «Натуральные числа» (эталон, Opus)

Полные билдеры §1–17 + финал. 2+ интерактива на §, тренажёры со счётом+XP, DnD, пошаговые разборы, визуализации (см. §5). Это образец, по которому Sonnet делает остальное.

Phase 2 — Глава 2 «Выражения. Уравнения» (Sonnet-агент по образцу Главы 1)

Phase 3 — Глава 3 «Обыкновенные дроби» (Sonnet-агент; самая визуальная — дроби + геометрия)

Phase 4 — Обогащение + полировка

По образцу 6 класса: в каждый § «Где это в жизни» (хук) / «Разбор по шагам» (→ авто-stepPlayer) / «А знаешь ли ты?» (факт); добить визуализации; прогон тестов.

Phase 5 — Курсовой финал на хабе + звание «Математик 5 класса» (+150 XP)

3 боссовых испытания (по одному из главы): натуральные числа · уравнение/угол · дроби.

Phase 6 — Доступ ученикам/классам (/api/access) — действие админа.


5. Визуальная карта — см. PLAN_MATH_5_VISUAL.md

Кратко: что уже есть в Math6/Math6Anim (numberLine, plane, pie, venn, areaModel, numberLineWalk/Jumps, coordGame, balanceScale, triangleDrag, stepPlayer…) переиспользуем; новое для 5 класса — protractor (угломер, §2.6), семейство дробей (fractionBar, equivFractions, fractionAdd, fractionMulArea, improperMixed), sieve (решето Эратосфена, §1.14), factorTree, divisibilityChecker (§1.13), divisorsLadder (НОД/НОК, §1.12), powerBlocks (степень, §1.10), rulerMeasure (§1.5), linePrimitives (точка/прямая/луч, §1.4), polygonPerimeter (§1.12 ч.2 /3.12), areaGrid + triangleArea (§3.1314), averageBars (§3.15), barChart/lineChart (§3.16), box3d + volumeCubes (§3.1718, 2D-изометрия, не интерактивный 3D — это допустимо и нужно).


6. Геймификация / тесты / гочи

  • XP/уровни (общий math5_xp), прогресс math5_chN_*, финал главы = боссы (HP-бар), 4/5 → +40 XP и ачивка «Глава N пройдена». Курсовой финал → звание + 150 XP (localStorage math5_course_done).
  • Тесты: backend/tests/math5-page.test.js по образцу math6 (jsdom, инлайн ассетов, HEADLESS-guard canvas). Прогон: node -e "require('./tests/math5-page.test.js')" из backend/.
  • pre-commit hook гоняет полный backend-прогон при staged backend-файлах (baseline 3 Auth-фейла).
  • Коммитить поимённо (не git add -A), push сразу. fetch перед работой (project_concurrent_sessions_branch).

7. Замечание про §3.17–18 (параллелепипед, куб, объём)

В 6 классе пользователь исключил интерактивные 3D-тела. Здесь иначе: параллелепипед/куб/объём — обязательная программа 5 класса, и рисуются стандартной 2D-изометрией (статичный чертёж с подписанными рёбрами + анимация заполнения единичными кубиками). Это не «3D-движок», а плоский SVG-рисунок — включаем.