- plans/ct-math: модульная программа (карта теста А1–А10/В1–В20, 9 блоков и ~32 модуля, 3 уровня, маппинг на exam-prep платформы), 2 пилота (тригонометрия, стереометрия), seed дерева тем, спецификация оцифровки заданий РТ/ЦТ, инвентарь материалов - backend: миграция 077 — трек ctmath + exam_topics (9 разделов, 32 подтемы), валидирована in-memory node:sqlite; на живую БД НЕ применялась Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
12 KiB
Seed: трек ctmath и дерево тем exam_topics
Готовый к переносу в SQL-миграцию seed дерева тем для курса ЦЭ/ЦТ по математике. Соответствует реальной схеме платформы (см.
022_exam_prep.sql,024_exam_topics_seed.sql,028_exam_topic_textbook_links.sql). Двухуровневая иерархия: раздел (parent_slug=NULL) → подтема (parent_slug= slug раздела). Slug — kebab-case. Соглашение из существующегоmath9: раздел sort 10/20/30…, подтемы внутри 11,12,13…⚠️
textbook_paragraphнамеренно оставлен NULL почти везде (точные номера § уточняются при маппинге контента — не выдумываем).textbook_slugпроставлен реальными slug-ами учебников платформы (главы/хабы).
1. Трек exam_tracks
INSERT INTO exam_tracks (
exam_key, title, subject_slug, grade, duration_min,
tasks_per_variant, variants_count, scoring_json, intro_html, enabled, sort_order
) VALUES (
'ctmath',
'ЦЭ/ЦТ — Математика',
'math',
11,
180,
30,
0, -- variants_count: проставить по числу оцифрованных вариантов
'<scoring_json>', -- см. §4 ниже
'<intro_html>', -- см. §5 ниже
1,
20
);
2. Разделы (sections, parent_slug = NULL)
| slug | title | description | sort | textbook_slug |
|---|---|---|---|---|
numbers |
Числа и вычисления | Действительные числа, делимость, проценты, преобразование числовых выражений | 10 | math-6 |
expressions |
Алгебраические преобразования | Многочлены, степени и корни, рациональные дроби, ОДЗ | 20 | algebra-7 |
equations |
Уравнения и неравенства | Линейные, квадратные, рациональные, модуль, иррациональные, показательные, логарифмические; метод рационализации | 30 | algebra-9 |
functions |
Функции и производная | Свойства функций, графики, исследование с производной | 40 | algebra-9-ch2 |
trigonometry |
Тригонометрия | Круг, тождества, уравнения и отбор корней | 50 | algebra-10-ch1 |
word-sequences |
Прогрессии и текстовые задачи | Арифметическая/геометрическая прогрессии; проценты, движение, работа, смеси | 60 | algebra-9-ch4 |
planimetry |
Планиметрия | Треугольники, четырёхугольники, окружность; координатный метод | 70 | geometry-8 |
stereometry |
Стереометрия | Расположение, многогранники, тела вращения, углы и расстояния | 80 | geometry-10 |
advanced |
Продвинутое и комбинированное | Параметры, комбинированные задачи, функциональные методы | 90 | NULL |
3. Подтемы (модули M1–M32, parent_slug = раздел)
Колонка «Позиции» — номера заданий теста (из карты §1.2 PLAN.md), помогает классификатору и приоритизации.
| slug | parent | title | sort | позиции | textbook_slug |
|---|---|---|---|---|---|
num-real |
numbers | Действительные числа, координатная прямая | 11 | А1, А4 | math-6 |
num-divisibility |
numbers | Делимость, дроби, НОД/НОК | 12 | А4, В3, В12 | math-5-ch1 |
num-expressions |
numbers | Преобразование числовых выражений | 13 | сквозное | algebra-7-ch2 |
expr-polynomials |
expressions | Многочлены, ФСУ, разложение на множители | 21 | сквозное | algebra-7-ch2 |
expr-powers-roots |
expressions | Степени и корни, ОДЗ выражений | 22 | А10 | algebra-10-ch2 |
expr-fractions |
expressions | Рациональные (алгебраические) дроби | 23 | — | algebra-9-ch1 |
eq-linear |
equations | Линейные уравнения/неравенства, системы | 31 | А6, В8 | algebra-7-ch3 |
eq-quadratic |
equations | Квадратные уравнения/неравенства, Виет | 32 | А5 | algebra-8 |
eq-rational |
equations | Рациональные уравнения/неравенства, метод интервалов | 33 | В-уровень | algebra-9-ch3 |
eq-modulus |
equations | Уравнения и неравенства с модулем | 34 | — | algebra-9 |
eq-irrational |
equations | Иррациональные уравнения/неравенства | 35 | В18 | algebra-10-ch2 |
eq-exponential |
equations | Показательные уравнения/неравенства | 36 | В14 | algebra-11-ch2 |
eq-logarithmic |
equations | Логарифмические уравнения/неравенства | 37 | В11, В16 | algebra-11-ch3 |
eq-rationalization |
equations | Метод рационализации (замена множителей) | 38 | В16, В14 | algebra-11 |
fn-properties |
functions | Свойства функций: ОДЗ, чётность, монотонность | 41 | А10, В2, В9 | algebra-9-ch2 |
fn-graphs |
functions | Графики и их преобразования, чтение графиков | 42 | В2, В9 | algebra-9-ch2 |
fn-derivative |
functions | Производная: монотонность, экстремумы, исследование | 43 | В19 | algebra-10-ch3 |
trig-circle |
trigonometry | Тригонометрический круг, значения, простейшие ур-ия | 51 | А3 | algebra-10-ch1 |
trig-identities |
trigonometry | Тождества и формулы (вывод), обратные функции | 52 | А8, В4 | algebra-10-ch1 |
trig-equations |
trigonometry | Триг. уравнения, отбор корней на промежутке | 53 | В15 | algebra-10-ch1 |
seq-progressions |
word-sequences | Арифметическая и геометрическая прогрессии | 61 | В3, В6 | algebra-9-ch4 |
word-problems |
word-sequences | Текстовые: проценты, движение, работа, смеси | 62 | А7, В7 | math-6-ch2 |
plan-triangles |
planimetry | Треугольники, площади, теоремы синусов/косинусов, окружности | 71 | В5 | geometry-8 |
plan-quadrilaterals |
planimetry | Четырёхугольники и правильные многоугольники | 72 | В10 | geometry-8-ch1 |
plan-circle |
planimetry | Окружность: углы, касательные; координатный метод | 73 | В5, В10 | geometry-8-ch4 |
ster-basics |
stereometry | Расположение прямых/плоскостей, сечения | 81 | А2, В1 | geometry-10 |
ster-polyhedra |
stereometry | Многогранники: объёмы, площади, сечения, подобие | 82 | В13, В17 | geometry-10 |
ster-rotation |
stereometry | Тела вращения: цилиндр, конус, шар/сфера | 83 | А9, В13 | geometry-11 |
ster-angles-distances |
stereometry | Углы и расстояния; координатно-векторный метод | 84 | В20, В1 | geometry-11 |
adv-parameters |
advanced | Задачи с параметрами | 91 | — | NULL |
adv-combined |
advanced | Комбинированные задачи, нестандартные приёмы | 92 | — | NULL |
adv-functional |
advanced | Функциональные методы, целые числа (бонус) | 93 | — | NULL |
4. scoring_json (шкала балла)
⚠️ Платформенный scoring_json отображает число верных → балл. Реальный ЦЭ/ЦТ: первичный балл (часть В весит больше) → 100 тестовых по официальной таблице РИКЗ. Здесь — иллюстративный placeholder на 100-балльную шкалу; заменить на официальную таблицу года, в идеале — учитывая вес В-заданий ≈ 2× А в первичном.
[
{"correct":30,"score":100},{"correct":28,"score":92},{"correct":26,"score":85},
{"correct":24,"score":78},{"correct":22,"score":71},{"correct":20,"score":64},
{"correct":18,"score":57},{"correct":16,"score":50},{"correct":14,"score":43},
{"correct":12,"score":36},{"correct":10,"score":30},{"correct":8,"score":24},
{"correct":6,"score":17},{"correct":4,"score":11},{"correct":2,"score":5},
{"correct":0,"score":0}
]
Точнее: ввести веса (
primary = Σ(A:1) + Σ(B:2)→ max 10+40=50 первичных), затем official primary→test grid. Если будете расширять модель — это правкаexam_tracks.scoring_json+ логики подсчёта вexam-prep.js(отдельная задача, не для seed).
5. intro_html (вступление трека)
Готовый текст для exam_tracks.intro_html (карта теста + что внутри):
<p><b>Подготовка к ЦЭ/ЦТ по математике.</b> Формат: часть А — 10 заданий с выбором ответа (А1–А10),
часть В — 20 заданий с открытым ответом (В1–В20), всего 30 заданий, ~180 минут, без калькулятора.</p>
<p>Курс устроен по темам с входной диагностикой и тремя уровнями сложности (База / Ядро / Продвинутый):
теория с выводом формул, разбор эталонных задач, тренажёр по темам, карточки формул с интервальным
повторением и пробные экзамены с таймером на реальных вариантах РТ/ЦТ прошлых лет.</p>
6. Заметки по переносу в миграцию
- Файл: новая миграция
backend/src/db/migrations/0XX_ctmath_track_topics.sql(номер — следующий свободный; в репозитории миграции до 076+, проверить актуальный максимум перед созданием). - Порядок:
INSERT exam_tracks→INSERT exam_topics(сначала разделы, потом подтемы — FK на parent нет, но для читаемости) →UPDATE … SET textbook_slugпо таблицам §2–§3. content_access: после создания трека открыть его классам/ученикам (content_type='exam',content_ref='ctmath').- Совместимость:
exam_key='ctmath'уникален, существующие треки (math9и др.) не затрагиваются.