# Курс «Подготовка к ЦЭ/ЦТ по математике» — план для LearnSpace

Модульная программа подготовки к ЦЭ/ЦТ по математике, оформленная как курс платформы LearnSpace.
Универсальная (диагностика + 3 уровня), без жёсткой привязки к датам. Построена на разборе папки
`F:\!Рабочие\ЦТ\Математика\` и реального формата РИКЗ-2024.

> ⚠️ **ПИВОТ (2026-06-14)** → **ОТДЕЛЬНЫЙ МОДУЛЬ (2026-06-15).** Контент ЦЭ/ЦТ был уже в БД (банк
> `questions`, 1753 задания). По решению пользователя ЦТ оформлен как **отдельный модуль exam-prep**:
> реальные задания ЦТ-11 перенесены из `questions` в `exam_tasks` (exam_key=`ctmath`). Модуль живёт на
> **`/exam-prep/ctmath`**. Технический документ — **[BUILD_ON_QUESTIONS.md](BUILD_ON_QUESTIONS.md)** (§0a).
> Параллельно есть и теория-курс (courses.id=13) + диагностика — на общих подсистемах.

## Документы

| Файл | Что внутри | Статус |
|---|---|---|
| [PLAN.md](PLAN.md) | **Программа.** Карта экзамена, методика, 9 блоков / ~32 модуля, уровни, шаблон модуля. | актуально (кроме §6/§8 — см. пивот) |
| [BUILD_ON_QUESTIONS.md](BUILD_ON_QUESTIONS.md) | **Главный тех-документ.** Сборка курса на существующем банке `questions`: режимы `mode='ct'`/`'topic'`, таксономия тем, курс/уроки, диагностика, пробники, прогресс, порядок работ. | актуально |
| [PILOT_TRIGONOMETRY.md](PILOT_TRIGONOMETRY.md) | Эталон блока «Тригонометрия» до уроков/блоков/карточек — шаблон тиражирования. | актуально (тренажёр = `mode='topic'`) |
| [PILOT_STEREOMETRY.md](PILOT_STEREOMETRY.md) | Второй эталон — «Стереометрия» (координатный метод В20, sim `stereo`). | актуально |
| [RESOURCES.md](RESOURCES.md) | Инвентарь материалов папки по модулям/уровням (для добивки/гэпов). | актуально |
| [TOPICS_SEED.md](TOPICS_SEED.md) | Seed exam-prep (`exam_tracks/exam_topics`, миграция 077). | вторично (опция exam-prep) |
| [DIGITIZATION_SPEC.md](DIGITIZATION_SPEC.md) | Оцифровка РТ/ЦТ в `exam_tasks`. | вторично (оцифровка уже сделана) |

**Код:** [`backend/src/db/migrations/077_ctmath_track_topics.sql`](../../backend/src/db/migrations/077_ctmath_track_topics.sql) — миграция трека `ctmath` + дерева тем для exam-prep (валидирована in-memory). **Оставлена как опция, в БД НЕ применена.** Основной путь — банк `questions`.

## Ключевые факты

- **Формат экзамена**: часть А — А1–А10 (выбор из 5), часть В — В1–В20 (открытый ответ), всего **30 заданий**, ~180 мин, до 100 тестовых баллов; часть В весит больше.
- **Контент уже есть**: банк `questions` (`subject_id=3`) — **1753 задания** 2011–2025 (ЦЭ-2024 = 117, набор 2025 = 1020), размечены по темам (`topics`, 19 шт.) и годам. Залиты `backend/scripts/seed_math_ct*.js`.
- **Готовый механизм ЦТ**: `assignments` с `mode='ct'` собирает вариант (Часть A из `single/true_false` + Часть B из `multi/short_answer`); `mode='topic'` — тренажёр по теме. Сложность в банке — 1–3.
- **Самый «дорогой» блок** — стереометрия (~6 заданий, включая сложнейшие В17/В20).

## Порядок реализации (на банке `questions`, см. BUILD_ON_QUESTIONS §8)

1. Таксономия: добавить недостающие темы (Производная, Иррациональные, Модуль, Показательные ур., Параметры).
2. Каркас курса: `courses('math','ЦЭ/ЦТ — Математика')` + 9 `course_sections`.
3. Диагностика: `test` из ~14 реальных вопросов банка (по 1 на тему) → выдать.
4. Уроки по приоритету (стерео, тригонометрия) — теория по пилотам + кнопка практики `mode='topic'`.
5. Пробники: assignment `mode='ct'` (30 заданий) + тематические `mode='topic'`.
6. Карточки формул; выдача классам через `content_access`/`class_courses`.

## Статус

ПЛАН на банке `questions` (пивот). **Каркас курса создан в живой БД** (скрипт
`backend/scripts/seed_ctmath_course.js`, идемпотентный): 6 новых тем (id 72–77), DRAFT-курс
«ЦЭ/ЦТ — Математика» (`courses.id=13`, не опубликован) + 9 секций (id 27–35). Существующие данные
не тронуты. Миграция 077 (exam-prep) в БД не применялась.

**Отдельный модуль exam-prep `ctmath` (2026-06-15): ПОДНЯТ.** Трек `ctmath` (enabled), дерево тем 41
(9+32), **723 задания** в `exam_tasks` (525 mc + 191 open + 7 long) из реального банка ЦТ-11.
Работает на `/exam-prep/ctmath` (дашборд, темы, практика, слабые темы, пробники). Скрипт-конвертер:
`backend/scripts/seed_ctmath_exam_tasks.js`.

Также (на общих подсистемах): **теория-курс `courses.id=13`** (черновик) — теперь **все 9 секций, 15 уроков**
(`lessons.id=41–55`: тригонометрия 41–43, стереометрия 44–47, числа/преобразования/уравнения×2/функции/
прогрессии/планиметрия/продвинутое 48–55) + **4 колоды флешкарт формул** (`flashcard_decks.id=11–14`, 49 карт:
тригонометрия/стереометрия/логарифмы-степени/производная) + диагностика `tests.id=164` + новые темы.

Осталось:
- ✅ пункт сайдбара · ✅ уроки всех блоков · ✅ колоды формул.
- выдать доступ ученикам: `content_access` (exam/ctmath) классу + раздать колоды (`flashcard_deck_access`) + опубликовать курс (`is_published=1`); решить видимость;
- мелкий фикс задач `exam_tasks.id=866, 1248` — скрипт `backend/scripts/fix_ctmath_misc.js --apply` (запускает пользователь);
- (опц.) углубить уроки (2-й урок в «лёгких» секциях); дотегировать вопросы под тонкие подтемы.
