SDD-043 · Unit, lesson, nội dung học thật và lưu kết quả bài tập
Một phần của SDD-043. unit và lesson hai kiểu hiển thị, nội dung học thật và bài tập, cách lưu kết quả bài tập (SRC-1113, 1117, 1118).
6. Unit, lesson và hai kiểu hiển thị (SRC-1113)
Phần hiển thị của mục này đã được thay bởi §9 (SRC-1251). Luật nội dung (Guiding Question, key concept, rubric 5 mức) vẫn giữ nguyên. Từ SRC-1250, tiêu đề unit là Compelling Question, Essential Question hiện ngay dưới.
Chỉ đạo chủ dự án 28.09.2026:
- Tên unit là một Essential Question, tên lesson là một Guiding Question (theo chuẩn
course-design). Test khuôn kiểm cả hai đều kết thúc bằng dấu hỏi. - Key concept viết tên tiếng Anh; bấm vào thì popover giải thích bằng tiếng Việt, kèm đúng 3 ví dụ và 3 ví dụ dễ gây hiểu lầm. Mỗi key concept phải được ít nhất một lesson dạy (máy kiểm).
- Lesson có trang riêng
/ai-teen/{course}/units/{n}/lessons/{m}: Guiding Question, tóm tắt, các bước làm, thứ mang về góp vào Performance Task. - Performance Task gói trong MỘT card: đề bài, bảng skill/level, rubric. Rubric: mỗi tiêu chí một hàng 5 card, mỗi card một mức; điện thoại cuộn ngang thay vì xếp chồng, vì đọc năm mức cạnh nhau mới thấy bậc thang.
- Hiển thị theo Learner Journey. Đứng NGOÀI (program, course, unit): toàn cảnh, để quan sát và quyết định; unit có nút "Vào unit" khi đã ghi danh. Đã VÀO (lesson): chế độ tập trung, không thanh menu, không breadcrumb, một lesson một lúc, chỉ còn thanh tiến độ các lesson, nút trước/sau và nút thoát về trang unit.
Nội dung (Essential Question, key concept, lesson) cho 18 unit là bản nháp do Claude soạn, chờ chủ dự án duyệt; nằm ở apps/learn/src/aiTeen/courses/.
7. Nội dung học thật và bài tập (SRC-1117)
Chỉ đạo chủ dự án 28.09.2026: "đưa lesson thành nội dung học thật, có bài tập".
- Mỗi lesson có một
LessonBodyởapps/learn/src/aiTeen/lessons/<course>-u<n>.ts(một file một unit, mảng xếp đúng thứ tự lesson). Tách khỏi file course vì nội dung thật dài gấp chục lần khung. - Phần đọc gồm bốn loại khối: giải thích (
text), ví dụ làm mẫu (example), prompt mẫu có nút chép (prompt), lời dặn (tip). Viết cho learner tự đọc một mình, không cần thầy cô bên cạnh. - Bài tập 3-5 câu mỗi lesson, hai loại: trắc nghiệm theo tình huống (đúng một đáp án, mọi phương án đều có phản hồi, sai thì chọn lại được) và thực hành trên máy thật kèm checklist tự kiểm.
- Kết quả bài tập được lưu từ SRC-1118, xem §8.
- Máy kiểm (
program.test.ts): lesson nào cũng có nội dung, có ví dụ, có cả hai loại bài tập, trắc nghiệm đúng một đáp án và đủ phản hồi, số lesson trong file khớp unit. - Nội dung do Claude soạn, chờ chủ dự án duyệt.
8. Lưu kết quả bài tập (SRC-1118)
Chỉ đạo chủ dự án 28.09.2026: "làm tiếp phần lưu kết quả bài tập".
- Bảng
ai_teen_exercise_results(migration 0309): một dòng là trạng thái MỚI NHẤT của một bài tập, gọi bằng vị trí (course, unit, lesson, exercise). Trắc nghiệm giữ phương án đã chọn và đúng/sai, thực hành giữ mảng tick của checklist. Không giữ lịch sử từng lần thử. - API:
GETvàPUT /v1/ai-teen/courses/{id}/results, kiểmcanAccessLearner. Chỉ lưu khi learner đã ghi danh course (409 nếu chưa); trang lesson nói rõ "Ghi danh course để lưu kết quả bài tập". - Lưu ngay mỗi lần bấm Kiểm tra hoặc tick một mục; mở lại lesson thì câu trả lời, phản hồi và dấu tick hiện lại như cũ.
- Lesson xong khi mọi trắc nghiệm đã trả lời ĐÚNG và mọi checklist thực hành đã tick hết (đến SRC-1251; nay chặng LEARN chỉ tính trắc nghiệm, chặng PRACTICE tính checklist, xem §9). Trang unit gắn nhãn "Xong" cho lesson ấy; trang course hiện "x/y lesson xong" cho từng unit.
- ✍️ Đúng/sai do client tính. Nội dung bài tập nằm ở phía learn (§2), nên server tin cờ
correctclient gửi lên. Đây là bài tập để học chứ không phải bài chấm điểm, nên chưa đáng dựng bản đáp án thứ hai ở server; khi nội dung vào D1 thì server tự chấm. - Nối Evidence Registry và Learner Model: xem §11 (SRC-1257).