@thanh01.pmt/curriculum-kit 1.4.41 → 1.4.43
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.
- package/dist/ai/index.cjs +31 -31
- package/dist/ai/index.cjs.map +1 -1
- package/dist/ai/index.d.cts +77 -77
- package/dist/ai/index.d.ts +77 -77
- package/dist/ai/index.mjs +31 -31
- package/dist/ai/index.mjs.map +1 -1
- package/dist/index.cjs +301 -2034
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +100 -154
- package/dist/index.d.ts +100 -154
- package/dist/index.mjs +297 -2014
- package/dist/index.mjs.map +1 -1
- package/dist/pipeline/index.cjs +31 -31
- package/dist/pipeline/index.cjs.map +1 -1
- package/dist/pipeline/index.mjs +31 -31
- package/dist/pipeline/index.mjs.map +1 -1
- package/dist/schemas/index.d.cts +1052 -1052
- package/dist/schemas/index.d.ts +1052 -1052
- package/dist/standards/index.d.cts +2 -2
- package/dist/standards/index.d.ts +2 -2
- package/dist/{standardsCoverageGate-CLnq0d0s.d.cts → standardsCoverageGate-49pJq5t8.d.cts} +12 -12
- package/dist/{standardsCoverageGate-CLnq0d0s.d.ts → standardsCoverageGate-49pJq5t8.d.ts} +12 -12
- package/dist/templates/ACT_template.md +58 -0
- package/dist/templates/ALIGNMENT_MATRIX_template.md +45 -0
- package/dist/templates/ART_DIRECTION_template.md +43 -0
- package/dist/templates/ASSET_MANIFEST_template.md +27 -0
- package/dist/templates/BASELINE_STANDARD.md +37 -0
- package/dist/templates/BELL_RINGER_template.md +108 -0
- package/dist/templates/CHANGELOG_template.md +19 -0
- package/dist/templates/CHOICE_BOARD_template.md +64 -0
- package/dist/templates/CODE_template.md +70 -0
- package/dist/templates/CONTENT_CONTINUITY_template.md +38 -0
- package/dist/templates/CONTENT_STYLE_GUIDE_template.md +49 -0
- package/dist/templates/CURRICULUM_FRAMEWORK_template.md +63 -0
- package/dist/templates/DEPENDENCY_MAP_template.md +65 -0
- package/dist/templates/EXIT_TICKET_template.md +85 -0
- package/dist/templates/EXT_template.md +35 -0
- package/dist/templates/GLOSSARY_template.md +108 -0
- package/dist/templates/GRAPHIC_ORGANIZER_template.md +100 -0
- package/dist/templates/GUIDE_template.md +56 -0
- package/dist/templates/HANDOUT_template.md +61 -0
- package/dist/templates/HANDOVER_DOCUMENT_template.md +69 -0
- package/dist/templates/KNOWLEDGE_EXPOSITION_template.md +56 -0
- package/dist/templates/LEARNER_PROFILE_template.md +51 -0
- package/dist/templates/LESSONS_LEARNED_template.md +49 -0
- package/dist/templates/LESSON_5E_template.md +127 -0
- package/dist/templates/LESSON_EDP_template.md +104 -0
- package/dist/templates/LESSON_GENERAL_template.md +117 -0
- package/dist/templates/OUTPUT_CONSTRAINTS_template.md +38 -0
- package/dist/templates/PACKAGING_SPEC_template.md +56 -0
- package/dist/templates/PILOT_FEEDBACK_template.md +49 -0
- package/dist/templates/PROJECT_BRIEF_template.md +45 -0
- package/dist/templates/PROJECT_STATUS_template.md +64 -0
- package/dist/templates/QUIZ_template.md +58 -0
- package/dist/templates/QUIZ_v4.6_template.md +65 -0
- package/dist/templates/REFERENCE_PACK_template.md +26 -0
- package/dist/templates/REVIEW_GAME_template.md +79 -0
- package/dist/templates/RUBRIC_template.md +54 -0
- package/dist/templates/SCIENCE_LAB_template.md +88 -0
- package/dist/templates/SLIDE_template.md +389 -0
- package/dist/templates/STATION_ROTATION_template.md +80 -0
- package/dist/templates/TASK_CARDS_template.md +111 -0
- package/dist/templates/TIERED_PRACTICE_template.md +114 -0
- package/dist/templates/UPDATE_ROADMAP_template.md +53 -0
- package/dist/templates/WKS_template.md +71 -0
- package/dist/workflow/index.cjs +99 -79
- package/dist/workflow/index.cjs.map +1 -1
- package/dist/workflow/index.d.cts +1 -1
- package/dist/workflow/index.d.ts +1 -1
- package/dist/workflow/index.mjs +97 -77
- package/dist/workflow/index.mjs.map +1 -1
- package/docs/refs/templates/ACT_template.md +58 -0
- package/docs/refs/templates/ALIGNMENT_MATRIX_template.md +45 -0
- package/docs/refs/templates/ART_DIRECTION_template.md +43 -0
- package/docs/refs/templates/ASSET_MANIFEST_template.md +27 -0
- package/docs/refs/templates/BASELINE_STANDARD.md +37 -0
- package/docs/refs/templates/BELL_RINGER_template.md +108 -0
- package/docs/refs/templates/CHANGELOG_template.md +19 -0
- package/docs/refs/templates/CHOICE_BOARD_template.md +64 -0
- package/docs/refs/templates/CODE_template.md +70 -0
- package/docs/refs/templates/CONTENT_CONTINUITY_template.md +38 -0
- package/docs/refs/templates/CONTENT_STYLE_GUIDE_template.md +49 -0
- package/docs/refs/templates/CURRICULUM_FRAMEWORK_template.md +63 -0
- package/docs/refs/templates/DEPENDENCY_MAP_template.md +65 -0
- package/docs/refs/templates/EXIT_TICKET_template.md +85 -0
- package/docs/refs/templates/EXT_template.md +35 -0
- package/docs/refs/templates/GLOSSARY_template.md +108 -0
- package/docs/refs/templates/GRAPHIC_ORGANIZER_template.md +100 -0
- package/docs/refs/templates/GUIDE_template.md +56 -0
- package/docs/refs/templates/HANDOUT_template.md +61 -0
- package/docs/refs/templates/HANDOVER_DOCUMENT_template.md +69 -0
- package/docs/refs/templates/KNOWLEDGE_EXPOSITION_template.md +56 -0
- package/docs/refs/templates/LEARNER_PROFILE_template.md +51 -0
- package/docs/refs/templates/LESSONS_LEARNED_template.md +49 -0
- package/docs/refs/templates/LESSON_5E_template.md +127 -0
- package/docs/refs/templates/LESSON_EDP_template.md +104 -0
- package/docs/refs/templates/LESSON_GENERAL_template.md +117 -0
- package/docs/refs/templates/OUTPUT_CONSTRAINTS_template.md +38 -0
- package/docs/refs/templates/PACKAGING_SPEC_template.md +56 -0
- package/docs/refs/templates/PILOT_FEEDBACK_template.md +49 -0
- package/docs/refs/templates/PROJECT_BRIEF_template.md +45 -0
- package/docs/refs/templates/PROJECT_STATUS_template.md +64 -0
- package/docs/refs/templates/QUIZ_template.md +58 -0
- package/docs/refs/templates/QUIZ_v4.6_template.md +65 -0
- package/docs/refs/templates/REFERENCE_PACK_template.md +26 -0
- package/docs/refs/templates/REVIEW_GAME_template.md +79 -0
- package/docs/refs/templates/RUBRIC_template.md +54 -0
- package/docs/refs/templates/SCIENCE_LAB_template.md +88 -0
- package/docs/refs/templates/SLIDE_template.md +389 -0
- package/docs/refs/templates/STATION_ROTATION_template.md +80 -0
- package/docs/refs/templates/TASK_CARDS_template.md +111 -0
- package/docs/refs/templates/TIERED_PRACTICE_template.md +114 -0
- package/docs/refs/templates/UPDATE_ROADMAP_template.md +53 -0
- package/docs/refs/templates/WKS_template.md +71 -0
- package/package.json +5 -3
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
---
|
|
2
|
+
marp: true
|
|
3
|
+
theme: default
|
|
4
|
+
paginate: true
|
|
5
|
+
header: "{{HEADER_TITLE}}"
|
|
6
|
+
footer: "LearnWell Platform | {{LESSON_ID}}"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- Slide 1: Title & Inquiry Mission Hook -->
|
|
10
|
+
# 🚀 {{TITLE}}
|
|
11
|
+
|
|
12
|
+
### {{SUBTITLE}}
|
|
13
|
+
|
|
14
|
+
- **Target Level:** {{AUDIENCE}}
|
|
15
|
+
- **Toolchain / Stack:** {{TECH_STACK}}
|
|
16
|
+
- **Pacing:** {{DURATION_MINS}} mins
|
|
17
|
+
|
|
18
|
+
<!--
|
|
19
|
+
Presenter Notes:
|
|
20
|
+
- HOOK & PURPOSE: Introduce the lesson with high energy. Connect today's mission directly to a real industry practice.
|
|
21
|
+
- TIMING: Spend ~2 minutes max on this slide.
|
|
22
|
+
- COLD CALL: Ask 1 student: "Who has encountered [core problem] before?"
|
|
23
|
+
-->
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
<!-- Slide 2: Agenda & Journey Map -->
|
|
28
|
+
## 🗺️ Agenda & Milestone Journey Map
|
|
29
|
+
|
|
30
|
+
| Time | Stage | Focus Activity |
|
|
31
|
+
| :--: | ----- | -------------- |
|
|
32
|
+
{{AGENDA_ROWS}}
|
|
33
|
+
|
|
34
|
+
<!--
|
|
35
|
+
Presenter Notes:
|
|
36
|
+
- ROADMAP: Set clear expectations for each sprint.
|
|
37
|
+
- HIGHLIGHT: Emphasize that theory is kept minimal (~3-5 mins per burst) with immediate hands-on labs.
|
|
38
|
+
-->
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
<!-- Slide 3: Warm-Up & Prior Knowledge Recall -->
|
|
43
|
+
## ⚡ Warm-Up: Diagnostic Quick-Fire
|
|
44
|
+
|
|
45
|
+
<div class="columns">
|
|
46
|
+
<div>
|
|
47
|
+
|
|
48
|
+
### 🧠 Prior Knowledge Recall
|
|
49
|
+
- **Concept A:** {{RECALL_CONCEPT_A}}
|
|
50
|
+
- **Concept B:** {{RECALL_CONCEPT_B}}
|
|
51
|
+
- **Bridging Question:** {{RECALL_BRIDGE_QUESTION}}
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<div>
|
|
55
|
+
|
|
56
|
+
<div class="card highlight">
|
|
57
|
+
|
|
58
|
+
**⚡ 60-Second Challenge:**
|
|
59
|
+
{{WARMUP_CHALLENGE_PROMPT}}
|
|
60
|
+
|
|
61
|
+
</div>
|
|
62
|
+
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
<!--
|
|
67
|
+
Presenter Notes:
|
|
68
|
+
- DIAGNOSTIC: Check if prerequisites are solid.
|
|
69
|
+
- SCAFFOLDING: If students struggle with Concept A, quickly remind them of [key intuition].
|
|
70
|
+
-->
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
<!-- Slide 4: Real-World Hook Scenario -->
|
|
75
|
+
## 🎯 Hook Scenario: The Engineering Dilemma
|
|
76
|
+
|
|
77
|
+
<div class="card warning">
|
|
78
|
+
|
|
79
|
+
### ⚠️ System Failure in Production:
|
|
80
|
+
{{HOOK_SCENARIO}}
|
|
81
|
+
|
|
82
|
+
</div>
|
|
83
|
+
|
|
84
|
+
<div class="columns">
|
|
85
|
+
<div>
|
|
86
|
+
|
|
87
|
+
- **Core Dilemma:** {{HOOK_CONSTRAINT}}
|
|
88
|
+
- **Why Naive Approach Fails:** {{HOOK_FAILURE_REASON}}
|
|
89
|
+
|
|
90
|
+
</div>
|
|
91
|
+
<div>
|
|
92
|
+
|
|
93
|
+
- **Engineering Mission:** {{HOOK_QUESTION}}
|
|
94
|
+
- **Success Target:** {{HOOK_METRIC}}
|
|
95
|
+
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
|
|
99
|
+
<!--
|
|
100
|
+
Presenter Notes:
|
|
101
|
+
- STAKES: Paint the authentic consequence of this failure (e.g. app crash, data loss, performance degradation).
|
|
102
|
+
- DO NOT reveal the solution yet! Keep curiosity high.
|
|
103
|
+
-->
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
<!-- [CONCEPT_MICRO_CYCLES_START] -->
|
|
108
|
+
|
|
109
|
+
<!-- Slide 5: Core Concept 1 - Mental Model & Analogy -->
|
|
110
|
+
## 🧠 Concept 1: {{CONCEPT_1_NAME}}
|
|
111
|
+
|
|
112
|
+
<div class="columns">
|
|
113
|
+
<div>
|
|
114
|
+
|
|
115
|
+
### 💡 The Core Mental Model
|
|
116
|
+
- **Definition:** {{CONCEPT_1_DEFINITION}}
|
|
117
|
+
- **Intuitive Analogy:** {{CONCEPT_1_ANALOGY}}
|
|
118
|
+
- **Why It Matters:** {{CONCEPT_1_BENEFIT}}
|
|
119
|
+
|
|
120
|
+
</div>
|
|
121
|
+
<div>
|
|
122
|
+
|
|
123
|
+
<div class="card">
|
|
124
|
+
|
|
125
|
+
**⚡ Golden Rule:**
|
|
126
|
+
{{CONCEPT_1_GOLDEN_RULE}}
|
|
127
|
+
|
|
128
|
+
</div>
|
|
129
|
+
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
|
|
133
|
+
<!--
|
|
134
|
+
Presenter Notes:
|
|
135
|
+
- TALK TRACK: Explain the analogy clearly using the everyday mental model.
|
|
136
|
+
- MISCONCEPTION ALERT: Students often confuse [A] with [B]. Clarify the boundary now.
|
|
137
|
+
-->
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
<!-- Slide 6: Architecture & Data Flow Visual -->
|
|
142
|
+
## 🔄 Architecture: {{CONCEPT_1_NAME}} Visualized
|
|
143
|
+
|
|
144
|
+
```mermaid
|
|
145
|
+
{{CONCEPT_1_MERMAID_DIAGRAM}}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
- **Step 1 (Input):** {{FLOW_STEP_1}}
|
|
149
|
+
- **Step 2 (Transform):** {{FLOW_STEP_2}}
|
|
150
|
+
- **Step 3 (Output):** {{FLOW_STEP_3}}
|
|
151
|
+
|
|
152
|
+
<!--
|
|
153
|
+
Presenter Notes:
|
|
154
|
+
- DIAGRAM WALKTHROUGH: Trace the flow arrows step-by-step.
|
|
155
|
+
- COLD CALL CHECK: "What happens between Step 2 and Step 3 if the condition fails?"
|
|
156
|
+
-->
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
<!-- Slide 7: Syntax Anatomy & Code Demo (I Do) -->
|
|
161
|
+
## ⚙️ Code Anatomy: {{CONCEPT_1_NAME}}
|
|
162
|
+
|
|
163
|
+
<div class="columns">
|
|
164
|
+
<div>
|
|
165
|
+
|
|
166
|
+
### 📝 Implementation Blueprint
|
|
167
|
+
```{{TECH_LANGUAGE}}
|
|
168
|
+
{{CONCEPT_1_CODE_SNIPPET}}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
</div>
|
|
172
|
+
<div>
|
|
173
|
+
|
|
174
|
+
### 🔍 Anatomy & Mechanics
|
|
175
|
+
- **Line 1-2:** {{CODE_EXPLANATION_L1}}
|
|
176
|
+
- **Line 3-4:** {{CODE_EXPLANATION_L2}}
|
|
177
|
+
- **Line 5+:** {{CODE_EXPLANATION_L3}}
|
|
178
|
+
|
|
179
|
+
<div class="card highlight">
|
|
180
|
+
|
|
181
|
+
**⚠️ Syntax Trap:** {{SYNTAX_TRAP_NOTE}}
|
|
182
|
+
|
|
183
|
+
</div>
|
|
184
|
+
|
|
185
|
+
</div>
|
|
186
|
+
</div>
|
|
187
|
+
|
|
188
|
+
<!--
|
|
189
|
+
Presenter Notes:
|
|
190
|
+
- LIVE DEMO: Point directly to the highlighted lines on screen.
|
|
191
|
+
- EMPHASIZE: Explain why this syntax was chosen over the legacy way.
|
|
192
|
+
-->
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
<!-- Slide 8: Quick Micro-Practice (We Do / You Do) -->
|
|
197
|
+
## 🚀 Quick Micro-Practice: Try It Now (3 Mins)
|
|
198
|
+
|
|
199
|
+
<div class="card highlight">
|
|
200
|
+
|
|
201
|
+
**🎯 Your Task:** {{MICRO_PRACTICE_TASK}}
|
|
202
|
+
|
|
203
|
+
</div>
|
|
204
|
+
|
|
205
|
+
<div class="columns">
|
|
206
|
+
<div>
|
|
207
|
+
|
|
208
|
+
### 🥉 Starter Hint:
|
|
209
|
+
```{{TECH_LANGUAGE}}
|
|
210
|
+
{{STARTER_CODE_HINT}}
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
</div>
|
|
214
|
+
<div>
|
|
215
|
+
|
|
216
|
+
### ⏱️ Pacing & Success Check:
|
|
217
|
+
- **Time limit:** 3 minutes at your workstation.
|
|
218
|
+
- **Expected result:** {{EXPECTED_MICRO_OUTPUT}}
|
|
219
|
+
- 🟢 Thumbs up when console prints expected output!
|
|
220
|
+
|
|
221
|
+
</div>
|
|
222
|
+
</div>
|
|
223
|
+
|
|
224
|
+
<!--
|
|
225
|
+
Presenter Notes:
|
|
226
|
+
- PACING: Start a 3-minute timer on your watch/phone.
|
|
227
|
+
- CIRCULATE: Walk the room immediately to catch students with setup or typo issues early.
|
|
228
|
+
-->
|
|
229
|
+
|
|
230
|
+
<!-- [CONCEPT_MICRO_CYCLES_END] -->
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
<!-- Slide 9: Integrated Hands-On Lab: Capstone Challenge -->
|
|
235
|
+
## 🛠️ Integrated Hands-On Lab: Capstone Mission
|
|
236
|
+
|
|
237
|
+
### 🎯 Mission Objective:
|
|
238
|
+
{{ADVANCED_LAB_GOAL}}
|
|
239
|
+
|
|
240
|
+
<div class="columns">
|
|
241
|
+
<div>
|
|
242
|
+
|
|
243
|
+
<div class="card">
|
|
244
|
+
|
|
245
|
+
#### 🥉 Bronze Tier (Foundational)
|
|
246
|
+
- {{BRONZE_TASK_1}}
|
|
247
|
+
- {{BRONZE_TASK_2}}
|
|
248
|
+
|
|
249
|
+
</div>
|
|
250
|
+
|
|
251
|
+
<div class="card highlight">
|
|
252
|
+
|
|
253
|
+
#### 🥈 Silver Tier (Standard)
|
|
254
|
+
- {{SILVER_TASK_1}}
|
|
255
|
+
- {{SILVER_TASK_2}}
|
|
256
|
+
|
|
257
|
+
</div>
|
|
258
|
+
|
|
259
|
+
</div>
|
|
260
|
+
<div>
|
|
261
|
+
|
|
262
|
+
<div class="card success">
|
|
263
|
+
|
|
264
|
+
#### 🥇 Gold Tier (Mastery Extension)
|
|
265
|
+
- {{GOLD_TASK_1}}
|
|
266
|
+
- {{GOLD_TASK_2}}
|
|
267
|
+
|
|
268
|
+
</div>
|
|
269
|
+
|
|
270
|
+
<div class="card warning">
|
|
271
|
+
|
|
272
|
+
**🚨 Gotcha Alert:**
|
|
273
|
+
{{LAB_GOTCHA_WARNING}}
|
|
274
|
+
|
|
275
|
+
</div>
|
|
276
|
+
|
|
277
|
+
</div>
|
|
278
|
+
</div>
|
|
279
|
+
|
|
280
|
+
<!--
|
|
281
|
+
Presenter Notes:
|
|
282
|
+
- DIFFERENTIATION: Guide students to start at Bronze. Once Bronze tests pass, immediately challenge Silver.
|
|
283
|
+
- FACILITATION: Pair students up if anyone is stuck on environment issues.
|
|
284
|
+
-->
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
<!-- Slide 10: Formative Checkpoint: Traffic Light Assessment -->
|
|
289
|
+
## 🚦 Formative Checkpoint: Status Calibration
|
|
290
|
+
|
|
291
|
+
<div class="columns">
|
|
292
|
+
<div>
|
|
293
|
+
|
|
294
|
+
<div class="card success">
|
|
295
|
+
|
|
296
|
+
### 🟢 Green Light (Ready to Accelerate)
|
|
297
|
+
- Solved Bronze + Silver successfully.
|
|
298
|
+
- Ready to tackle Gold tier or help peers!
|
|
299
|
+
|
|
300
|
+
</div>
|
|
301
|
+
|
|
302
|
+
<div class="card warning">
|
|
303
|
+
|
|
304
|
+
### 🟡 Yellow Light (Need Quick Assist)
|
|
305
|
+
- Stuck on syntax or compilation error.
|
|
306
|
+
- Check troubleshooting table on board.
|
|
307
|
+
|
|
308
|
+
</div>
|
|
309
|
+
|
|
310
|
+
</div>
|
|
311
|
+
<div>
|
|
312
|
+
|
|
313
|
+
<div class="card" style="border-left: 4px solid #ef4444;">
|
|
314
|
+
|
|
315
|
+
### 🔴 Red Light (Blocked)
|
|
316
|
+
- Core concept unclear.
|
|
317
|
+
- Step back to Slide 6 architecture diagram.
|
|
318
|
+
|
|
319
|
+
</div>
|
|
320
|
+
|
|
321
|
+
<div class="card highlight">
|
|
322
|
+
|
|
323
|
+
**💡 Quick Self-Test Question:**
|
|
324
|
+
{{CHECKPOINT_DIAGNOSTIC_QUESTION}}
|
|
325
|
+
|
|
326
|
+
</div>
|
|
327
|
+
|
|
328
|
+
</div>
|
|
329
|
+
</div>
|
|
330
|
+
|
|
331
|
+
<!--
|
|
332
|
+
Presenter Notes:
|
|
333
|
+
- FORMATION: Ask for hand signals (1 finger = Red, 2 = Yellow, 3 = Green).
|
|
334
|
+
- INTERVENTION: If >30% show Red/Yellow, spend 2 minutes addressing the single biggest sticking point on the whiteboard.
|
|
335
|
+
-->
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
<!-- Slide 11: Exit Ticket & Metacognitive Reflection -->
|
|
340
|
+
## 🎟️ Exit Ticket & Metacognition (5 Mins)
|
|
341
|
+
|
|
342
|
+
1. **Scenario 1 (Application):**
|
|
343
|
+
{{EXIT_Q1}}
|
|
344
|
+
|
|
345
|
+
2. **Scenario 2 (Diagnostic Trap):**
|
|
346
|
+
{{EXIT_Q2}}
|
|
347
|
+
|
|
348
|
+
3. **Metacognitive Self-Check:**
|
|
349
|
+
> *{{EXIT_REFLECTION}}*
|
|
350
|
+
|
|
351
|
+
<!--
|
|
352
|
+
Presenter Notes:
|
|
353
|
+
- ACCOUNTABILITY: Every student must submit their exit answers before leaving.
|
|
354
|
+
- REVIEW: Review submissions to calibrate pacing and review points for the next lesson.
|
|
355
|
+
-->
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
<!-- Slide 12: Summary & Key Takeaways -->
|
|
360
|
+
## 🏁 Summary & Key Takeaways
|
|
361
|
+
|
|
362
|
+
<div class="columns">
|
|
363
|
+
<div>
|
|
364
|
+
|
|
365
|
+
### 🏆 Core Rules to Remember:
|
|
366
|
+
- ✅ **Rule 1:** {{TAKEAWAY_1}}
|
|
367
|
+
- ✅ **Rule 2:** {{TAKEAWAY_2}}
|
|
368
|
+
- ✅ **Rule 3:** {{TAKEAWAY_3}}
|
|
369
|
+
|
|
370
|
+
</div>
|
|
371
|
+
<div>
|
|
372
|
+
|
|
373
|
+
<div class="card highlight">
|
|
374
|
+
|
|
375
|
+
### 🔮 Next Milestone Preview:
|
|
376
|
+
{{NEXT_MILESTONE_PREVIEW}}
|
|
377
|
+
|
|
378
|
+
*Coming up next: {{NEXT_TOPIC_TEASER}}*
|
|
379
|
+
|
|
380
|
+
</div>
|
|
381
|
+
|
|
382
|
+
</div>
|
|
383
|
+
</div>
|
|
384
|
+
|
|
385
|
+
<!--
|
|
386
|
+
Presenter Notes:
|
|
387
|
+
- WRAP-UP: Commend students for their progress and hard work today.
|
|
388
|
+
- CONNECTION: Show how today's foundation directly powers the next exciting milestone.
|
|
389
|
+
-->
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "{{ID}}"
|
|
3
|
+
title: "{{TITLE}}"
|
|
4
|
+
type: "STATION_ROTATION"
|
|
5
|
+
created_by: "Curriculum OS Builder"
|
|
6
|
+
phase: "{{PHASE}}"
|
|
7
|
+
deliverable: "P3-T15"
|
|
8
|
+
version: "{{VERSION}}"
|
|
9
|
+
date: "{{DATE}}"
|
|
10
|
+
template_contract: "artifact-template-v1"
|
|
11
|
+
template_required_sections:
|
|
12
|
+
- "Station Architecture & Timer Overview"
|
|
13
|
+
- "Station 1: Teacher-Led Small Group (Deep Dive)"
|
|
14
|
+
- "Station 2: Collaborative Hands-On Lab (Peer Pair)"
|
|
15
|
+
- "Station 3: Independent Digital Practice (Async Code)"
|
|
16
|
+
- "Station 4: Offline Modeling & Architecture (Whiteboard)"
|
|
17
|
+
- "Station Recording Sheet & Rotation Bell Protocol"
|
|
18
|
+
---
|
|
19
|
+
<!-- INJECT_BODY -->
|
|
20
|
+
|
|
21
|
+
# STATION ROTATION LESSON PACK: [LESSON TITLE]
|
|
22
|
+
_Unit: U[X] | Module: M[X.X] | Format: 4 Stations x 15 Mins (Total 60-75 Mins)_
|
|
23
|
+
|
|
24
|
+
## [REQUIRED] Station Architecture & Timer Overview
|
|
25
|
+
- **Classroom Layout:** 4 designated physical zones with clear signage and materials.
|
|
26
|
+
- **Rotation Time:** 15 minutes per station + 2 minutes clean transition buffer.
|
|
27
|
+
- **Audience Grouping:** Heterogeneous groups of 4-6 students rotating simultaneously.
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
┌──────────────────────────────────────┬──────────────────────────────────────┐
|
|
31
|
+
│ 👨🏫 STATION 1: Teacher-Led (Guided) │ 👥 STATION 2: Pair Lab (Hands-on) │
|
|
32
|
+
│ Target: High-order debugging & SOT │ Target: Collaborative peer challenge │
|
|
33
|
+
├──────────────────────────────────────┼──────────────────────────────────────┤
|
|
34
|
+
│ 💻 STATION 3: Digital Lab (Async) │ 🖊️ STATION 4: Offline / Architecture │
|
|
35
|
+
│ Target: Independent test-driven code │ Target: Diagramming, cards & models │
|
|
36
|
+
└──────────────────────────────────────┴──────────────────────────────────────┘
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## [REQUIRED] Station 1: Teacher-Led Small Group (Guided Inquiry)
|
|
42
|
+
- **Goal:** Direct coaching, conceptual check, and resolving misconceptions in real-time.
|
|
43
|
+
- **Teacher Script & Inquiry Questions:**
|
|
44
|
+
- *"Look at this code on the monitor. If we call this function 100 times concurrently, what invariant breaks?"*
|
|
45
|
+
- *"Why is value semantics safer than reference semantics when passing across concurrency domains?"*
|
|
46
|
+
- **Differentiation Trigger:** If students struggle, demonstrate with physical LEGO / token passing.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## [REQUIRED] Station 2: Collaborative Hands-On Lab (Pair Programming)
|
|
51
|
+
- **Goal:** Students work in pairs (Driver / Navigator) to solve a 2-stage challenge.
|
|
52
|
+
- **Task Materials:** Pre-loaded project on workstation `Station2_PairChallenge.xcodeproj`.
|
|
53
|
+
- **Protocol:** Switch Driver/Navigator roles at the 7-minute audio chime.
|
|
54
|
+
- **Success Milestone:** Pass tests `testStation2Stage1()` and `testStation2Stage2()`.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## [REQUIRED] Station 3: Independent Digital Practice (Self-Paced Code Lab)
|
|
59
|
+
- **Goal:** Autonomy and individual mastery verification.
|
|
60
|
+
- **Student Instructions:**
|
|
61
|
+
1. Open Interactive Code Runner / LMS assignment module.
|
|
62
|
+
2. Complete 5 self-graded micro-challenges (Instant Feedback).
|
|
63
|
+
3. Record completion code into the Station Recording Sheet.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## [REQUIRED] Station 4: Offline Modeling & Architecture (No Screens)
|
|
68
|
+
- **Goal:** Cognitive unloading and physical spatial reasoning.
|
|
69
|
+
- **Materials:** Whiteboard markers, physical Task Cards deck, and laminated architecture templates.
|
|
70
|
+
- **Task:** Hand-draw the data-flow flowchart or match physical cards connecting UI Event $\rightarrow$ State Mutation $\rightarrow$ Screen Re-render.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## [REQUIRED] Station Recording Sheet (Student Passport)
|
|
75
|
+
| Station | Task Completed | Signature / Verification Stamp | 1 Key Insight Learned |
|
|
76
|
+
| :---: | :--- | :--- | :--- |
|
|
77
|
+
| **1 (Teacher)** | Debugging Probe Discussion | [Teacher Stamp] | |
|
|
78
|
+
| **2 (Pair Lab)** | Stage 1 & 2 Test Suite | [Peer Signature] | |
|
|
79
|
+
| **3 (Digital)** | 5 Micro-Challenges Code: `___` | [Auto-Generated Token] | |
|
|
80
|
+
| **4 (Offline)** | Flowchart Diagram Approved | [Mentor Initials] | |
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "{{ID}}"
|
|
3
|
+
title: "{{TITLE}}"
|
|
4
|
+
type: "TASK_CARDS"
|
|
5
|
+
created_by: "Curriculum OS Builder"
|
|
6
|
+
phase: "{{PHASE}}"
|
|
7
|
+
deliverable: "P3-T14"
|
|
8
|
+
version: "{{VERSION}}"
|
|
9
|
+
date: "{{DATE}}"
|
|
10
|
+
template_contract: "artifact-template-v1"
|
|
11
|
+
template_required_sections:
|
|
12
|
+
- "Deck Overview & Print Instructions"
|
|
13
|
+
- "Task Cards 1 to 4 (Foundational Concepts)"
|
|
14
|
+
- "Task Cards 5 to 8 (Code Diagnosis & Debugging)"
|
|
15
|
+
- "Task Cards 9 to 12 (Application & Synthesis)"
|
|
16
|
+
- "Teacher Answer Key & Scoring Matrix"
|
|
17
|
+
---
|
|
18
|
+
<!-- INJECT_BODY -->
|
|
19
|
+
|
|
20
|
+
# PRINTABLE TASK CARDS PACK: [LESSON TITLE]
|
|
21
|
+
_Unit: U[X] | Module: M[X.X] | Total Cards: 12-16 Cards | Usage: Centers, Fast Finishers, Small Group Review_
|
|
22
|
+
|
|
23
|
+
## [REQUIRED] Deck Overview & Print Instructions
|
|
24
|
+
- **Card Format:** 4 cards per page (A4 layout with cutting guidelines and QR code link).
|
|
25
|
+
- **Target Skills:** Conceptual Understanding, Code Tracing, Bug Hunting, Architectural Reasoning.
|
|
26
|
+
- **Scoring System:** Bronze Cards (1 pt), Silver Cards (2 pts), Gold Cards (3 pts).
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## [REQUIRED] Set A: Foundational Concepts (Cards 1–4)
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
┌──────────────────────────────────────────────┬──────────────────────────────────────────────┐
|
|
34
|
+
│ 🃏 CARD 01: Mental Model Anchor [Bronze] │ 🃏 CARD 02: Code Tracing [Bronze]│
|
|
35
|
+
│ │ │
|
|
36
|
+
│ [Question / Prompt Testing Core Principle] │ Given: │
|
|
37
|
+
│ E.g., "Define the difference between @State │ let numbers = [1, 2, 3] │
|
|
38
|
+
│ and @Binding in 1 concise sentence." │ What is the exact value after: │
|
|
39
|
+
│ │ numbers.map { $0 * 2 }.filter { $0 > 3 } │
|
|
40
|
+
│ 💡 Hint: Check Handout Section 1 │ 💡 Hint: Trace element by element │
|
|
41
|
+
├──────────────────────────────────────────────┼──────────────────────────────────────────────┤
|
|
42
|
+
│ 🃏 CARD 03: Syntax Spot Check [Bronze] │ 🃏 CARD 04: Vocabulary Link [Bronze]│
|
|
43
|
+
│ │ │
|
|
44
|
+
│ "Which keyword allows an asynchronous │ "Match the term 'Data Race' to the correct │
|
|
45
|
+
│ function to suspend execution without │ definition (A, B, or C)." │
|
|
46
|
+
│ blocking the underlying thread?" │ │
|
|
47
|
+
│ [A] break [B] await [C] defer [D] sync │ │
|
|
48
|
+
└──────────────────────────────────────────────┴──────────────────────────────────────────────┘
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## [REQUIRED] Set B: Code Diagnosis & Debugging (Cards 5–8)
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
┌──────────────────────────────────────────────┬──────────────────────────────────────────────┐
|
|
57
|
+
│ 🃏 CARD 05: Spot The Compiler Bug [Silver] │ 🃏 CARD 06: Fix The Concurrency Leak [Silver]│
|
|
58
|
+
│ │ │
|
|
59
|
+
│ struct ProfileView: View { │ actor BankAccount { │
|
|
60
|
+
│ var username: String = "Alex" │ var balance = 100 │
|
|
61
|
+
│ var body: some View { │ } │
|
|
62
|
+
│ TextField("Name", text: username) │ // Non-isolated caller │
|
|
63
|
+
│ } │ func printBalance(acc: BankAccount) { │
|
|
64
|
+
│ } │ print(acc.balance) // Error here │
|
|
65
|
+
│ Task: What character is missing on line 4? │ Task: Fix the error on line 6. │
|
|
66
|
+
├──────────────────────────────────────────────┼──────────────────────────────────────────────┤
|
|
67
|
+
│ 🃏 CARD 07: Logic Flaw Detector [Silver] │ 🃏 CARD 08: State Mutation Trap [Silver]│
|
|
68
|
+
│ │ │
|
|
69
|
+
│ [Provide a snippet where condition is always │ [Provide a snippet mutating immutable view │
|
|
70
|
+
│ false due to type mismatch or scope issue] │ properties or escaping closures] │
|
|
71
|
+
│ Task: Rewrite lines 3-4 to correct logic. │ Task: Explain why mutation is rejected. │
|
|
72
|
+
└──────────────────────────────────────────────┴──────────────────────────────────────────────┘
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## [REQUIRED] Set C: Application & Synthesis (Cards 9–12)
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
┌──────────────────────────────────────────────┬──────────────────────────────────────────────┐
|
|
81
|
+
│ 🃏 CARD 09: System Architecture [Gold] │ 🃏 CARD 10: Performance Optimization [Gold]│
|
|
82
|
+
│ │ │
|
|
83
|
+
│ "Design an Actor model for a Chat app with │ "A list with 10,000 items lags when │
|
|
84
|
+
│ 100 simultaneous message streams. Name the │ scrolling. Propose 2 specific optimizations │
|
|
85
|
+
│ 2 core methods and data invariants." │ to achieve 60 FPS." │
|
|
86
|
+
├──────────────────────────────────────────────┼──────────────────────────────────────────────┤
|
|
87
|
+
│ 🃏 CARD 11: Real-World Scenario [Gold] │ 🃏 CARD 12: Challenge & Refactor [Gold]│
|
|
88
|
+
│ │ │
|
|
89
|
+
│ "A user loses internet during payment. How │ [Provide a 10-line messy imperative code] │
|
|
90
|
+
│ does your async pipeline guarantee idempotent│ Task: Refactor into a clean declarative │
|
|
91
|
+
│ transaction recording without duplicate buy?"│ pipeline using modern idioms. │
|
|
92
|
+
└──────────────────────────────────────────────┴──────────────────────────────────────────────┘
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## [REQUIRED] Teacher Answer Key & Scoring Matrix
|
|
98
|
+
| Card ID | Correct Answer / Solution Blueprint | Max Points |
|
|
99
|
+
| :---: | :--- | :---: |
|
|
100
|
+
| **01** | `@State` owns private source of truth; `@Binding` creates a 2-way reference without owning storage. | 1 pt |
|
|
101
|
+
| **02** | `[4, 6]` | 1 pt |
|
|
102
|
+
| **03** | `[B] await` | 1 pt |
|
|
103
|
+
| **04** | Definition B (Two threads accessing same memory with at least one write). | 1 pt |
|
|
104
|
+
| **05** | Missing `$` projection: `$username` | 2 pts |
|
|
105
|
+
| **06** | Must add `await` and mark function `async`: `await acc.balance` | 2 pts |
|
|
106
|
+
| **07** | [Exact refactored lines] | 2 pts |
|
|
107
|
+
| **08** | [Exact explanation of View struct value semantics] | 2 pts |
|
|
108
|
+
| **09** | [Actor blueprint with isolated message queue] | 3 pts |
|
|
109
|
+
| **10** | 1. Use LazyVStack / List view recycling; 2. Pre-fetch images asynchronously. | 3 pts |
|
|
110
|
+
| **11** | [Idempotency token + local cache before network dispatch] | 3 pts |
|
|
111
|
+
| **12** | [Clean idiomatic refactored code] | 3 pts |
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "{{ID}}"
|
|
3
|
+
title: "{{TITLE}}"
|
|
4
|
+
type: "TIERED_PRACTICE"
|
|
5
|
+
created_by: "Curriculum OS Builder"
|
|
6
|
+
phase: "{{PHASE}}"
|
|
7
|
+
deliverable: "P3-T11"
|
|
8
|
+
version: "{{VERSION}}"
|
|
9
|
+
date: "{{DATE}}"
|
|
10
|
+
template_contract: "artifact-template-v1"
|
|
11
|
+
template_required_sections:
|
|
12
|
+
- "Computational Objective & Tier Matrix"
|
|
13
|
+
- "Bronze Tier (Foundational Scaffolding)"
|
|
14
|
+
- "Silver Tier (Independent Application)"
|
|
15
|
+
- "Gold Tier (Enrichment & Optimization)"
|
|
16
|
+
- "Automated Test Verification Matrix"
|
|
17
|
+
- "Answer Key & Mentor Hints"
|
|
18
|
+
---
|
|
19
|
+
<!-- INJECT_BODY -->
|
|
20
|
+
|
|
21
|
+
# 3-TIER DIFFERENTIATED PRACTICE LAB: [LESSON TITLE]
|
|
22
|
+
_Unit: U[X] | Module: M[X.X] | Lesson: Lesson [XX] | Mode: Adaptive Lab_
|
|
23
|
+
|
|
24
|
+
## [REQUIRED] Computational Objective & Tier Matrix
|
|
25
|
+
> *Principle: All students MUST achieve Bronze; Silver is target mastery; Gold is for gifted/accelerated learners.*
|
|
26
|
+
|
|
27
|
+
| Tier Level | Cognitive Target (Bloom) | Scaffolding Ratio | Success Criteria |
|
|
28
|
+
| :--- | :--- | :--- | :--- |
|
|
29
|
+
| 🥉 **Bronze** | Remember / Understand | **70% Starter Code / 30% Fill-in** | Complete basic syntax & pass Baseline Unit Test. |
|
|
30
|
+
| 🥈 **Silver** | Apply / Analyze | **30% Starter Code / 70% Implementation** | Implement business logic, edge-case handling & multi-component binding. |
|
|
31
|
+
| 🥇 **Gold** | Evaluate / Create | **0% Code / Open Architecture** | Optimize performance, refactor with concurrency/state isolation & self-author tests. |
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## [REQUIRED] 🥉 Bronze Tier: Foundational Scaffolding (Baseline for All)
|
|
36
|
+
- **Target Audience:** All learners (mandatory milestone).
|
|
37
|
+
- **Guiding Prompt:** [Clear, unambiguous instruction with concrete references to Handout].
|
|
38
|
+
|
|
39
|
+
### Starter Code & Fill-in Slots:
|
|
40
|
+
```swift
|
|
41
|
+
// Starter Boilerplate provided to students
|
|
42
|
+
import SwiftUI
|
|
43
|
+
|
|
44
|
+
struct [BronzeComponentView]: View {
|
|
45
|
+
// TODO 1 [Bronze]: Declare the missing state variable with appropriate property wrapper
|
|
46
|
+
// [Fill in line here]
|
|
47
|
+
|
|
48
|
+
var body: some View {
|
|
49
|
+
VStack(spacing: 16) {
|
|
50
|
+
Text("[Title Text]")
|
|
51
|
+
.font(.headline)
|
|
52
|
+
|
|
53
|
+
// TODO 2 [Bronze]: Connect state variable to Text/TextField binding
|
|
54
|
+
// [Fill in UI element here]
|
|
55
|
+
}
|
|
56
|
+
.padding()
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
- **Verification Check:** Run test `testBronzeBaseline()` — Expect status `PASS`.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## [REQUIRED] 🥈 Silver Tier: Independent Application (Target Mastery)
|
|
66
|
+
- **Target Audience:** Learners who completed Bronze without mentor intervention.
|
|
67
|
+
- **Guiding Prompt:** [Add dynamic logic, validation, state mutations, or multiple interactive elements].
|
|
68
|
+
|
|
69
|
+
### Specification & Requirements:
|
|
70
|
+
1. **Dynamic Input Validation:** [E.g., Prevent empty submissions; format currency/dates].
|
|
71
|
+
2. **State Transition Logic:** [E.g., Toggle boolean flags, update array state immutably].
|
|
72
|
+
3. **User Feedback:** [E.g., Display contextual error banner if condition fails].
|
|
73
|
+
|
|
74
|
+
### Implementation Target:
|
|
75
|
+
```swift
|
|
76
|
+
struct [SilverComponentView]: View {
|
|
77
|
+
// Write full implementation satisfying the 3 requirements above
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
- **Verification Check:** Run test `testSilverLogicAndValidation()` — Expect status `PASS`.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## [REQUIRED] 🥇 Gold Tier: Enrichment & Optimization (Open Extension)
|
|
86
|
+
- **Target Audience:** Advanced learners finished ahead of schedule.
|
|
87
|
+
- **Architectural Challenge:** [E.g., "Decouple state into an isolated Actor / ViewModel with async/await Debounce or Cache invalidation"].
|
|
88
|
+
|
|
89
|
+
### Constraints & Invariants:
|
|
90
|
+
- ⚡ **Constraint 1:** [E.g., "Must guarantee zero data-race under concurrent mutations"].
|
|
91
|
+
- ⚡ **Constraint 2:** [E.g., "Must implement clean dependency injection without global singletons"].
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## [REQUIRED] Automated Test Verification Matrix & Mentor Hints
|
|
96
|
+
```swift
|
|
97
|
+
// XCTest / Unit Test Suite for Instant Auto-Grading
|
|
98
|
+
final class [ArtifactTestSuite]: XCTestCase {
|
|
99
|
+
func testBronzeBaseline() {
|
|
100
|
+
// Assert Bronze state binding
|
|
101
|
+
}
|
|
102
|
+
func testSilverLogicAndValidation() {
|
|
103
|
+
// Assert Silver business rules
|
|
104
|
+
}
|
|
105
|
+
func testGoldConcurrencySafety() async {
|
|
106
|
+
// Assert Gold invariants
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Mentor Debugging Cheatsheet:
|
|
112
|
+
- **Common Bronze Stumble:** [e.g., Forgetting `$` when binding to TextField].
|
|
113
|
+
- **Common Silver Stumble:** [e.g., Mutating state from non-main thread without MainActor].
|
|
114
|
+
- **Gold Discussion Prompt:** *"How does this implementation scale when 10,000 events fire per second?"*
|