@thanh01.pmt/curriculum-kit 1.4.40 → 1.4.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/ai/index.cjs +31 -31
  2. package/dist/ai/index.cjs.map +1 -1
  3. package/dist/ai/index.mjs +31 -31
  4. package/dist/ai/index.mjs.map +1 -1
  5. package/dist/index.cjs +290 -2027
  6. package/dist/index.cjs.map +1 -1
  7. package/dist/index.d.cts +84 -142
  8. package/dist/index.d.ts +84 -142
  9. package/dist/index.mjs +286 -2007
  10. package/dist/index.mjs.map +1 -1
  11. package/dist/pipeline/index.cjs +31 -31
  12. package/dist/pipeline/index.cjs.map +1 -1
  13. package/dist/pipeline/index.mjs +31 -31
  14. package/dist/pipeline/index.mjs.map +1 -1
  15. package/dist/templates/ACT_template.md +58 -0
  16. package/dist/templates/ALIGNMENT_MATRIX_template.md +45 -0
  17. package/dist/templates/ART_DIRECTION_template.md +43 -0
  18. package/dist/templates/ASSET_MANIFEST_template.md +27 -0
  19. package/dist/templates/BASELINE_STANDARD.md +37 -0
  20. package/dist/templates/BELL_RINGER_template.md +108 -0
  21. package/dist/templates/CHANGELOG_template.md +19 -0
  22. package/dist/templates/CHOICE_BOARD_template.md +64 -0
  23. package/dist/templates/CODE_template.md +70 -0
  24. package/dist/templates/CONTENT_CONTINUITY_template.md +38 -0
  25. package/dist/templates/CONTENT_STYLE_GUIDE_template.md +49 -0
  26. package/dist/templates/CURRICULUM_FRAMEWORK_template.md +63 -0
  27. package/dist/templates/DEPENDENCY_MAP_template.md +65 -0
  28. package/dist/templates/EXIT_TICKET_template.md +85 -0
  29. package/dist/templates/EXT_template.md +35 -0
  30. package/dist/templates/GLOSSARY_template.md +108 -0
  31. package/dist/templates/GRAPHIC_ORGANIZER_template.md +100 -0
  32. package/dist/templates/GUIDE_template.md +56 -0
  33. package/dist/templates/HANDOUT_template.md +61 -0
  34. package/dist/templates/HANDOVER_DOCUMENT_template.md +69 -0
  35. package/dist/templates/KNOWLEDGE_EXPOSITION_template.md +56 -0
  36. package/dist/templates/LEARNER_PROFILE_template.md +51 -0
  37. package/dist/templates/LESSONS_LEARNED_template.md +49 -0
  38. package/dist/templates/LESSON_5E_template.md +127 -0
  39. package/dist/templates/LESSON_EDP_template.md +104 -0
  40. package/dist/templates/LESSON_GENERAL_template.md +117 -0
  41. package/dist/templates/OUTPUT_CONSTRAINTS_template.md +38 -0
  42. package/dist/templates/PACKAGING_SPEC_template.md +56 -0
  43. package/dist/templates/PILOT_FEEDBACK_template.md +49 -0
  44. package/dist/templates/PROJECT_BRIEF_template.md +45 -0
  45. package/dist/templates/PROJECT_STATUS_template.md +64 -0
  46. package/dist/templates/QUIZ_template.md +58 -0
  47. package/dist/templates/QUIZ_v4.6_template.md +65 -0
  48. package/dist/templates/REFERENCE_PACK_template.md +26 -0
  49. package/dist/templates/REVIEW_GAME_template.md +79 -0
  50. package/dist/templates/RUBRIC_template.md +54 -0
  51. package/dist/templates/SCIENCE_LAB_template.md +88 -0
  52. package/dist/templates/SLIDE_template.md +389 -0
  53. package/dist/templates/STATION_ROTATION_template.md +80 -0
  54. package/dist/templates/TASK_CARDS_template.md +111 -0
  55. package/dist/templates/TIERED_PRACTICE_template.md +114 -0
  56. package/dist/templates/UPDATE_ROADMAP_template.md +53 -0
  57. package/dist/templates/WKS_template.md +71 -0
  58. package/dist/workflow/index.cjs +99 -79
  59. package/dist/workflow/index.cjs.map +1 -1
  60. package/dist/workflow/index.mjs +97 -77
  61. package/dist/workflow/index.mjs.map +1 -1
  62. package/docs/refs/templates/ACT_template.md +58 -0
  63. package/docs/refs/templates/ALIGNMENT_MATRIX_template.md +45 -0
  64. package/docs/refs/templates/ART_DIRECTION_template.md +43 -0
  65. package/docs/refs/templates/ASSET_MANIFEST_template.md +27 -0
  66. package/docs/refs/templates/BASELINE_STANDARD.md +37 -0
  67. package/docs/refs/templates/BELL_RINGER_template.md +108 -0
  68. package/docs/refs/templates/CHANGELOG_template.md +19 -0
  69. package/docs/refs/templates/CHOICE_BOARD_template.md +64 -0
  70. package/docs/refs/templates/CODE_template.md +70 -0
  71. package/docs/refs/templates/CONTENT_CONTINUITY_template.md +38 -0
  72. package/docs/refs/templates/CONTENT_STYLE_GUIDE_template.md +49 -0
  73. package/docs/refs/templates/CURRICULUM_FRAMEWORK_template.md +63 -0
  74. package/docs/refs/templates/DEPENDENCY_MAP_template.md +65 -0
  75. package/docs/refs/templates/EXIT_TICKET_template.md +85 -0
  76. package/docs/refs/templates/EXT_template.md +35 -0
  77. package/docs/refs/templates/GLOSSARY_template.md +108 -0
  78. package/docs/refs/templates/GRAPHIC_ORGANIZER_template.md +100 -0
  79. package/docs/refs/templates/GUIDE_template.md +56 -0
  80. package/docs/refs/templates/HANDOUT_template.md +61 -0
  81. package/docs/refs/templates/HANDOVER_DOCUMENT_template.md +69 -0
  82. package/docs/refs/templates/KNOWLEDGE_EXPOSITION_template.md +56 -0
  83. package/docs/refs/templates/LEARNER_PROFILE_template.md +51 -0
  84. package/docs/refs/templates/LESSONS_LEARNED_template.md +49 -0
  85. package/docs/refs/templates/LESSON_5E_template.md +127 -0
  86. package/docs/refs/templates/LESSON_EDP_template.md +104 -0
  87. package/docs/refs/templates/LESSON_GENERAL_template.md +117 -0
  88. package/docs/refs/templates/OUTPUT_CONSTRAINTS_template.md +38 -0
  89. package/docs/refs/templates/PACKAGING_SPEC_template.md +56 -0
  90. package/docs/refs/templates/PILOT_FEEDBACK_template.md +49 -0
  91. package/docs/refs/templates/PROJECT_BRIEF_template.md +45 -0
  92. package/docs/refs/templates/PROJECT_STATUS_template.md +64 -0
  93. package/docs/refs/templates/QUIZ_template.md +58 -0
  94. package/docs/refs/templates/QUIZ_v4.6_template.md +65 -0
  95. package/docs/refs/templates/REFERENCE_PACK_template.md +26 -0
  96. package/docs/refs/templates/REVIEW_GAME_template.md +79 -0
  97. package/docs/refs/templates/RUBRIC_template.md +54 -0
  98. package/docs/refs/templates/SCIENCE_LAB_template.md +88 -0
  99. package/docs/refs/templates/SLIDE_template.md +389 -0
  100. package/docs/refs/templates/STATION_ROTATION_template.md +80 -0
  101. package/docs/refs/templates/TASK_CARDS_template.md +111 -0
  102. package/docs/refs/templates/TIERED_PRACTICE_template.md +114 -0
  103. package/docs/refs/templates/UPDATE_ROADMAP_template.md +53 -0
  104. package/docs/refs/templates/WKS_template.md +71 -0
  105. package/package.json +6 -4
