SDD-043 · Overview, Learning Activities và Learning Cycle
Một phần của SDD-043. Overview, Learning Activities, Learning Cycle, Make Meaning, khuôn lesson theo course (SRC-1269 và các vòng sau).
12. Overview, Learning Activities và Learning Cycle (SRC-1269)
Chỉ đạo chủ dự án 06.10.2026: mỗi course, unit, lesson có một Overview kèm outcomes, luôn mở được từ menu; mỗi lesson gồm các Learning Activity, mỗi activity nhiều bước; mỗi activity mang một pha của vòng TRONG, mỗi lesson mang một chặng của vòng NGOÀI của Learning Cycle.
12.1 Nghiên cứu: Learning Cycle của reDesign
reDesign (tự viết là "reDesign") gọi mô hình là "the Learning Cycle", bài blog 2019 gọi là "Competency-based Learning Cycle", ghi nguồn "reDesign (2016)". Hai vòng lồng nhau:
| Vòng | Phạm vi | Chặng / pha | Nghĩa (tóm tắt bằng lời của mình) |
|---|---|---|---|
| Ngoài | một unit hay dự án, 2-8 tuần (bộ slide; blog 2019 ghi 3-8 tuần) | Make Meaning | mở unit: xem việc cuối cùng trông ra sao và chấm thế nào, chọn chủ đề hay câu hỏi, có kiến thức nền, chọn người xem, mục đích, hình thức |
| Investigate | tìm hiểu sâu: so sánh góc nhìn, xem bài mẫu của chuyên gia, thu và sắp xếp thông tin, ra ý chính để làm | ||
| Create | làm ra sản phẩm thật: phác, nháp, nhận góp ý, sửa, thử, cho tới khi xong | ||
| Share & Reflect | tập rồi trình bày, đăng hay biểu diễn cho người xem thật, nhìn lại cả quá trình | ||
| Trong | một buổi học (lesson) | Make Meaning | nêu mục đích và tiêu chí đạt, gợi kiến thức cũ, đưa điều mới và dạy tường minh |
| Investigate | learner tự luyện và áp dụng điều mới, giáo viên theo dõi và hỗ trợ từng em | ||
| Synthesize & Reflect | nối hiểu biết cũ và mới, cho thấy bằng chứng đạt mục tiêu, nghĩ lại về cách mình đã học |
Nguồn đã đọc trực tiếp (06.10.2026):
- reDesign, "An introduction to the Learning Cycle" (bộ slide 18 trang, 2016): https://www.redesignu.org/wp-content/uploads/2021/03/Introduction-to-the-Learning-Cycle.pdf (tên mọi chặng, hai vòng, định nghĩa từng chặng ở cấp unit và cấp lesson).
- reDesign, "A Friendly Introduction to the Competency-based Learning Cycle" (10.01.2019): https://www.redesignu.org/friendly-introduction-competency-based-learning-cycle/ (vòng ngoài cho unit/dự án, vòng trong cho buổi học hằng ngày).
- J. Altbergs, L. Gagnon, "Completing the Learning Loop" (24.09.2020): https://www.redesignu.org/completing-learning-loop-power-synthesis-and-reflection-prompts/ (synthesis và reflection ở cuối mỗi trải nghiệm học).
- L. Gagnon, R. Menon, "Share & Reflect: Learning Cycle Series 5/5" (24.03.2022): https://www.redesignu.org/share-reflect-learning-cycle-series-5-5/
- reDesign, "The Learning Cycle: Scaffolding" (trích "Meeting Students Where They Are", 2017): https://www.redesignu.org/wp-content/uploads/2021/03/The-Learning-Cycle-Scaffolding.pdf
Chỗ khác với chữ của chủ dự án, và cách xử lý. (1) reDesign viết "Share & Reflect", "Synthesize & Reflect"; giao diện theo chữ chủ dự án: "Share and Reflect", "Synthesize and Reflect". (2) Vòng trong có đúng ba pha là cách đọc các slide cấp lesson (chỉ ba pha ấy có slide riêng); hình vẽ vòng trong của reDesign còn in Create và Share & Reflect, có slide ghi "Communicate". Theo chữ chủ dự án: ba pha. (3) Synthesize & Reflect nằm ở GIỮA hình của reDesign, không phải chặng thứ năm của vòng ngoài. (4) Không tìm thấy nguồn nào nói Learning Cycle của reDesign là của Building 21; tài liệu Building 21 duy nhất tìm được (Studio Learning Cycle 2022) dùng chặng khác (Launch, Investigate, Create, Revise, Impact, Reflect), nên hai mô hình không coi là một. Trong repo trước SRC-1269 chưa có tài liệu nào về Learning Cycle (tìm "Learning Cycle", "redesignu", "Make Meaning": không có).
12.2 Overview: gộp vào màn đầu (SRC-1272)
Chủ dự án 07.10.2026 gọn lại: Overview của lesson và của unit không còn là trang riêng, chúng là phần đầu của màn ĐẦU TIÊN ở cấp ấy. Course Overview giữ (chủ dự án không yêu cầu gộp), nhưng nút "Tổng quan" ở hàng 1 đã bỏ.
| Cấp | Overview nằm ở đâu | Nội dung | Địa chỉ cũ |
|---|---|---|---|
| Lesson | đầu màn Bắt đầu · Câu hỏi (bước đầu của lesson), dưới tiêu đề Guiding Question | chặng vòng ngoài kèm một câu giải thích, Lesson Outcomes, ba Learning Activity kèm câu giải thích pha vòng trong, "Em sẽ cầm ra" | .../lessons/{m}/overview chuyển về .../lessons/{m} |
| Unit | đầu màn Khởi động · Goal, ngay dưới Compelling Question | Unit Outcomes (Essential Question vẫn ở thẻ thu gọn của Goal, danh sách lesson kèm chặng ở Where am I?) | /ai-teen/{course}/units/{n}/overview chuyển về /ai-teen/{course}/units/{n} |
| Course | Course Outcomes ngay trên trang course; Course Overview ở /ai-teen/{course}/overview, mở bằng nút "Xem Learning Cycle của course" trên trang course | Course Overview: tagline, Course Outcomes, vòng Learning Cycle (SVG hai vòng) với lesson hiện tại sáng lên, các unit kèm chặng của từng lesson | giữ nguyên |
- Chuyển hướng. Mở trang bằng địa chỉ
/overviewcũ của unit/lesson:entryRedirectcủaApp.tsx(quaaiTeenOverviewRedirect) thay thanh địa chỉ bằng gốc của cấp ấy (replaceState, không thêm lịch sử);parseAiTeenPathcũng bỏ đoạn ấy nên trang mở đúng cấp kể cả khi đi bằng nút Back. Gốc của lesson về bước mặc định như mọi link không có journey/bước (lesson chưa chạm thì là Câu hỏi, tức màn có Overview). - ✍️ Nút "Tổng quan" ở hàng 1 bỏ hẳn, không đổi thành link cấp course. Ở lesson và unit nó không còn gì để mở; giữ nó chỉ cho cấp course là một nút có ở một cấp và vắng ở hai cấp kia, đúng loại lệch mà SRC-1269 từng tránh. Thay vào đó Course Outcomes hiện ngay trên trang course (learner thấy mà không phải bấm), và Course Overview cách trang course một link. Trên Course Overview, hàng 1 là
AI Teen · AI Teen 2 · Tổng quan: "AI Teen 2" về trang course. - Mục "Tổng quan" trong Mục lục cũng bỏ (§9.7): cây chỉ còn unit và lesson.
SRC-1269: nút "Tổng quan" cố định ở hàng 1 mở Overview của cấp breadcrumb đang dừng; mục đầu tiên dưới mỗi course, unit, lesson trong Mục lục là "Tổng quan"; ba trang/overview.- Code:
apps/learn/src/aiTeen/Overview.tsx(chỉ cònCourseOverview),LessonIntrovàGoalStagetrongUnitJourney.tsx,CourseViewtrongAiTeen.tsx,aiTeenOverviewRedirecttrongAiTeen.tsx.
Outcomes. Dữ liệu course trước SRC-1269 không có outcome nào, nên cả ba tầng được soạn mới từ nội dung có sẵn theo CD-6, đánh dấu "drafted" trong code, chờ chủ dự án duyệt: Course.outcomes (3 câu mỗi course, gom từ Unit Outcomes, program.ts), Unit.outcomes (3 câu "Tôi có thể..." mỗi unit), Lesson.outcomes (1 câu mức hiểu mỗi lesson, nhắc đủ concept của lesson) trong apps/learn/src/aiTeen/courses/*.ts.
12.3 Learning Activities và hai loại tag
Learning Activity không phải loại nội dung mới: nó là một journey của trang lesson (hàng 2; từ SRC-1287 là mục của thẻ trái, §12.7), bước của nó là bước của journey ấy (hàng 3: các phần đọc có cổng, các câu Tìm hiểu, Mang theo và Tiếp theo). Mọi lesson của một course có cùng các activity, nên pha vòng trong gắn với activity, khai MỘT chỗ cho mỗi khuôn course (COURSE_TEMPLATES trong apps/learn/src/aiTeen/lessonTemplate.ts, trước SRC-1281 là ACTIVITY_PHASE trong cycle.ts); chặng vòng ngoài khác nhau theo lesson nên nằm trong dữ liệu course (Lesson.cycle). Bảng dưới là khuôn ba activity của AI Teen 2-3; AI Teen 1 có năm activity (§12.6).
| Activity (journey) | Bước | Pha vòng trong | Vì sao (định nghĩa cấp lesson của reDesign) |
|---|---|---|---|
Bắt đầu (understand) | Câu hỏi, Phần 1..n | Make Meaning | mục đích của lesson và điều mới được đưa vào |
Tìm hiểu (check) | Câu 1..k | Investigate | tự áp dụng vào tình huống, có phản hồi ngay |
Đúc kết (review) | Mang theo, Tiếp theo | Synthesize and Reflect | bằng chứng đạt mục tiêu và nối sang bước sau |
✍️ Luật gán chặng vòng ngoài cho lesson: chặng là chặng của việc CHÍNH lesson bắt learner làm, theo định nghĩa cấp unit ở §12.1. Mở unit, chọn chủ đề, người dùng, mục đích, kiến thức nền = Make Meaning; thu thông tin, phỏng vấn, so sánh, thử nghiệm, kiểm điều AI nói = Investigate; dựng, nháp, thử và sửa sản phẩm CỦA MÌNH = Create (reDesign xếp thử và sửa vào Create); đưa sản phẩm cho người thật dùng, xem, nghe rồi đọc góp ý, tự chấm theo rubric = Share and Reflect. Vì vòng ngoài chạy MỘT lượt mỗi unit, trong một unit chặng không bao giờ lùi (máy kiểm).
Đếm 55 lesson: Make Meaning 13 · Investigate 9 · Create 25 · Share and Reflect 8; 3 unit có lesson đầu không phải Make Meaning. Từ SRC-1275 (§12.4) mỗi unit có đúng bốn lesson, mỗi chặng một lesson: 72 lesson, mỗi chặng 18. Từ SRC-1281 (§12.6) AI Teen 1 có sáu lesson mỗi unit (hai Investigate, hai Create): 84 lesson.
Hiện ở đâu. Chặng vòng ngoài: thẻ lesson (danh sách ở Where am I? và bước Học · Lesson n), Course Overview, cây Mục lục; đầu màn Bắt đầu · Câu hỏi của lesson chỉ còn câu giải thích chặng, không tag (SRC-1279). Pha vòng trong: từ SRC-1279 KHÔNG còn tag tiếng Anh trên giao diện lesson (hàng 2, đầu bước, danh sách Learning Activities): tên journey đã nói pha bằng tiếng Việt (§12.5); tag chặng ngoài cạnh đoạn "Lesson n" của breadcrumb cũng bỏ. Vòng SVG chỉ vẽ MỘT lần, ở Course Overview: vòng ngoài 4 chặng, vòng trong 3 pha, chặng của lesson hiện tại và pha của activity learner sẽ mở được tô cam (currentLesson trong journeys.ts: unit chưa xong đầu tiên; chưa bắt đầu thì lesson 1, không thì lesson chưa qua đầu tiên).
Kiểm chứng. apps/learn/src/aiTeen/cycle.test.ts: đủ 72 lesson (SRC-1275; trước đó 55), mỗi lesson đúng một chặng hợp lệ, chặng không lùi trong unit, mỗi unit đúng bốn chặng theo thứ tự (§12.4), mỗi activity của mọi lesson đúng một pha hợp lệ và đi đúng thứ tự, outcomes đủ số và đúng mức ở cả ba tầng, URL Course Overview đi hai chiều và URL /overview cũ của unit/lesson về gốc (SRC-1272), lesson hiện tại. courseTree.test.ts (SRC-1272): cây chỉ có unit và lesson của một course, không mục Tổng quan. e2e apps/learn/e2e/aiTeen.spec.ts (SRC-1272): màn đầu lesson có outcomes, chặng và activity; màn đầu unit có Unit Outcomes; URL /overview cũ chuyển về gốc và Course Overview mở từ trang course; chặng trên thẻ, màn đầu, cây, hàng 1; pha trên menu và đầu bước; không còn Status Card ở mọi cấp; Mục lục mở từ đoạn cuối breadcrumb, chỉ course đang xem (cả cấp course/unit và bàn phím, 375px sheet); thanh bước là pill chứa số và tên; Course Overview và màn Bắt đầu · Câu hỏi ở 320/375px.
12.4 Bốn lesson mỗi unit, một lesson mỗi chặng (SRC-1275)
Chỉ đạo chủ dự án 07.10.2026: mỗi unit của AI Teen 1-3 có lesson cho ĐỦ bốn chặng vòng ngoài, theo thứ tự Make Meaning → Investigate → Create → Share and Reflect. Trước đó 55 lesson lệch hẳn về Create (Make Meaning 13 · Investigate 9 · Create 25 · Share and Reflect 8), nhiều unit thiếu chặng.
✍️ Khuôn đã chốt: đúng bốn lesson mỗi unit, mỗi chặng một lesson. 18 unit × 4 = 72 lesson, mỗi chặng 18. (Từ SRC-1281 khuôn này còn ở AI Teen 2-3; AI Teen 1 sáu lesson mỗi unit, §12.6.) Cách làm theo thứ tự ưu tiên: giữ lesson cũ và gắn lại chặng khi việc chính của nó thật sự thuộc chặng ấy (luật gán §12.3); gộp hai lesson Create thành một, giữ phần hay nhất; soạn lesson mới cho chặng còn thiếu. Lesson mới đủ đặc tả CD-8 như lesson cũ: Guiding Question, một Lesson Outcome mức hiểu nhắc đủ concept, 1-2 concept lấy từ key concept của unit, 6-8 khối đọc chia 3-5 phần có cổng đọc 3 câu (CD-8c), 3 câu Tìm hiểu mà mỗi phương án sai gắn một hiểu lầm, một bài thực hành (Share and Reflect không kèm gợi ý: hỗ trợ giảm dần ở cuối unit), và "Mang theo" ở Đúc kết. Investigate mới là tìm hiểu thật (tra DNS bằng nslookup, nghe và so hai đoạn podcast, so hai đoạn dạy kèm, chơi và ghi hai trò chơi học, thử từng thay đổi trên game mẫu, dùng thử với ba người trước khi ra mắt); Share and Reflect mới đưa sản phẩm cho người thật (luôn hỏi bố mẹ trước khi đưa ra ngoài gia đình), ghi góp ý nguyên văn, sửa đúng một chỗ, và trả lời Compelling Question của unit bằng bằng chứng. Unit Outcomes thêm một câu "Tôi có thể" ở 8 unit để chặng mới có outcome mà Performance Task chứng minh (AI Teen 1 unit 1, 4; AI Teen 2 unit 1-5; AI Teen 3 unit 2), vẫn trong trần 4 câu.
Bảng đổi (cũ → mới). "L" là số lesson cũ, cũng là số lưu slot (dưới); "mới" là lesson soạn mới; "gộp" là lesson gộp.
| Unit | 1 · Make Meaning | 2 · Investigate | 3 · Create | 4 · Share and Reflect |
|---|---|---|---|---|
| AT1 U1 | L1 soạn lại (slot 7, SRC-1277) | L2 (gắn lại từ Create) | gộp L3 + L4 (slot 5) | mới: phép thử một phút (slot 6) |
| AT1 U2 | L1 | L2 | L3 | mới: người không mê dùng Passion Hub (slot 4) |
| AT1 U3 | mới: trang gia đình cho ai dùng (slot 4) | L1 | L2 | L3 |
| AT1 U4 | L1 | L2 | L3 | mới: bạn dùng công thức của em (slot 4) |
| AT1 U5 | L1 | mới: tra DNS bằng nslookup (slot 4) | L2 | L3 |
| AT1 U6 | L1 (gắn lại từ Create) | mới: bản thu nói chuyện hay đọc bài (slot 4) | L2 | L3 |
| AT2 U1 | mới: Study Hub là gì, giúp việc gì (slot 4) | L1 | gộp L2 + L3 (slot 5) | mới: một tuần dùng thật (slot 6) |
| AT2 U2 | L1 | L2 | L3 | mới: bạn cùng lớp học được gì (slot 4) |
| AT2 U3 | mới: cổng ôn thi khác kho đề ở đâu (slot 4) | L1 | gộp L2 + L3 (slot 5) | mới: bạn dùng có tin và tiến bộ không (slot 6) |
| AT2 U4 | L1 | L2 | L3 | mới: phép thử tìm lại (slot 4) |
| AT2 U5 | L1 | L2 (gắn lại từ Create) | L3 | mới: người khác lừa được mô hình không (slot 4) |
| AT2 U6 | L1 | mới: portfolio khác album ảnh ở đâu (slot 4) | L2 | L3 |
| AT3 U1 | L1 | L2 | L3 | mới: phản biện hồ sơ người dùng (slot 4) |
| AT3 U2 | L1 | mới: người dạy giỏi hỏi lại thế nào (slot 4) | gộp L2 + L3 (slot 5) | mới: bạn nhỏ học thật với chatbot (slot 6) |
| AT3 U3 | L1 | mới: trò chơi học giữ người chơi thế nào (slot 4) | L2 | L3 |
| AT3 U4 | L1 | mới: đổi từng thứ trên game mẫu (slot 4) | gộp L2 + L3 (slot 5) | mới: người chơi thật và bản tiếp theo (slot 6) |
| AT3 U5 | mới: công cụ AI nhỏ gồm gì (slot 4) | L1 | L2 | L3 |
| AT3 U6 | L1 | mới: dùng thử với ba người trước (slot 4) | L2 (gắn lại từ Share and Reflect) | L3 |
Đếm: giữ 45 lesson (4 lesson gắn lại chặng), gộp 10 lesson thành 5, soạn mới 22. Bốn chỗ gắn lại là ca ranh giới, ghi ra để chủ dự án soát: AT1 U1 L2 (liệt kê sự thật rồi gạch câu AI viết sai về mình: kiểm điều AI nói), AT1 U6 L1 (chọn ba điều đáng kể và khung kịch bản: chọn chủ đề và kiến thức nền, dù có viết nháp), AT2 U5 L2 (huấn luyện lần đầu để xem dữ liệu quyết định điều máy học: thí nghiệm), AT3 U6 L2 (trong unit Launch & Learn, sản phẩm được LÀM chính là đợt ra mắt: kế hoạch, tin nhắn, form).
✍️ Tiến độ đã lưu: giữ số cũ, cấp số mới, không di chuyển dòng nào. Kết quả của learner gắn với SỐ lesson: ai_teen_exercise_results.lesson_no (khoá unit-lesson-exercise), cổng đọc trong dòng ai_teen_journeys của unit (khoá lesson-part) và bản sao trong trình duyệt (unit-lesson-part), evidence l<lesson>. Đổi thứ tự mà để số = vị trí thì câu trả lời của Lesson 1 cũ sẽ gắn vào lesson mới đứng đầu. Hai cách đã cân:
| Cách | Được | Mất |
|---|---|---|
Đánh số lại rồi migration chuyển khoá (D1 + state_json + localStorage) | số lưu = vị trí, gọn | một migration dữ liệu trên production, phải đúng cả ba nơi cùng lúc; bản sao trong trình duyệt không chạy migration được; lesson gộp vẫn không có chỗ hợp lệ để chuyển tới |
Số lưu slot riêng cho mỗi lesson (đã chọn) | không dòng nào bị đụng; API, D1, evidence giữ nguyên; lesson giữ lại vẫn thấy đúng kết quả cũ | thêm một trường và một lớp dịch ở hai chỗ |
Lesson.slot(apps/learn/src/aiTeen/types.ts): lesson giữ lại giữ số cũ; lesson mới và lesson gộp lấy số chưa từng dùng trong unit (4, 5, 6; API cho tới 20). Số của lesson bị gộp nghỉ hẳn: dòng cũ ở D1 vẫn còn (là lịch sử thật), giao diện bỏ qua. Learner đã qua L3 và L4 cũ của AT1 U1 sẽ làm lại lesson gộp: cố ý, vì câu kiểm và phần đọc của lesson gộp đã khác, coi kết quả cũ là kết quả mới mới là làm hỏng tiến độ.- SRC-1277 (07.10.2026): AT1 U1 L1 được soạn lại thành lesson Make Meaning theo skill
make-meaning-lesson(5 phần đọc thay 4, câu Tìm hiểu mới), nên lấy slot 7; slot 1 nghỉ hẳn theo cùng luật (CD-8d.6). Learner đã làm L1 cũ sẽ làm lại lesson này. - Giao diện vẫn làm việc theo VỊ TRÍ (URL
/lessons/{m}, nhãn "Lesson m", journey); chỉ đổi sang slot ở chỗ dữ liệu vào và ra kho:AiTeen.tsx(gửi và tải kết quả bài tập),useGates.ts(gửi và tải cổng đọc, cả bản sao trình duyệt). Hàm dịch ởapps/learn/src/aiTeen/slots.ts. - Unit đã qua LEARN (Practice, Assess, Reflect, Done) giữ nguyên chặng; lesson mới hiện là chưa làm nhưng không khoá lại thứ learner đã mở. Unit đang ở LEARN cần qua cả lesson mới mới sang Practice.
- Máy giữ luật:
data/legacy-slots.jsonghi dấu vân tay của mọi slot trước SRC-1275 (số phương án và vị trí đáp án đúng của từng câu, số mục checklist, số khối của từng phần đọc: đúng những thứ một kết quả đã lưu trỏ vào; câu chữ không tính, nên sửa một câu "lesson đầu" thành "lesson 2" không đổi dấu vân tay).slots.test.tsđỏ nếu một slot cũ được dùng cho lesson có câu kiểm hay phần đọc khác. - Bookmark
/lessons/{m}cũ có thể mở sang lesson khác vị trí: chấp nhận, URL là chỗ đứng, không phải dữ liệu.
Mục lục (cùng SRC). Dòng "Chưa mở" kèm lý do dưới lesson khoá đã bỏ; biểu tượng ổ khoá là đủ, lý do vẫn nằm trong aria-describedby và title. Popover từ sm rộng min(40rem, 100vw - 2rem) (trước 24rem) để Guiding Question bớt bị cắt; dưới sm vẫn là sheet đáy rộng hết màn hình.
Kiểm chứng. cycle.test.ts: 72 lesson; mỗi unit đúng bốn chặng theo thứ tự; mỗi lesson có cổng đọc, ít nhất hai câu Tìm hiểu, Guiding Question, output, concept thuộc unit, không ký tự cấm. slots.test.ts: slot 1..20 không trùng trong unit, slot cũ giữ đúng dấu vân tay, dịch hai chiều, slot nghỉ bị bỏ. gate.test.ts: hình dạng cổng của cả 72 lesson. e2e aiTeen.spec.ts: kết quả và phần đọc đã qua của Lesson 1 cũ hiện ở Lesson 2 mới, lesson mới không thừa hưởng gì và ghi bằng slot 4, cây hiện bốn lesson đúng bốn chặng; lesson khoá chỉ còn ổ khoá (lý do ở mô tả trợ năng); popover rộng từ 520px. Trang công khai apps/web/src/site/aiTeenProgram.ts đổi số lesson mỗi unit thành 4 và thêm một câu về bốn chặng; aiTeenProgram.test.ts đối chiếu với learn.
12.5 Ba journey của lesson nói tiếng Việt, bỏ tag tiếng Anh (SRC-1279)
Chủ dự án 07.10.2026: ba journey của lesson (ba Learning Activity, vòng trong) đổi tên, và tag tiếng Anh của vòng trong rời khỏi giao diện lesson.
| id (giữ nguyên, nên URL giữ nguyên) | Tên cũ | Tên mới | EN (công tắc VI/EN) | Pha vòng trong |
|---|---|---|---|---|
understand | Hiểu | 1 Bắt đầu | Make Meaning | Make Meaning |
check | Luyện | 2 Tìm hiểu | Investigate | Investigate |
review | Nhìn lại | 3 Đúc kết | Synthesize and Reflect | Synthesize and Reflect |
- Tên mới ở mọi chỗ: hàng 2 (số đứng đầu theo SRC-1276), chữ đầu bước ("BẮT ĐẦU · PHẦN 1/4"), nút đi tiếp ("Sang Tìm hiểu", "Sang Đúc kết"), danh sách Learning Activities ở màn đầu lesson, bảng nhãn VI/EN (
navLang.ts). ✍️ Cột EN là chính tên pha củacycle.ts: tên tiếng Việt mới đã là bản dịch của pha, nên bản tiếng Anh của tên ấy là tên pha, không cần từ thứ ba. - Bỏ khỏi giao diện: tag vòng trong trên tab journey (hàng 2), badge vòng trong ở đầu mỗi bước, badge vòng trong cạnh từng activity ở màn đầu lesson, và tag chặng ngoài cạnh đoạn "Lesson n" của breadcrumb, và cả tag chặng ngoài ở màn đầu lesson: ở lesson 1-2 nó đọc y hệt tag vòng trong vừa bỏ (Make Meaning, Investigate), nên màn lesson chỉ còn câu giải thích chặng bằng tiếng Việt. Giữ: dữ liệu
cycle.ts, tag chặng ngoài gắn cho LESSON trong cây Mục lục, danh sách lesson của unit và bước Học · Lesson n (trang unit), vòng SVG ở Course Overview. - URL
.../lessons/{m}/understand|check|review/...không đổi, link cũ vẫn đúng chỗ. - Kiểm chứng:
navLang.test.ts(cặp VI/EN mới),journeys.test.ts(id cũ, tên mới), e2eaiTeen.spec.ts(menu "1 Bắt đầu / 2 Tìm hiểu / 3 Đúc kết", không còndata-menu-tag,data-cycleở đầu bước haydata-level-tag; công tắc EN ra Make Meaning / Investigate / Synthesize and Reflect).
12.6 AI Teen 1: sáu lesson mỗi unit, năm activity mỗi lesson (SRC-1281)
Chỉ đạo chủ dự án 07.10.2026, CHỈ cho course đầu tiên (AI Teen 1, 6 unit). AI Teen 2-3 giữ khuôn §12.4-§12.5: bốn lesson mỗi unit, ba journey mỗi lesson.
✍️ Khuôn theo course, không rẽ nhánh theo course. Mỗi course khai template (apps/learn/src/aiTeen/program.ts); khuôn nằm ở apps/learn/src/aiTeen/lessonTemplate.ts và nói hai điều: chặng vòng ngoài của từng vị trí lesson trong unit, và các Learning Activity (journey của trang lesson, ở thẻ trái từ SRC-1287) của một lesson. journeys.ts dựng journey từ khuôn; trang lesson (UnitJourney.tsx) chỉ đọc kết quả.
| Khuôn | Course | Lesson trong unit | Activity trong lesson |
|---|---|---|---|
four-lessons-three-activities | AI Teen 2, 3 | Make Meaning · Investigate · Create · Share and Reflect | 1 Bắt đầu · 2 Tìm hiểu · 3 Đúc kết |
six-lessons-five-activities | AI Teen 1 | Make Meaning · Investigate · Investigate · Create · Create · Share and Reflect | 1 Bắt đầu · 2 Xem ví dụ · 3 Tìm hiểu sâu · 4 Kiểm tra · 5 Đúc kết |
Năm activity = năm journey của trang lesson, số đứng đầu theo SRC-1276; từ SRC-1287 chúng nằm ở thẻ trái của trang lesson, mỗi activity kèm các bước của nó (§12.7). Không tag tiếng Anh nào trên giao diện (SRC-1279); công tắc VI/EN đổi tên.
| # | id (URL) | Tên VI | EN (công tắc) | Pha vòng trong | Bước (hàng 3) | Nội dung |
|---|---|---|---|---|---|---|
| A1 | understand | Bắt đầu | Make Meaning | Make Meaning | Câu hỏi, rồi các phần đọc gắn activity: 1 | Guiding Question, Lesson Outcomes, vấn đề mở đầu (với lesson Make Meaning: phần Thử của skill make-meaning-lesson) |
| A2 | examples | Xem ví dụ | Explore examples | Investigate | phần đọc gắn activity: 2 | ví dụ, mô hình, prompt mẫu của key concept |
| A3 | deeper | Tìm hiểu sâu | Dig deeper | Investigate | phần đọc gắn activity: 3 | cách làm, vì sao, giới hạn, lời dặn an toàn |
| A4 | check | Kiểm tra | Check | Investigate | Câu 1..k, rồi Kết quả | bài Luyện cũ (3-4 câu choice), mỗi câu gắn concept và review |
| A5 | review | Đúc kết | Synthesize and Reflect | Synthesize and Reflect | Mang theo, Tiếp theo | sản phẩm của lesson và đường đi tiếp |
- Mỗi phần đọc mang
activity1, 2 hoặc 3 (LessonPart.activity), không lùi, đủ cả ba; phần vẫn có đúng 3 câu cổng CD-8c. Tên VI giữ đúng cách gọi của chủ dự án: Make Meaning = Bắt đầu, Investigate = Tìm hiểu (hai activity đọc thêm chữ "ví dụ", "sâu" để phân biệt), Synthesize and Reflect = Đúc kết. - Bài thực hành vẫn ở Practice của unit (SRC-1251), không vào A4.
- Link cũ: id của A1, A4, A5 giữ slug của khuôn ba journey. Một link
.../understand/part-4tới phần nay nằm ở A2 hay A3 thìresolveViewtheo BƯỚC tới đúng journey mới (id bước là duy nhất trong lesson).
✍️ A4 có phản hồi theo concept, khác cổng đọc. Cổng đọc (CD-8c) chỉ báo tổng và chỉ hiện lời giải khi đúng cả ba: nó giữ nhịp ĐỌC. A4 là Formative Task của lesson (CD-8 thành phần 7), và chủ dự án đặt mục đích của nó là "tìm ra learner cần cải thiện gì". Vì vậy: (1) mỗi câu vẫn có phản hồi của đúng phương án đã chọn và chọn lại được (như bài Luyện cũ); (2) bước cuối "Kết quả" hiện số câu đúng ("Em đúng 2/3 câu"), và với mỗi key concept còn câu chưa đúng: tên concept, các câu chưa đúng, nút "Xem lại Phần k" về đúng phần đọc dạy nó, nút "Làm lại Câu n". Dữ liệu: ChoiceExercise.concept (phải thuộc concepts của lesson, mỗi concept có ít nhất một câu) và ChoiceExercise.review (số phần). Hàm thuần checkResult (journeys.ts), giao diện CheckResult.tsx. Không có thời gian chờ, không khoá.
Bảng đổi (bốn lesson → sáu lesson). "giữ Ln" là lesson thứ n của khuôn bốn lesson; số trong ngoặc là slot (số lưu, §12.4). "mới" là lesson soạn mới; "soạn lại" là lesson Make Meaning viết lại theo skill make-meaning-lesson nên lấy số mới (CD-8d.6).
| Unit | 1 · Make Meaning | 2 · Investigate | 3 · Investigate | 4 · Create | 5 · Create | 6 · Share and Reflect |
|---|---|---|---|---|---|---|
| U1 Website cá nhân | giữ L1 (7, SRC-1277) | giữ L2 (2) | mới: trang người lạ liếc qua là nhớ (8) | khôi phục L3 cũ: dựng trang (3) | khôi phục L4 cũ: kiểm trên điện thoại (4) | giữ L4 (6) |
| U2 Passion Hub | soạn lại: rộng tới đâu thì vừa (5) | giữ L2 (2) | mới: trang sở thích xếp mục cho người mới (6) | giữ L3 (3) | mới: mục vừa đúng vừa giọng em (7) | giữ L4 (4) |
| U3 Website gia đình | soạn lại: trang làm khó bà (5) | giữ L2 (1) | mới: một bức ảnh kể gì cho người lạ (6) | giữ L3 (2) | mới: người thân tự bấm, không ai chỉ (7) | giữ L4 (3) |
| U4 Prompt Cookbook | soạn lại: prompt dùng lại được (5) | giữ L2 (2) | mới: một lần hay chưa chứng tỏ prompt tốt (6) | giữ L3 (3) | mới: thẻ công thức người khác dùng được (7) | giữ L4 (4) |
| U5 Tên miền riêng | soạn lại: tên ngắn mà vẫn tìm đúng trang (5) | giữ L2 (4) | mới: trình duyệt nói gì khi trang không mở (6) | giữ L3 (2) | mới: sửa theo giả thuyết, nhật ký gỡ lỗi (7) | giữ L4 (3) |
| U6 Podcast | soạn lại: kể cả khoá để người nghe nhớ một điều (5) | mới: ba mươi giây đầu (6) | giữ L2 (4) | giữ L3 (2) | mới: ngắn hơn mà vẫn nhớ điều chính (7) | giữ L4 (3) |
Đếm: 36 lesson. Giữ 18 (3 mỗi unit), khôi phục 2, soạn lại 5, mới 11. U1 khôi phục hai lesson Create gốc mà SRC-1275 đã gộp (L3 dựng trang, L4 kiểm trên điện thoại): khuôn mới cần hai lesson Create, và hai lesson gốc còn nguyên dấu vân tay ở slot 3 và 4, nên learner đã qua chúng thấy lại kết quả của mình; lesson gộp (slot 5) nghỉ. Hai Investigate và hai Create của mỗi unit là hai bước khác nhau của một vòng: Investigate thứ nhất thu thông tin hay kiểm điều AI nói, thứ hai soi ví dụ và mô hình (ở U5 và U6 thứ tự đảo vì lesson giữ lại đã là bước soi); Create thứ nhất dựng, thứ hai thử và sửa hay hoàn thiện cho người khác dùng. Unit Outcomes thêm một câu ở U2, U3, U5 cho lesson mới, viết lại hai câu ở U4 và U6 cho khớp lesson Make Meaning mới (vẫn tối đa 4); key concept Prompt structure (U4) viết lại theo khung phần giữ nguyên, chỗ trống, ghi chú.
Lesson giữ lại không đổi khuôn. Khối đọc, phần đọc và bài tập cũ giữ nguyên; chỉ (1) gắn activity cho từng phần, concept/review cho từng câu, (2) thêm 0-1 câu choice vào CUỐI danh sách bài tập để lesson có 3-4 câu và concept nào cũng có câu chẩn đoán (12 lesson giữ lại và 2 lesson khôi phục được thêm một câu), (3) sửa vài chữ trỏ sai thứ tự ("bài trước" thành "lesson 2").
✍️ Tiến độ đã lưu: luật slot §12.4, mở rộng một chỗ.
- Lesson giữ lại giữ slot; lesson mới và lesson soạn lại lấy số chưa từng dùng trong unit (5-8). Lesson Make Meaning cũ của U2-U6 nghỉ số (slot 1 hoặc 4): kết quả cũ còn trong D1, giao diện bỏ qua, learner làm lại lesson mới. Cố ý, cùng lý do lesson gộp ở §12.4.
- Thêm câu vào CUỐI không làm lệch kết quả cũ: kết quả lưu theo chỉ số bài tập, các chỉ số cũ không đổi.
holdsSlot(slots.ts) chấp nhận đúng ca này: dấu vân tay khớp sau khi bỏ bớt bài tập ở cuối. Thêm ở đầu, bỏ, đổi thứ tự hay đổi số phương án vẫn làm test đỏ. Hệ quả: learner đã qua một lesson giữ lại thấy thêm một câu Kiểm tra chưa làm; unit đã qua LEARN không bị khoá lại (§12.4). - Phần đọc và activity. Phần đọc được đánh số MỘT lần cho cả lesson (
part-1..part-n), activity nào hiện nó cũng vậy. (Khoá cổng "phần k mở khi phần k-1 đã qua" đã bỏ ở SRC-1294: mọi phần mở.) Khoá lưu của cổng làlesson-part(§10), nên chia phần vào activity không đổi khoá nào: phần đã qua vẫn đúng là phần ấy, không phần mới nào thừa hưởng. Lesson đổi số phần hay số khối của phần thì đổi dấu vân tay, và test bắt nó lấy slot mới; khoá của slot nghỉ bịgatesFromStoredbỏ, kể cả bản sao trong trình duyệt. data/legacy-slots.jsonnay ghi dấu vân tay của mọi slot từng dùng, gồm cả slot SRC-1275 và SRC-1277 thêm (nulllà số chưa dùng), để lần đổi khuôn sau cũng được kiểm.
Kiểm chứng. cycle.test.ts: 84 lesson (AI Teen 1: 36), mỗi unit đúng chặng của khuôn course, pha activity theo khuôn ([MM, Inv, Inv, Inv, S&R] ở AI Teen 1). journeys.test.ts: năm journey đúng id và tên, Kiểm tra kết thúc ở Kết quả, phần đọc đánh số liền qua ba activity, link cũ tới phần đã dời vẫn tới đúng chỗ, checkResult đếm và chỉ concept, phần. gate.test.ts: mọi phần có activity, mọi câu có concept thuộc lesson và review hợp lệ, concept nào cũng có câu, câu cổng tối đa 16 chữ, phương án tối đa 10 chữ (ngưỡng đỏ; chuẩn soạn vẫn là khoảng 14 và 8). slots.test.ts: slot của 36 lesson, holdsSlot. e2e aiTeen.spec.ts: cây sáu lesson, menu năm activity, Kết quả của Kiểm tra, link cũ. Trang công khai apps/web/src/site/aiTeenProgram.ts: AI Teen 1 sáu lesson mỗi unit.
12.7 Trang lesson: thẻ trái, một trang cuộn, scroll-spy (SRC-1287)
Chỉ đạo chủ dự án 07.10.2026 cho TRANG LESSON, áp cho mọi lesson AI Teen vì layout dùng chung (cả AI Teen 2-3). Mẫu: Guided Journey §9a.
| Trước | Từ SRC-1287 |
|---|---|
| Header ba hàng: cấp · menu journey (activity) · thanh bước | Header chỉ còn hàng cấp: breadcrumb + cây Mục lục, VI/EN, tài khoản (JourneyShell với hideNav, không steps) |
| Mỗi lúc một bước trên màn | Vùng chính hiện MỌI bước của activity đang chọn, nối nhau trên một trang cuộn (LessonPage.tsx) |
| Activity ở hàng 2, bước ở hàng 3 | Thẻ trái (từ lg, dính dưới header): activity có số, dưới mỗi activity các bước có số (LessonOutline) |
| Tên bước = tên phần đọc | Tên trong thẻ tối đa 3 chữ, ưu tiên 1-2 (LessonPart.step, 353 tên); tên đầy đủ là tiêu đề h2 trong vùng chính |
| Bước đang xem = bước trên URL | Scroll-spy: bước có mép trên qua vạch (đáy phần dính + 24px) là bước đang xem; bấm một bước thì cuộn tới nó, mép trên cách đáy phần dính 12px |
| Thanh cuộn ngang ở 375px | Dưới lg: thanh dính "2 Xem ví dụ · 2 So sánh v" mở Sheet ở trên cùng có đúng nội dung thẻ |
- URL vẫn là
.../lessons/{m}/{activity}/{step}: mở link thì đúng activity, cuộn tới đúng bước. Cuộn tay KHÔNG đổi URL (chỉ đổi bước sáng trong thẻ), để lịch sử trình duyệt không đầy theo từng lần cuộn. Phần sau một phần chưa qua hiện ô giữ chỗ có khoá(bỏ ở SRC-1294, chủ dự án 08.10.2026): không phần, không bước, không activity nào khoá; mọi phần hiện nội dung và cổng của nó. Nút "Sang phần k" cuộn tới phần sau trong cùng activity; ở phần cuối của activity nó là "Sang" + tên activity sau.- h1 của vùng chính là activity đang chọn ("2 Xem ví dụ"), kicker trên nó chỉ còn "Lesson n/N" (SRC-1294: kicker cũ lặp Guiding Question); mỗi bước là một
sectioncó h2, không kicker. - Ô tick mỗi bước. Mỗi dòng bước có
data-step-check, hiện tick khi bước đã xong theo luật sẵn có (cổng đọc qua, câu kiểm đúng). Việc learner TỰ tick và ghi lên server (chủ dự án 07.10.2026) đặc tả ở một mục SDD khác chưa gộp lúc làm SRC-1287, nên chưa làm: ô này là chỗ gắn vào. - Không đổi dữ liệu lưu: khoá kết quả, khoá cổng đọc, slot (§12.4, §12.6) giữ nguyên.
Kiểm chứng. journeys.test.ts: tên activity và tên bước của 84 lesson đều 1-3 chữ (tối đa 18 ký tự). e2e aiTeen.spec.ts: header lesson không có thanh bước và menu; thẻ nằm bên trái vùng chính; tên trong thẻ tối đa 3 chữ; đổi activity thì vùng chính chỉ còn các bước của nó; bấm bước thì cuộn tới dưới header và bước ấy sáng; cuộn tay đổi bước sáng; phần khoá thấy được mà không tới được; 375px là thanh dính + Sheet, không cuộn ngang, vùng chạm ≥40px; bộ kiểm điện thoại 320/375px của mọi chặng lesson.