---
url: https://docs.nemo12.com/architecture/sdd-011-school-models.md
description: >-
  Mô hình trường Turtle (nền tảng) và Shark (luyện thi chuyên): độ sâu, sư phạm,
  onboarding mục tiêu thi và ngân hàng đề.
---

# SDD-011 — School Models, Pedagogy & Exam Banks

School là **domain context** (REQ-SCH-01): dùng chung canonical skill graph + learner model, nhưng khác nhau về **độ sâu (depth), pedagogy, và loại đề thi**. Depth theo goal đã có ở [SDD-002 §12](sdd-002-learner-intelligence/models-and-engines.md).

## 1. Turtle — Foundation (cơ bản, phổ thông)

* **Diagnosis mức cơ bản** (REQ-SCH-06): dùng seed items role `canonical`/`variant`, độ khó thấp–trung; target depth L2–L3 (SDD-002 §12); anchor theo grade hiện tại từ Context Model.
* **Pedagogy IB** (REQ-PED-01): Learning Experience theo chu trình inquiry — `Predict → Explore → Explain → Practice → Transfer → Assess` (khớp experience types SDD-004 §5-8). **Labs** là trung tâm (SDD-010 Lab Platform): học qua khám phá, không học vẹt.
* **Ngân hàng đề thi học kỳ** (REQ-SCH-07, REQ-EXAM-04): đề thi học kỳ mức cơ bản/phổ thông theo môn + lớp; learner luyện (mock) trước ngày thi. Không theo trường cụ thể (generic).

## 2. Shark — Advanced / Selective (luyện thi chuyên)

* **Diagnosis + experiences mức cao** (REQ-SCH-08): items role `boundary`/`discriminator`, độ khó cao; target depth L4–L5; blueprint `specialized-chuyen`.
* **Pedagogy AoPS / Beast Academy** (REQ-PED-02): tiến trình problem-solving sâu — bài toán nhiều bước, khái quát hóa, hard discriminators; nhấn reasoning thay vì luyện dạng. Ánh xạ experience type `Problem`/`Challenge` (SDD-004 §5).
* **Ngân hàng đề thi theo từng trường** (REQ-SCH-08, REQ-EXAM-03): đề thi vào lớp 10 chuyên/trường chọn theo **từng trường** (per target school). Kế thừa dữ liệu legacy: `chuyenchon-exam-intelligence` (exams, exam_problems, exam_sources) + registry trường `data.chuyenchon.com` (schools, specialized_programs) — FEAT-034..037.

## 2b. Shark Onboarding — Exam Targets (REQ-ONB-07)

Khi learner vào Shark, ngoài hồ sơ cơ bản (WF-01 §2) phải khai **exam targets** — hỗ trợ **nhiều trường** (nhiều lịch thi):

```text
learner_exam_targets (
  id, learner_id,
  target_school_id?,           -- FK target_schools (nếu chọn từ registry)
  target_school_name,          -- hoặc nhập tay
  province,
  specialist_subject,          -- môn chuyên (vd: Toán chuyên)
  non_specialist_subjects_json,-- các môn không chuyên (Văn, Anh…)
  exam_date_approx,            -- lịch thi ~ (ngày/khoảng)
  priority,                    -- learner xếp ưu tiên giữa các trường
  status[active|dropped],
  created_at
)
```

* Mỗi target sinh một **goal** (blueprint `specialized-chuyen` + môn chuyên) với **deadline riêng** = exam_date_approx → Context Model + Workload (SDD-007 §8) dùng để lập lịch luyện.
* Nhiều target → Global Orchestrator (SDD-007 §9) cân đối thời gian giữa các kỳ thi theo deadline gần nhất.
* Turtle **không** cần bước này (RISK-009: không ép mục tiêu thi chuyên).

## 3. Exam Bank — mô hình dữ liệu (REQ-EXAM-01)

Tách khỏi Item Bank thường (SDD-004 §9) nhưng liên kết qua node graph:

```text
exams (id, subject_id, exam_type[semester|selective], grade,
       target_school_id?, province?, year?, difficulty_tier, source, status)
exam_sections (exam_id, order, title, instructions)
exam_questions (id, exam_id, section_id?, node_id?, order, prompt, options_json?,
                answer_json, points, item_ref?)   -- item_ref → items khi tái dùng
target_schools (id, name, province, kind[chuyen|chon|thuong], source)   -- Shark, từ registry
```