@@ -0,0 +1,58 @@
1
+ ---
2
+ id: "{{ID}}"
3
+ title: "{{TITLE}}"
4
+ type: "QUIZ"
5
+ created_by: "Curriculum OS Builder"
6
+ phase: "{{PHASE}}"
7
+ deliverable: "P2-T08"
8
+ version: "{{VERSION}}"
9
+ date: "{{DATE}}"
10
+ ---
11
+ <!--
12
+ Created by: Curriculum OS Builder
13
+ Phase: P2 | Deliverable: P2-T08 (Assessment Infrastructure)
14
+ Version: v4.6 | Date: 2026-05-06
15
+ Alignment: interactive-quiz-kit/src/schemas/zod/multipleChoiceQuestionSchema.ts
16
+ -->
17
+
18
+ # QUIZ TEMPLATE (V4.6 - JSON-READY)
19
+
20
+ ## 1. Metadata Specs
21
+ - **Format**: Strictly valid JSON or YAML block inside Markdown.
22
+ - **Language**: English (Primary Keys), Vietnamese (Content).
23
+ - **Target Audience**: 15-18 Years Old (Pathway AIoT).
24
+
25
+ ## 2. Schema Structure
26
+ FOLLOW THIS JSON STRUCTURE FOR EACH QUESTION:
27
+
28
+ ```json
29
+ {
30
+ "id": "quiz-[unit]-[lesson]-[sequence]",
31
+ "questionTypeCode": "MULTIPLE_CHOICE",
32
+ "prompt": "Your question statement here...",
33
+ "options": [
34
+ { "id": "opt-1", "text": "Option A text" },
35
+ { "id": "opt-2", "text": "Option B text" },
36
+ { "id": "opt-3", "text": "Option C text" },
37
+ { "id": "opt-4", "text": "Option D text" }
38
+ ],
39
+ "correctAnswerId": "opt-X",
40
+ "points": 10,
41
+ "explanation": "Detailed pedagogical explanation grounded in the lesson content.",
42
+ "bloomLevelCode": "[REMEMBER|UNDERSTAND|APPLY|ANALYZE|EVALUATE|CREATE]",
43
+ "difficultyCode": "[VERY_EASY|EASY|MEDIUM|HARD|VERY_HARD]",
44
+ "learningObjective": "[LO_CODE]",
45
+ "topic": "[TOPIC_NAME]"
46
+ }
47
+ ```
48
+
49
+ ## 3. Pedagogical Rules
50
+ - **Distractors**: Options MUST be plausible misconceptions based on lesson theory.
51
+ - **Tone**: Professional, encouraging, and technically precise.
52
+ - **Alignment**: Every question MUST map to at least one LO from the lesson.
53
+
54
+ ## 4. Visual Layout (Marp/Interactive)
55
+ If rendering to slides:
56
+ - Use `glass-card` layout.
57
+ - One question per slide.
58
+ - Highlight correct answer only in "Teacher Mode".
@@ -0,0 +1,65 @@
1
+ ---
2
+ id: "{{ID}}"
3
+ title: "{{TITLE}}"
4
+ type: "QUIZ"
5
+ created_by: "Curriculum OS Builder"
6
+ phase: "{{PHASE}}"
7
+ deliverable: "P2-T08"
8
+ version: "{{VERSION}}"
9
+ date: "{{DATE}}"
10
+ template_contract: "artifact-template-v1"
11
+ template_required_sections:
12
+ - "Assessment Objectives"
13
+ - "Multiple-Choice Question Bank"
14
+ - "Code Analysis / Debugging Question"
15
+ - "Competency Rubric"
16
+ ---
17
+
18
+ # QUIZ: [LESSON TITLE]
19
+
20
+ ## [REQUIRED] Assessment Objectives
21
+ > One row per Learning Objective from the LESSON A1 table. Bloom level of each
22
+ > objective MUST match the LESSON A1 Bloom verb — do not re-target.
23
+
24
+ | LO | Assessment Objective | Bloom Level | Evidence Measured |
25
+ |---|---|---|---|
26
+ | LO1 | [What this quiz verifies for LO1] | [Same Bloom verb as LESSON A1] | [Observable student output] |
27
+
28
+ ## [REQUIRED] Multiple-Choice Question Bank
29
+ > ≥5 scenario-based questions, 4 options each. Every distractor must be a real,
30
+ > common misconception from this lesson's domain (see Common Mistakes source in
31
+ > the canonical knowledge context) — never random filler.
32
+
33
+ ### Q1. [Question stem — scenario or direct probe]
34
+ - A. [Option]
35
+ - B. [Option]
36
+ - C. [Option]
37
+ - D. [Option]
38
+ - **Correct:** [Letter]
39
+ - **Bloom:** [REMEMBER|UNDERSTAND|APPLY|ANALYZE|EVALUATE|CREATE]
40
+ - **LO:** [LO code]
41
+ - **Distractor rationale:** [Why each wrong option is plausible — the misconception it targets]
42
+
43
+ <!-- Repeat per question. -->
44
+
45
+ ## [REQUIRED] Code Analysis / Debugging Question
46
+ > One deep code-tracing task: students predict output or identify the bug.
47
+ > Provide a complete, runnable snippet with line numbers.
48
+
49
+ ```[language]
50
+ // [Complete, runnable snippet]
51
+ ```
52
+
53
+ - **Question:** [What must students predict / find?]
54
+ - **Expected answer:** [Output or bug + fix]
55
+ - **Bloom:** [Level] — **LO:** [LO code]
56
+
57
+ ## [REQUIRED] Competency Rubric
58
+ > 4-tier matrix tied to the Evidence column above.
59
+
60
+ | Tier | Descriptor | Evidence Threshold |
61
+ |---|---|---|
62
+ | Developing | [Below-minimum performance] | [Observable indicator] |
63
+ | Proficient | [Session target — minimum exit bar] | [Observable indicator] |
64
+ | Advanced | [Beyond target, independent transfer] | [Observable indicator] |
65
+ | Exemplary | [Creative extension / peer-teaching level] | [Observable indicator] |
@@ -0,0 +1,26 @@
1
+ ---
2
+ id: "{{ID}}"
3
+ title: "{{TITLE}}"
4
+ type: "REFERENCE_PACK"
5
+ created_by: "Curriculum OS Builder"
6
+ phase: "{{PHASE}}"
7
+ deliverable: "{{DELIVERABLE_CODE}}"
8
+ version: "{{VERSION}}"
9
+ date: "{{DATE}}"
10
+ ---
11
+
12
+ # REFERENCE PACK: Pedagogical Source Grounds
13
+
14
+ This document contains validated technical references for curriculum development. All technical facts in the lessons MUST align with these sources.
15
+
16
+ ## 📊 Coverage Summary
17
+ - **Total References**: {{total_refs}}
18
+ - **LO Coverage**: {{covered_count}} / {{target_count}} ({{percentage}}%)
19
+
20
+ {{summary_table}}
21
+
22
+ ---
23
+
24
+ ## 📚 Detailed Technical References
25
+
26
+ {{detailed_entries}}
@@ -0,0 +1,79 @@
1
+ ---
2
+ id: "{{ID}}"
3
+ title: "{{TITLE}}"
4
+ type: "REVIEW_GAME"
5
+ created_by: "Curriculum OS Builder"
6
+ phase: "{{PHASE}}"
7
+ deliverable: "P3-T17"
8
+ version: "{{VERSION}}"
9
+ date: "{{DATE}}"
10
+ template_contract: "artifact-template-v1"
11
+ template_required_sections:
12
+ - "Game Rules & Setup Guide"
13
+ - "Round 1: Speed Round (100-200 Pts)"
14
+ - "Round 2: Code Duel & Debugging (300-400 Pts)"
15
+ - "Round 3: Final Boss Architecture Challenge (500 Pts)"
16
+ - "Kahoot / Quizizz CSV Export Format"
17
+ ---
18
+ <!-- INJECT_BODY -->
19
+
20
+ # INTERACTIVE REVIEW GAME (QUIZ SHOW PACK): [UNIT / LESSON TITLE]
21
+ _Unit: U[X] | Module: M[X.X] | Format: Live Classroom Quiz Show / Kahoot / Jeopardy Format_
22
+
23
+ ## [REQUIRED] Game Rules & Setup Guide
24
+ - **Format:** 3 Rounds of progressive difficulty with team buzzers or interactive clickers.
25
+ - **Team Size:** 3-5 students per squad.
26
+ - **Bonus Mechanic:** Teams can wager points on Round 3 (Final Boss Challenge).
27
+
28
+ ---
29
+
30
+ ## [REQUIRED] Round 1: Rapid-Fire Speed Round (100–200 Points)
31
+
32
+ ### Question 1 (100 Pts):
33
+ - **Category:** Vocabulary & Syntax
34
+ - **Prompt:** "What is the primary difference between `Task` and `Task.detached`?"
35
+ - **Options:**
36
+ - `[A]` `Task.detached` inherits actor context; `Task` does not.
37
+ - `[B]` `Task` inherits actor context & priority; `Task.detached` runs completely unisolated. *(Correct)*
38
+ - `[C]` `Task` cannot throw errors; `Task.detached` can.
39
+ - `[D]` There is no difference.
40
+
41
+ ### Question 2 (200 Pts):
42
+ - **Category:** Mental Model
43
+ - **Prompt:** "Why are SwiftUI Views declared as `struct` (Value Types) rather than `class` (Reference Types)?"
44
+ - **Answer:** Value types enforce immutability, make state mutation explicit, and allow lightweight view tree instantiation with zero heap fragmentation.
45
+
46
+ ---
47
+
48
+ ## [REQUIRED] Round 2: Code Duel & Debugging (300–400 Points)
49
+
50
+ ### Challenge 1 (300 Pts):
51
+ - **Prompt:** First team to buzz in and explain why this code fails compilation wins 300 pts!
52
+ ```swift
53
+ class DataStore {
54
+ var items: [String] = []
55
+ }
56
+ func updateStore(store: DataStore) async {
57
+ // Calling across concurrency boundary without Sendable conformance
58
+ }
59
+ ```
60
+ - **Winning Explanation:** `DataStore` is a non-final reference type with mutable state; it does not conform to `Sendable` and cannot safely cross task boundaries.
61
+
62
+ ---
63
+
64
+ ## [REQUIRED] Round 3: Final Boss Architecture Challenge (500 Points)
65
+ - **Scenario:** "Design a real-time multiplayer scorekeeper using Swift 6 Actors. You have 3 minutes to draft the Actor interface on your team whiteboard."
66
+ - **Rubric:**
67
+ - `+200 pts:` Declared `actor ScoreKeeper`.
68
+ - `+150 pts:` Thread-safe async update method.
69
+ - `+150 pts:` Non-blocking read access with `isolated` parameters where appropriate.
70
+
71
+ ---
72
+
73
+ ## [REQUIRED] Kahoot / Quizizz CSV Export Format
74
+ ```csv
75
+ Question,Option 1,Option 2,Option 3,Option 4,Correct Answer,Time Limit (sec)
76
+ "What keyword creates an asynchronous suspension point?","defer","await","return","yield",2,20
77
+ "Which property wrapper creates local view-owned state?","@Binding","@State","@ObservedObject","@Environment",2,20
78
+ "What protocol marks types safe to share across concurrency boundaries?","Codable","Equatable","Sendable","Identifiable",3,30
79
+ ```
@@ -0,0 +1,54 @@
1
+ ---
2
+ id: "{{ID}}"
3
+ title: "{{TITLE}}"
4
+ type: "RUBRIC"
5
+ created_by: "Curriculum OS Builder"
6
+ phase: "{{PHASE}}"
7
+ deliverable: "{{DELIVERABLE_CODE}}"
8
+ version: "{{VERSION}}"
9
+ date: "{{DATE}}"
10
+ template_contract: "artifact-template-v1"
11
+ template_required_sections:
12
+ - "Assessment Overview"
13
+ - "Assessment Rubric"
14
+ ---
15
+
16
+ # ASSESSMENT: [LESSON/PROJECT TITLE]
17
+
18
+ _Unit: U[X] | Module: M[X.X] | Lesson: Lesson [XX]_
19
+
20
+ ## [REQUIRED] Assessment Overview
21
+ - **Type:** [Select: Formative / Summative / Self-assessment / Peer-review]
22
+ - **Format:** [Select: Short Exercise / Exit Ticket / Practical Product / Project Presentation]
23
+ - **Learning Objectives Measured:** [Copy 1-2 LOs from the corresponding Lesson Plan]
24
+ - **Target Language:** [Select: For Teachers (Technical/Pedagogical) / For Students (Simple/Friendly "I can..." language)]
25
+
26
+ ---
27
+
28
+ ## [REQUIRED] Assessment Rubric
29
+ _Note for @assessor: Describe SPECIFIC behaviors. Avoid vague words like "good" or "understand."_
30
+
31
+ | Criteria | Weight | Excellent (4) | Proficient (3) | Developing (2) | Beginning (1) |
32
+ |---|:---:|---|---|---|---|
33
+ | **[Criteria 1]**<br>_(e.g., Circuitry)_ | [X]% | [e.g., 100% correct connection, neat wiring, follows color conventions.] | [e.g., Circuit works correctly, but wiring is disorganized.] | [e.g., Circuit partially works, requires teacher input to fix errors.] | [e.g., Incorrect wiring makes the circuit non-functional, unable to debug.] |
34
+ | **[Criteria 2]**<br>_(e.g., Coding)_ | [Y]% | [Level 4 description] | [Level 3 description] | [Level 2 description] | [Level 1 description] |
35
+ | **[Criteria 3]**<br>_(e.g., Teamwork)_ | [Z]% | [Level 4 description] | [Level 3 description] | [Level 2 description] | [Level 1 description] |
36
+
37
+ ---
38
+
39
+ ## [OPTIONAL] Exit Ticket
40
+ _Used at the end of class for a quick pulse check (Max 3 questions)._
41
+ 1. **Question 1 (Recall/Recall):** [Multiple choice or True/False]
42
+ - **Answer:** [Correct answer]
43
+ 2. **Question 2 (Apply):** [Short situational question]
44
+ - **Answer / Scoring Guide:** [Grading instruction]
45
+ 3. **Question 3 (Reflection):** What was the most challenging part of today's lesson? (Open-ended)
46
+
47
+ ---
48
+
49
+ ## [OPTIONAL] Student Self-Assessment Checklist
50
+ _Simple language for students to reflect after completing a project._
51
+ - [ ] I have completed the product according to the requirements.
52
+ - [ ] I can explain how the code/circuit works to others.
53
+ - [ ] I fixed at least one bug on my own (or with my group).
54
+ - **One thing I am most proud of in my product is:** ___________________________
@@ -0,0 +1,88 @@
1
+ ---
2
+ id: "{{ID}}"
3
+ title: "{{TITLE}}"
4
+ type: "SCIENCE_LAB"
5
+ created_by: "Curriculum OS Builder"
6
+ phase: "{{PHASE}}"
7
+ deliverable: "P3-T13"
8
+ version: "{{VERSION}}"
9
+ date: "{{DATE}}"
10
+ template_contract: "artifact-template-v1"
11
+ template_required_sections:
12
+ - "Guiding Inquiry & Driving Question"
13
+ - "Hypothesis & Experimental Design"
14
+ - "Data Collection & Code Lab Protocol"
15
+ - "CER Scientific Conclusion (Claim, Evidence, Reasoning)"
16
+ - "Peer Review & Verification Protocol"
17
+ ---
18
+ <!-- INJECT_BODY -->
19
+
20
+ # STEM / CODE INVESTIGATION LAB (CER): [LAB TITLE]
21
+ _Unit: U[X] | Module: M[X.X] | Domain: [Scientific / Engineering Domain]_
22
+
23
+ ## [REQUIRED] Guiding Inquiry & Driving Question
24
+ - **Real-World Driving Question:** [E.g., "How does thread contention affect application frame rate (FPS) and memory throughput under heavy load?"]
25
+ - **Engineering Phenomenon:** [E.g., "When two tasks write to the same mutable array simultaneously, why does the program crash intermittently rather than every single run?"]
26
+
27
+ ---
28
+
29
+ ## [REQUIRED] Hypothesis & Experimental Design
30
+ - **Student Hypothesis Template:**
31
+ > *"If we [Action / Variable Manipulation, e.g., 'isolate the shared mutable resource inside an Actor instead of using a global lock'], then [Predicted Outcome, e.g., 'data races will drop to zero and UI thread latency will remain under 16ms'] because [Scientific / Engineering Rationale]."*
32
+
33
+ ### Controlled Variables:
34
+ - **Independent Variable (Manipulated):** [E.g., Number of concurrent tasks: 1, 10, 100, 1000].
35
+ - **Dependent Variable (Measured):** [E.g., Execution time (ms), Data Race crash count, CPU core utilization (%)].
36
+ - **Control Variables (Constant):** [E.g., Device hardware, input data size, operating system version].
37
+
38
+ ---
39
+
40
+ ## [REQUIRED] Data Collection & Code Lab Protocol
41
+
42
+ ### Lab Setup & Instrumentation Code:
43
+ ```swift
44
+ // Benchmark / Probe harness provided to students
45
+ import Foundation
46
+
47
+ struct BenchmarkProbe {
48
+ static func runExperiment(iterations: Int, concurrencyLevel: Int) async -> ExperimentResult {
49
+ // Probe execution harness measuring latency and memory
50
+ }
51
+ }
52
+ ```
53
+
54
+ ### Data Collection Table:
55
+ | Trial | Concurrency Level | Memory Usage (MB) | Execution Latency (ms) | Anomaly / Error Count |
56
+ | :---: | :---: | :---: | :---: | :---: |
57
+ | 1 | 1 Task | | | |
58
+ | 2 | 10 Concurrent Tasks | | | |
59
+ | 3 | 100 Concurrent Tasks | | | |
60
+ | 4 | 1,000 Concurrent Tasks | | | |
61
+
62
+ ---
63
+
64
+ ## [REQUIRED] CER Scientific Conclusion (Claim, Evidence, Reasoning)
65
+ > *Students must write their conclusion strictly following the 3-part CER framework:*
66
+
67
+ ### 1. 📌 Claim (Khẳng định):
68
+ - *Direct answer to the driving question in 1 concise sentence:*
69
+ ```text
70
+ [E.g., "Actor-based state isolation completely eliminates data race crashes while maintaining sub-16ms latency up to 500 concurrent operations."]
71
+ ```
72
+
73
+ ### 2. 📊 Evidence (Bằng chứng số liệu):
74
+ - *Specific quantitative data points cited directly from the Data Collection Table:*
75
+ ```text
76
+ [E.g., "In Trial 3 with 100 concurrent tasks, the unprotected array crashed 4 out of 5 times, whereas the Actor implementation completed with 0 errors in an average of 12.4ms."]
77
+ ```
78
+
79
+ ### 3. 🧠 Reasoning (Lập luận khoa học):
80
+ - *Connect the evidence back to the underlying technical principle:*
81
+ ```text
82
+ [E.g., "This occurs because the Actor mailbox serializes incoming asynchronous message invocations via cooperative multitasking on the dispatch pool, ensuring that only one thread can mutate internal state at any given CPU tick."]
83
+ ```
84
+
85
+ ---
86
+
87
+ ## [REQUIRED] Peer Review & Verification Protocol
88
+ - **Reproducibility Test:** Exchange code probes with another student group to verify if their experimental results match within a $\pm 10\%$ tolerance band.