Files
Learn_System/plans/ct-math/TOPICS_SEED.md
T
Maxim Dolgolyov 055a6cd1a4 docs(ct-math): пивот плана на существующий банк questions (1753 задания ЦЭ/ЦТ)
Контент ЦЭ/ЦТ по математике уже в БД (questions, subject_id=3, 1753 задания
2011–2025, seed_math_ct*.js) — курс строим на нём через tests/assignments
(готовый mode='ct') и courses, а не через exam-prep/exam_tasks.

- plans/ct-math/BUILD_ON_QUESTIONS.md — новый основной тех-документ: схема
  questions/topics/tests/assignments, режимы ct/topic, таксономия и её доведение,
  каркас курса, диагностика из реальных вопросов, прогресс, порядок работ
- примечания-пивот в PLAN (§6/§8), TOPICS_SEED, DIGITIZATION_SPEC (помечены
  вторичными: exam-prep — опция, оцифровка уже сделана), пилотах, README
- difficulty приведён к шкале банка 1–3

Миграция 077 оставлена как опция exam-prep, в БД не применяется.

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

136 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Seed: трек `ctmath` и дерево тем `exam_topics`
> ⚠️ **ВТОРИЧНО (опция exam-prep).** Это seed для подсистемы exam-prep (миграция 077, оставлена как
> опция). **Основной путь** — банк `questions`, см. **[BUILD_ON_QUESTIONS.md](BUILD_ON_QUESTIONS.md)**.
> Этот документ полезен, если в будущем решим использовать exam-prep (варианты/пробники/детектор
> слабых тем). Реальные slug-и учебников отсюда переиспользуются и для ссылок из уроков.
> Готовый к переносу в 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`
```sql
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. Подтемы (модули M1M32, `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× А в первичном.
```json
[
{"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` (карта теста + что внутри):
```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` и др.) не затрагиваются.