* Turtle: `exam_type='semester'`, `target_school_id` NULL (generic theo lớp/môn).
* Shark: `exam_type='selective'`, gắn `target_school_id` (per-school).
* Schema này áp dụng cho đề **generated** (`source='generated'`). **Đề thi thật** (`source='authentic'`) mở rộng registry `exams` với provenance + tách thành `exam_problems` — xem [SDD-012](sdd-012-real-exam-bank.md) (SRC-029).

## 4. Mock Exam → Evidence → Readiness (REQ-EXAM-02)

> Phạm vi: chỉ đề **generated** (semester/selective). Đề thật không có mock exam — luyện theo từng bài, xem [SDD-012 §1](sdd-012-real-exam-bank.md) và Q-061.

```mermaid
flowchart LR
  P[Learner mở mock exam] --> A[Làm bài theo timing]
  A --> S[Chấm: đúng/điểm từng câu]
  S --> E[Ghi learner_evidence theo node_id<br/>reliability cao hơn practice]
  E --> M[updateMastery per node]
  M --> R[Recompute readiness vs blueprint / exam target]
  R --> C[Cockpit: sẵn sàng cho kỳ thi %, gap còn lại]
```

Đề thi có `node_id` per câu → kết quả luyện đề nuôi cùng Learner Model (không tách rời). Readiness cho đề thi = so với cut score của exam/blueprint.

## 6. Mode switching theo lịch thi học kỳ (REQ-ADAPT-01)

Bố mẹ **hoặc** con khai `semester_exam_schedule (learner_id, subject_id, title, exam_date)`. Hệ tự trộn tỷ trọng giữa **học sâu (IB)** và **luyện thi** theo độ gần kỳ thi:

```text
days_to_exam ≤ 30      → exam_prep 0.8 / deep 0.2   (luyện thi để điểm cao)
days_to_exam ≥ 90      → exam_prep 0.2 / deep 0.8   (học sâu IB)
30 < days < 90         → nội suy tuyến tính
không có lịch thi       → deep 0.8 (mặc định học sâu)
```

Khi `mode = exam_prep`, cockpit đẩy **"Luyện đề học kỳ"** lên đầu next-actions kèm đếm ngược ("Còn N ngày tới kỳ thi — ưu tiên luyện đề"). Blend này là đầu vào cho Recommendation Engine (SDD-002 §10) và Depth Budget (SDD-002 §12): gần thi → ưu tiên high-yield exam readiness; xa thi → ưu tiên depth/transfer. Hiện thực: `mode.ts` + `buildCockpit`.

## 5. Điểm khác biệt vẫn dùng chung hạ tầng

| Khía cạnh | Turtle | Shark | Dùng chung |
| --- | --- | --- | --- |
| Skill graph | ✔ | ✔ | canonical (SDD-007 §5) |
| Learner Model | ✔ | ✔ | mastery/confidence (SDD-002) |
| Depth target | L2–L3 | L4–L5 | Depth Engine (SDD-002 §12) |
| Pedagogy | IB inquiry + labs | AoPS problem-solving | Experience types (SDD-004) |
| Exam bank | Học kỳ (generic) | Theo trường (per-school) | schema §3 |

## 7. Squid — English / IELTS / SAT / AP (REQ-SCH-11, SRC-033, SRC-081)

* **Mục tiêu**: learner khai **target band IELTS** (overall + per kỹ năng nếu muốn) và ngày thi dự kiến → một exam target dạng mới `target_kind='ielts'` (mở rộng `learner_exam_targets` §2b: `target_kind[school|ielts|sat|ap]`, `target_score?`, không bắt buộc `target_school_id`). Target nuôi Goal Model (SRC-032) + mode switching (REQ-ADAPT-01 theo ngày thi).
* **Học**: English graph hiện có (Squid scope `english` — REQ-SCH-10); tổ chức theo 4 kỹ năng **Listening / Reading / Writing / Speaking**; Writing/Speaking dùng Assessment Blueprint chấm theo **rubric band descriptors** (AI qua gateway + QG-010; learner nộp bài viết/ghi âm — media SDD-009).
* **Luyện thi**: practice test **generated theo format IELTS** từ Item Bank + blueprint (SDD-013 §3); mock theo timing áp dụng REQ-EXAM-02 (generated). **KHÔNG nhập đề thật IELTS** (Cambridge/IDP có bản quyền — khác đề thi công lập VN, SDD-012 §1.6): real exam bank không áp dụng cho Squid.
* **Band ước tính**: readiness vs target band = goal blueprint mới `ielts-band` (mapping mastery/coverage → band ước tính, hiển thị kèm confidence).

## 8. SAT và AP — nằm trong Squid (REQ-SCH-11, SRC-081 · trước là school Ray)

* **Mục tiêu**: `target_kind='sat'` (target score 400–1600 + section) hoặc `'ap'` (môn AP + target 1–5), kèm đợt thi (digital SAT nhiều đợt/năm; AP tháng 5) → Goal Model + readiness.
* **Học**: SAT Math dùng math graph (node grade 9+, độ khó cao); Reading & Writing dùng english graph; AP theo môn mở dần (ưu tiên theo chỉ đạo sau).
* **Luyện thi**: practice **generated theo format digital SAT** (module ngắn, adaptive rút gọn theo Assessment Engine SDD-002 §9); **KHÔNG nhập đề thật College Board** (bản quyền) — chỉ generated.
* **SRC-081 (2026-08-14)**: bỏ school Ray; SAT và AP chuyển hết vào Squid. Squid scope môn `ielts`, `sat`, `ap` (REQ-SCH-10); learner đang enroll Ray được chuyển sang Squid. REQ-SCH-12 gộp vào REQ-SCH-11 — không còn brand school riêng cho SAT/AP.

§7 và §8 cùng thuộc Squid, dùng chung hạ tầng §5 (canonical graph, Learner Model, exam targets, mode switching); khác Turtle/Shark ở **loại target (band/score thay vì trường)** và nguồn đề **chỉ generated** (bản quyền).

## 9. Whale — khám phá & truyền cảm hứng (REQ-SCH-09, REQ-SCH-13, SRC-027/034)

Whale không dạy — Whale làm **tò mò**. Ba khối nội dung (đều public-read, content plane Coral quản lý):

1. **Cơ hội** (đã có — `whale_opportunities`, seed-whale.mjs): học bổng, cuộc thi, du học, trại hè; lọc theo loại/khu vực/deadline. **Học bổng** là kind nổi bật nhất (SRC-034).
2. **Success cases** (mới): câu chuyện du học thành công — hồ sơ xuất phát (lớp, trường, điểm mạnh) → hành trình (IELTS/SAT, hoạt động) → kết quả (trường + học bổng). Lưu dạng opportunity `kind='success_story'` hoặc bảng story riêng; mỗi story link các cơ hội/school liên quan (Squid/Ray — §7/§8).
3. **Recommendation nhẹ** (mới): Nemo vào Whale thấy **3–5 gợi ý cá nhân hóa mức tò mò** — rule-based theo hồ sơ (lớp, môn mạnh theo Learner Model, school đang học): "học bổng phù hợp lớp 9", "câu chuyện giống em (mạnh Toán, nhắm chuyên)". Không phải Recommendation Engine đầy đủ — chỉ curiosity feed, có reason ngắn ("vì em đang học Shark, lớp 9"). Marlin xem cùng qua view mode (REQ-PAR-13).

Nguyên tắc: không thu thập thêm dữ liệu nhạy cảm cho Whale; chỉ đọc profile + Learner Model có sẵn; mọi nội dung qua moderation/curation của Coral (không tự scrape).

## Trace

REQ-SCH-06→§1 · REQ-SCH-07→§1,§3 · REQ-SCH-08→§2,§3 · REQ-SCH-11→§7 · REQ-SCH-12→§8 · REQ-EXAM-01→§3 · REQ-EXAM-02→§4 · REQ-EXAM-03→§2,§3 · REQ-EXAM-04→§1,§3 · REQ-PED-01→§1 · REQ-PED-02→§2.
