research-copilot 0.2.17 → 0.2.21
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/README.md +7 -1
- package/app/out/main/index.mjs +2842 -188
- package/app/out/preload/index.js +2 -0
- package/app/out/renderer/assets/{MilkdownMarkdownEditor-tTNRIB2K.css → MilkdownMarkdownEditor-BW0Pt28W.css} +103 -15
- package/app/out/renderer/assets/{MilkdownMarkdownEditor-CuTa5j4S.js → MilkdownMarkdownEditor-OhCrq3X0.js} +99 -52
- package/app/out/renderer/assets/{arc-BAWS3N-F.js → arc-DLr0RP8F.js} +1 -1
- package/app/out/renderer/assets/{blockDiagram-c4efeb88-BHadwPqY.js → blockDiagram-c4efeb88-XhKChw2n.js} +8 -8
- package/app/out/renderer/assets/{c4Diagram-c83219d4-B3kOxRad.js → c4Diagram-c83219d4-DDoJmoIQ.js} +3 -3
- package/app/out/renderer/assets/{channel-Bll9CBqI.js → channel-CJCgJSqV.js} +1 -1
- package/app/out/renderer/assets/{classDiagram-beda092f-Dv7owGyx.js → classDiagram-beda092f-CAmimZpz.js} +6 -6
- package/app/out/renderer/assets/{classDiagram-v2-2358418a-cWrqk5tQ.js → classDiagram-v2-2358418a-Bma4E_Eg.js} +10 -10
- package/app/out/renderer/assets/{clone-D-DQ4nnY.js → clone-C338dmoI.js} +1 -1
- package/app/out/renderer/assets/{createText-1719965b-ciE8YuqI.js → createText-1719965b-_up4NJqB.js} +2 -2
- package/app/out/renderer/assets/{edges-96097737-DycnAYk_.js → edges-96097737-Bpp6hVLn.js} +3 -3
- package/app/out/renderer/assets/{erDiagram-0228fc6a-Sv78YNMY.js → erDiagram-0228fc6a-bjTh_7ap.js} +5 -5
- package/app/out/renderer/assets/{flowDb-c6c81e3f-BiOarg9b.js → flowDb-c6c81e3f-BjVV4DVk.js} +1 -1
- package/app/out/renderer/assets/{flowDiagram-50d868cf-19J80nxU.js → flowDiagram-50d868cf-gmeaaZ6z.js} +12 -12
- package/app/out/renderer/assets/{flowDiagram-v2-4f6560a1-c-kGsubV.js → flowDiagram-v2-4f6560a1-nem5zs2M.js} +12 -12
- package/app/out/renderer/assets/{flowchart-elk-definition-6af322e1-DRrYbiSC.js → flowchart-elk-definition-6af322e1-DPaGAYRw.js} +6 -6
- package/app/out/renderer/assets/{ganttDiagram-a2739b55-BadmpvMy.js → ganttDiagram-a2739b55-CnAti19E.js} +3 -3
- package/app/out/renderer/assets/{gitGraphDiagram-82fe8481-BdVoj60Q.js → gitGraphDiagram-82fe8481-DQWHD3SJ.js} +2 -2
- package/app/out/renderer/assets/{graph-jZhookGR.js → graph-DKiKgH8m.js} +1 -1
- package/app/out/renderer/assets/{index-B8fh500_.js → index-4s-c5d65.js} +3 -3
- package/app/out/renderer/assets/{index-5325376f-CbxmatXv.js → index-5325376f-G-0aO-2i.js} +6 -6
- package/app/out/renderer/assets/{index-CAlpJ3-o.js → index-9q_P5ULR.js} +4 -4
- package/app/out/renderer/assets/{index-cavFRVgM.js → index-B1A3JxQj.js} +3 -3
- package/app/out/renderer/assets/{index-B9kkJj3J.js → index-BBUrmGmY.js} +6 -6
- package/app/out/renderer/assets/{index-CMGDsC_t.js → index-BQho5LH-.js} +6 -6
- package/app/out/renderer/assets/{index-CirXkIv2.js → index-BUVlmsgO.js} +3 -3
- package/app/out/renderer/assets/{index-BWCwSkxb.js → index-BzEthrJ4.js} +3 -3
- package/app/out/renderer/assets/{index-B2UUF9y9.js → index-C1YzkB4z.js} +1289 -419
- package/app/out/renderer/assets/{index-D-ZMmLhv.js → index-CGo665vD.js} +3 -3
- package/app/out/renderer/assets/{index-DQwFQR1s.js → index-CPZaxR35.js} +3 -3
- package/app/out/renderer/assets/{index-DOUTte7i.js → index-CSyD1mbL.js} +3 -3
- package/app/out/renderer/assets/{index-BUcSHPha.js → index-Cf7vlFSn.js} +3 -3
- package/app/out/renderer/assets/{index-CZX0435B.js → index-CluH1o2q.js} +6 -6
- package/app/out/renderer/assets/{index-lAZsmnj1.css → index-CogwQwDN.css} +185 -32
- package/app/out/renderer/assets/{index-DEO9Jh2Y.js → index-Cw1n3klA.js} +5 -5
- package/app/out/renderer/assets/{index-BBUnWjLe.js → index-DFzvntIw.js} +3 -3
- package/app/out/renderer/assets/{index-g91Iwgxa.js → index-DHzyAhWM.js} +4 -4
- package/app/out/renderer/assets/{index-47oNNEnx.js → index-DhliHfCM.js} +6 -6
- package/app/out/renderer/assets/{index-DF_C6DjR.js → index-DkVFbCxC.js} +3 -3
- package/app/out/renderer/assets/{index-HCRA2-Q6.js → index-DpZJP5MT.js} +6 -6
- package/app/out/renderer/assets/{index-BXpNbFhG.js → index-Gfd_DiMG.js} +3 -3
- package/app/out/renderer/assets/{index-B110aKST.js → index-jOvNAYyP.js} +3 -3
- package/app/out/renderer/assets/{index-BTE0dEKO.js → index-rrJkk8KV.js} +6 -6
- package/app/out/renderer/assets/{index-DO5LsHlM.js → index-vfSerSmF.js} +1 -1
- package/app/out/renderer/assets/{infoDiagram-8eee0895-DpVt3Scv.js → infoDiagram-8eee0895-BCnBkXXS.js} +2 -2
- package/app/out/renderer/assets/{journeyDiagram-c64418c1-RYKX5mcV.js → journeyDiagram-c64418c1-Bq2wSX3k.js} +4 -4
- package/app/out/renderer/assets/{layout-BsbNXXgR.js → layout-BvkumzoT.js} +2 -2
- package/app/out/renderer/assets/{line-OzQTpJsh.js → line-eU4el-G4.js} +1 -1
- package/app/out/renderer/assets/{linear-DO5pdnqi.js → linear-DlBjMBEa.js} +1 -1
- package/app/out/renderer/assets/{mindmap-definition-8da855dc-D3zWs3h1.js → mindmap-definition-8da855dc-CzLBu7ao.js} +3 -3
- package/app/out/renderer/assets/{pieDiagram-a8764435-DDoNhSgQ.js → pieDiagram-a8764435--olrXFr_.js} +3 -3
- package/app/out/renderer/assets/{quadrantDiagram-1e28029f-ZO85SsRM.js → quadrantDiagram-1e28029f-BnpnBBgc.js} +3 -3
- package/app/out/renderer/assets/{requirementDiagram-08caed73-C-vKE6g8.js → requirementDiagram-08caed73-6O9WS7hn.js} +5 -5
- package/app/out/renderer/assets/{sankeyDiagram-a04cb91d-Cbqb2K-X.js → sankeyDiagram-a04cb91d-D-iJnK91.js} +2 -2
- package/app/out/renderer/assets/{sequenceDiagram-c5b8d532-BK4uvpEA.js → sequenceDiagram-c5b8d532-DBlK15cV.js} +3 -3
- package/app/out/renderer/assets/{stateDiagram-1ecb1508-DXa_YqNi.js → stateDiagram-1ecb1508-DKXKPYuk.js} +6 -6
- package/app/out/renderer/assets/{stateDiagram-v2-c2b004d7-Dm203Z8l.js → stateDiagram-v2-c2b004d7-DY288Eo5.js} +10 -10
- package/app/out/renderer/assets/{styles-b4e223ce-BV4b1eAh.js → styles-b4e223ce-CRJ_xgJ-.js} +1 -1
- package/app/out/renderer/assets/{styles-ca3715f6-CKhYSe7r.js → styles-ca3715f6-Bp_k5KLD.js} +1 -1
- package/app/out/renderer/assets/{styles-d45a18b0-DTCMfE-4.js → styles-d45a18b0-DLA8Gg6D.js} +4 -4
- package/app/out/renderer/assets/{svgDrawCommon-b86b1483-DK4i-dfJ.js → svgDrawCommon-b86b1483-Dm5CK2gQ.js} +1 -1
- package/app/out/renderer/assets/{timeline-definition-faaaa080-CE2LmuDH.js → timeline-definition-faaaa080-D-m9BHUg.js} +3 -3
- package/app/out/renderer/assets/{xychartDiagram-f5964ef8-Bd8KT9X9.js → xychartDiagram-f5964ef8-Drn4Rqev.js} +5 -5
- package/app/out/renderer/index.html +2 -2
- package/lib/skills/builtin/academic-marp-slides/SKILL.md +933 -0
- package/lib/skills/builtin/research-grants/SKILL.md +15 -11
- package/lib/skills/builtin/scholar-evaluation/SKILL.md +12 -11
- package/lib/skills/builtin/scientific-schematics/SKILL.md +463 -560
- package/lib/skills/builtin/teaching-marp-slides/SKILL.md +1218 -0
- package/package.json +1 -1
- package/scripts/audit-diagram-prompts.mjs +67 -0
- package/scripts/test-skill-routing.mjs +238 -0
- package/lib/skills/builtin/marp-slides/SKILL.md +0 -642
- package/lib/skills/builtin/scientific-schematics/references/QUICK_REFERENCE.md +0 -182
- package/lib/skills/builtin/scientific-schematics/references/README.md +0 -292
- package/lib/skills/builtin/scientific-schematics/scripts/__pycache__/generate_schematic.cpython-312.pyc +0 -0
- package/lib/skills/builtin/scientific-schematics/scripts/__pycache__/generate_schematic_ai.cpython-312.pyc +0 -0
- package/lib/skills/builtin/scientific-schematics/scripts/example_usage.sh +0 -85
- package/lib/skills/builtin/scientific-schematics/scripts/generate_schematic.py +0 -141
- package/lib/skills/builtin/scientific-schematics/scripts/generate_schematic_ai.py +0 -910
|
@@ -0,0 +1,1218 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: teaching-marp-slides
|
|
3
|
+
description: "Create or revise lecture/teaching slides in Markdown using Marp for upper-undergraduate and graduate courses across any academic discipline. Use when the user needs classroom lecture slides, course materials, tutorial slides, workshop sessions, or wants to revise existing teaching slides. Enforces Cognitive Load Theory, worked-example effect, scaffolding, and retrieval practice principles. Produces both a lecture version and a handout version. For research/conference talks use `academic-marp-slides`; for written documents use `paper-writing` or `scientific-writing`."
|
|
4
|
+
category: Presentation
|
|
5
|
+
tags: [Marp, Slides, Teaching, Lecture, Course, Pedagogy, Classroom, Tutorial, Workshop, Worked Example, Scaffolding, 教学, 课件, 讲课]
|
|
6
|
+
triggers: [lecture slides, teaching slides, course slides, tutorial slides, classroom presentation, make lecture, teach a class, course materials, workshop slides, revise lecture, improve lecture, 讲课幻灯片, 课件, 教学课件, 授课幻灯片]
|
|
7
|
+
depends: [scientific-visualization, scientific-schematics]
|
|
8
|
+
license: MIT
|
|
9
|
+
metadata:
|
|
10
|
+
skill-author: Dong Dai
|
|
11
|
+
based-on: robonuggets/marp-slides, Sweller Cognitive Load Theory, Alley worked-example effect, Vygotsky scaffolding
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Teaching / Lecture Slides with Marp
|
|
15
|
+
|
|
16
|
+
## Core Principle
|
|
17
|
+
|
|
18
|
+
**Teaching slides are not research slides.** Where research slides argue a single thesis to an expert audience, teaching slides **build understanding** in a learning audience and serve as **reference material** that students re-read while studying.
|
|
19
|
+
|
|
20
|
+
This changes almost every design rule:
|
|
21
|
+
|
|
22
|
+
| | Research slides (`academic-marp-slides`) | Teaching slides (this skill) |
|
|
23
|
+
|---|---|---|
|
|
24
|
+
| Title style | Assertion sentence | Topic label (findable in outline) |
|
|
25
|
+
| Information density | Sparse, image-led | Higher — slides also function as notes |
|
|
26
|
+
| Redundancy | Avoid duplicating speech | **Intentional repetition reinforces memory** |
|
|
27
|
+
| Structure | Single narrative arc | Repeated learning units (intro → example → practice) |
|
|
28
|
+
| One idea per slide | Strict | Relaxed when comparison/context requires it |
|
|
29
|
+
| Slides the student reads later | No | **Yes — must stand alone** |
|
|
30
|
+
|
|
31
|
+
### The four theoretical anchors
|
|
32
|
+
|
|
33
|
+
1. **Cognitive Load Theory (Sweller)**: Distinguish intrinsic load (concept difficulty), extraneous load (bad design), and germane load (productive struggle). Minimize extraneous, preserve germane.
|
|
34
|
+
2. **Worked Example Effect**: Learners benefit more from complete worked examples than from pure problem-solving practice, especially when a concept is new. Every new concept needs an accompanying worked example.
|
|
35
|
+
3. **Scaffolding (Vygotsky)**: Bridge known → unknown. New concepts require a prerequisite-recall step before introduction.
|
|
36
|
+
4. **Retrieval Practice & Spacing Effect**: Long-term retention requires active recall. Every lecture needs review + preview moments.
|
|
37
|
+
|
|
38
|
+
> **Note on rehearsal**: The user handles delivery rehearsal themselves after receiving the draft. This skill stops at a polished draft and does not prescribe dry-teach steps. The user will test the lecture and return with revisions (Revise Mode).
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Target Audience Assumption
|
|
43
|
+
|
|
44
|
+
This skill is tuned for **upper-undergraduate and graduate-level** instruction. That means:
|
|
45
|
+
|
|
46
|
+
- Students can handle moderate notation and specialized terminology once defined
|
|
47
|
+
- Scaffolding bridges a few concepts at a time, not every basic term
|
|
48
|
+
- Worked examples can assume familiarity with prerequisite material
|
|
49
|
+
- Advanced asides (marked with `★ Advanced`) are appropriate when the cohort is mixed or when extending the core path for stronger students
|
|
50
|
+
|
|
51
|
+
For intro-level or non-specialist audiences, the skill is still usable but you'll want to expand prerequisite-recall sections and keep worked examples closer to first principles.
|
|
52
|
+
|
|
53
|
+
**The skill is domain-neutral.** Templates use placeholders that adapt to whatever subject matter the user brings — equations for a math course, diagrams for a biology course, derivations for a physics course, case analyses for a humanities course, and so on. Fill these placeholders from the user's domain context in conversation, not from pre-encoded subject knowledge.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## When to Use This Skill
|
|
58
|
+
|
|
59
|
+
- Classroom lectures (50 / 75 / 90 minutes)
|
|
60
|
+
- Recorded lectures and flipped-classroom materials
|
|
61
|
+
- Graduate seminars, recitations, discussion sections
|
|
62
|
+
- Tutorials, hands-on workshops, technical training sessions
|
|
63
|
+
- **Revising** an existing Marp lecture deck
|
|
64
|
+
|
|
65
|
+
### When NOT to Use
|
|
66
|
+
|
|
67
|
+
| Need | Use Instead |
|
|
68
|
+
|------|-------------|
|
|
69
|
+
| Research / conference talk | `academic-marp-slides` |
|
|
70
|
+
| Written paper, textbook chapter, full lecture notes document | `paper-writing` or `scientific-writing` |
|
|
71
|
+
| Standalone data figure | `scientific-visualization`, `matplotlib`, or `seaborn` |
|
|
72
|
+
| Conceptual diagram only | `scientific-schematics` |
|
|
73
|
+
| Reference documentation / how-to guide | Write Markdown directly |
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Phase 0: Mode Detection (Do This First)
|
|
78
|
+
|
|
79
|
+
### Signals for **Revise Mode**
|
|
80
|
+
- User attached or referenced an existing `.md` lecture file
|
|
81
|
+
- User says "fix/update/add to [existing lecture]"
|
|
82
|
+
- Source Markdown already in conversation
|
|
83
|
+
|
|
84
|
+
### Signals for **Create Mode**
|
|
85
|
+
- User describes a topic to teach but no existing deck
|
|
86
|
+
- "Make lecture slides for [topic]"
|
|
87
|
+
- No Marp source yet
|
|
88
|
+
|
|
89
|
+
When ambiguous, ask:
|
|
90
|
+
> "Are we starting fresh or revising an existing lecture? If existing, please share the .md source."
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Context Gate (Required Before Create Mode)
|
|
95
|
+
|
|
96
|
+
**Good lectures do not start from scratch — they build on existing course context.** Before entering Phase 1, run the context sweep below and summarize what you found (and what you could not find) to the user.
|
|
97
|
+
|
|
98
|
+
Unlike research decks, teaching materials usually live as **plain files in the user's workspace** — syllabus PDFs, textbook scans, prior `.pptx`/`.pdf`/`.md` lectures, problem-set folders — not inside `.research-pilot/`. So the sweep leads with the workspace itself, and the user typically knows the file paths.
|
|
99
|
+
|
|
100
|
+
The sweep has three tiers. **Do all of tier 1 always; do tier 2 whenever it is cheap and plausibly relevant; only do tier 3 if tier 1+2 left real gaps.** Report at each tier — do not silently skip.
|
|
101
|
+
|
|
102
|
+
### Tier 1 — Local context (always do, zero cost)
|
|
103
|
+
|
|
104
|
+
1. **Ask the user up front what they have, and do a quick `ls` to verify.** Most of the time the instructor will say "the syllabus is at `./courses/CS101/syllabus.pdf`" or "last year's lectures are in `./lectures/`". If they haven't pointed at a path, run a one-shot workspace scan to surface candidates — for example:
|
|
105
|
+
```bash
|
|
106
|
+
ls -la
|
|
107
|
+
find . -maxdepth 3 -type f \( -iname "*syllabus*" -o -iname "*lecture*" -o -iname "*lec[0-9]*" -o -iname "*slides*" -o -iname "*unit*" -o -iname "*chapter*" -o -iname "*problem*" -o -iname "*hw*" -o -iname "*ps[0-9]*" \) -not -path "*/node_modules/*" -not -path "*/.git/*" | head -40
|
|
108
|
+
```
|
|
109
|
+
Don't open every hit — list them to the user briefly and let them pick the relevant ones. Then `convert-document` any PDFs/DOCX the user confirms, and read Markdown/text directly.
|
|
110
|
+
2. **Prior lectures under research-pilot tool-output** — check `.research-pilot/artifacts/tool-output/slides/` for any lectures in the same course generated in earlier sessions. Match terminology, notation, formatting.
|
|
111
|
+
3. **Structured memory** — read `.research-pilot/memory/MEMORY.md` (the index) for long-lived facts about this course: standard notation, the instructor's preferred analogies, cohort quirks, past student misconceptions they want called out every term. Open any memory file whose description looks relevant.
|
|
112
|
+
4. **Artifacts** — call `artifact-search` scoped to `notes` and `papers` with keywords from the lecture topic (course code, unit name, last lecture title). Hits here are typically TA notes, reading summaries, or pedagogical references the user saved.
|
|
113
|
+
5. **Papers wiki (RFC-005)** — usually less central for teaching, but worth a `wiki_search` if the lecture is research-adjacent (e.g., a graduate seminar on recent papers). If `wiki_search` returns nothing or "Wiki not available", skip.
|
|
114
|
+
|
|
115
|
+
### Tier 2 — User confirmation + light expansion (do when gaps remain)
|
|
116
|
+
|
|
117
|
+
**Ask the user once, in a batched message**, whether any of these additional inputs exist that didn't show up in the `ls`:
|
|
118
|
+
- **Course syllabus** (scope, where this lecture fits)
|
|
119
|
+
- **Prior lectures from this course** (what students have already seen; established terminology and notation)
|
|
120
|
+
- **Textbook or required readings** (so you can reference, not duplicate)
|
|
121
|
+
- **Past versions of this lecture** (instructor's earlier slides, if teaching the course before)
|
|
122
|
+
- **Problem sets or exams** (so Check-for-understanding slides can preview assessment style)
|
|
123
|
+
|
|
124
|
+
**Plus, do a quick literature scan** only in specific cases:
|
|
125
|
+
- Graduate seminar / research-adjacent lecture where the field has moved since the textbook was written → `literature-search` for the last 1–2 years of relevant work.
|
|
126
|
+
- A worked example will rest on a recent result the user didn't provide.
|
|
127
|
+
- Otherwise skip — for a standard course lecture the textbook + syllabus are enough.
|
|
128
|
+
|
|
129
|
+
### Tier 3 — Online fallback (do only if needed for a specific gap)
|
|
130
|
+
|
|
131
|
+
Use only when a specific, load-bearing gap remains:
|
|
132
|
+
- `web_search` for authoritative definitions, up-to-date convention changes (e.g., a terminology update in a standards body), or a concrete example to replace one you can't generate.
|
|
133
|
+
- `web_fetch` on a URL the user named.
|
|
134
|
+
|
|
135
|
+
Do not use tier 3 to generate the body of the lecture — that's the instructor's subject-matter call, not yours.
|
|
136
|
+
|
|
137
|
+
### After the sweep — report and decide
|
|
138
|
+
|
|
139
|
+
Write one short paragraph to the user:
|
|
140
|
+
- **What I found:** [files from `ls` / prior lectures / memory hits / artifact hits / literature hits]
|
|
141
|
+
- **What I still need:** [specific gaps — e.g., "no problem-set PDF found, so check-for-understanding slides will guess at assessment style unless you share one"]
|
|
142
|
+
- **Proposed action:** either (a) proceed to Phase 1 now, or (b) pause while the user supplies one or two missing pieces
|
|
143
|
+
|
|
144
|
+
If the sweep turns up nothing substantive and the user has nothing more to share, proceed — but flag it explicitly:
|
|
145
|
+
> "No course context found locally and nothing to pull from — I'll generate from scratch. Output may duplicate material students already have or miss things they already know. Consider sharing the syllabus, a prior lecture, or the textbook section if possible."
|
|
146
|
+
|
|
147
|
+
## Working Posture (Applies to All Phases)
|
|
148
|
+
|
|
149
|
+
Work like a junior teaching assistant briefing the lead instructor — not like a machine executing a template.
|
|
150
|
+
|
|
151
|
+
- **Surface assumptions before acting.** If you're inferring something the user didn't say (e.g., "I assume students have already seen [prerequisite concept] from Unit 3"), state it.
|
|
152
|
+
- **Name decisions and their rationale.** When choosing a worked example, say why that specific example and what alternatives you considered.
|
|
153
|
+
- **Flag unknowns.** If a worked example needs a figure or data you don't have, mark it with a clear placeholder and ask.
|
|
154
|
+
- **Less is more.** Teaching slides are denser than research slides, but that's no license for filler. Every definition, step, example, and common-mistake entry must teach something specific. See Step 4.7 for the anti-slop rules.
|
|
155
|
+
|
|
156
|
+
These apply at every STOP AND CONFIRM gate.
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Consolidated Intake (Ask Everything Up Front, in One Batch)
|
|
161
|
+
|
|
162
|
+
Rather than asking questions one at a time and ping-ponging, ask for everything needed in a single structured request. If the user has already answered some of these in earlier messages, or the Context Gate surfaced them from artifacts, fill those in and only ask the remainder.
|
|
163
|
+
|
|
164
|
+
**Required before moving on:**
|
|
165
|
+
|
|
166
|
+
1. **Topic** — what specifically is this lecture about (be precise, not "machine learning" but "backpropagation through a single hidden layer")
|
|
167
|
+
2. **Level** — upper-undergraduate / graduate / mixed / professional audience
|
|
168
|
+
3. **Lecture length** — 50 min / 75 min / 90 min / 2–3 hour tutorial
|
|
169
|
+
4. **Prerequisites you can assume** — concrete list of prior courses, topics, notation students have already seen
|
|
170
|
+
5. **Format** — large lecture / small seminar / flipped / interactive with exercises
|
|
171
|
+
6. **Handout policy** — slides before, after, or during class?
|
|
172
|
+
7. **Context material available** — syllabus, prior lectures, textbook (tie to Context Gate above)
|
|
173
|
+
8. **Hard constraints** — mandatory content (university-required topics, accreditation standards), anything promised to students last class
|
|
174
|
+
|
|
175
|
+
Batch these as one message. Do not begin drafting learning objectives until at least items 1, 2, 3, and 4 are answered.
|
|
176
|
+
|
|
177
|
+
If the cohort is **mixed** (common in courses cross-listed between undergrad and grad):
|
|
178
|
+
- Write for the **mid-to-lower** of the range
|
|
179
|
+
- Mark deeper content with `<!-- _class: advanced -->` so it reads as optional
|
|
180
|
+
- Include prerequisite-recall slides even for "obvious" foundations
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
# CREATE MODE
|
|
185
|
+
|
|
186
|
+
Six phases. Confirmation gates at Phase 1, 3, 4, and 5. **Do not skip gates. Do not proceed without explicit user approval.**
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
Phase 1: Learning Objectives ──► Bloom-tagged outcome list (15%)
|
|
190
|
+
Phase 2: Prerequisite & Gap Analysis ──► Known vs new map (10%)
|
|
191
|
+
Phase 3: Lesson Arc ──► Structured slide outline (15%)
|
|
192
|
+
Phase 4: Content + Worked Examples ──► Fill in all slides (35%)
|
|
193
|
+
Phase 5: Engagement Checks ──► Insert checkpoints (10%)
|
|
194
|
+
Phase 6: Polish + Dual Export ──► Visual + lecture/handout (15%)
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## Phase 1: Learning Objectives
|
|
198
|
+
|
|
199
|
+
**Goal**: Define what students should be able to *do* after the lecture, not just what "topics are covered."
|
|
200
|
+
|
|
201
|
+
Use **Bloom's taxonomy** to force specificity. Every objective starts with a verb at a chosen cognitive level:
|
|
202
|
+
|
|
203
|
+
| Bloom level | Example verbs | Example objective shape |
|
|
204
|
+
|-------------|--------------|-------------------------|
|
|
205
|
+
| **Remember** | define, list, identify, recall | "List the key assumptions of [framework]" |
|
|
206
|
+
| **Understand** | explain, describe, summarize, interpret | "Explain why [phenomenon] occurs" |
|
|
207
|
+
| **Apply** | implement, use, solve, compute | "Apply [method] to a new problem instance" |
|
|
208
|
+
| **Analyze** | compare, distinguish, diagnose | "Diagnose the failure mode of [approach] in scenario X" |
|
|
209
|
+
| **Evaluate** | critique, justify, choose | "Justify the choice of [approach A vs B] for [context]" |
|
|
210
|
+
| **Create** | design, construct, propose | "Design an experiment to test [hypothesis]" |
|
|
211
|
+
|
|
212
|
+
### Rules for objectives
|
|
213
|
+
|
|
214
|
+
- **3–6 objectives per 50-minute lecture**. More than 6 → split into two lectures.
|
|
215
|
+
- **Every objective must be assessable.** "Understand X" is not assessable by itself; "Explain why X fails when assumption Y is violated" is.
|
|
216
|
+
- **Each objective maps to ≥ 1 slide and ideally a worked example or check.**
|
|
217
|
+
- For **graduate-level** lectures, aim higher in Bloom's taxonomy (Analyze/Evaluate/Create); for **upper-undergraduate**, a mix of Apply and Analyze is typical.
|
|
218
|
+
|
|
219
|
+
### ★ STOP AND CONFIRM ★
|
|
220
|
+
|
|
221
|
+
Present the learning objectives to the user as a junior-to-instructor briefing:
|
|
222
|
+
|
|
223
|
+
**Proposal:**
|
|
224
|
+
- 3–6 objectives, each Bloom-tagged
|
|
225
|
+
|
|
226
|
+
**Assumptions I made (tell me if any are wrong):**
|
|
227
|
+
- [e.g., "I assumed the lecture is the first time students see [concept], not a review."]
|
|
228
|
+
- [e.g., "I assumed 'Apply' level is appropriate here rather than 'Analyze' — confirm based on the cohort."]
|
|
229
|
+
|
|
230
|
+
**Open questions:**
|
|
231
|
+
- [e.g., "Unsure whether objective 4 is a stretch goal or core — should I plan for it to be cuttable?"]
|
|
232
|
+
|
|
233
|
+
Also ask:
|
|
234
|
+
- Are these the right outcomes for this lecture?
|
|
235
|
+
- Is the level appropriate for the cohort?
|
|
236
|
+
- Anything missing? Anything too ambitious for one lecture?
|
|
237
|
+
|
|
238
|
+
Do not proceed without approval.
|
|
239
|
+
|
|
240
|
+
**Persist the approved objectives.** After approval, call `artifact-create` with `type='note'` and a title like `Lecture plan — <course code> <lecture N>: <topic>`, storing the objectives, the Bloom tags, and any instructor-provided constraints. This gives a resumable checkpoint and makes the plan searchable for revisions or reuse in future terms.
|
|
241
|
+
|
|
242
|
+
### Phase 1 Checklist
|
|
243
|
+
|
|
244
|
+
- [ ] Context Gate completed (workspace searched; course material confirmed or absence flagged)
|
|
245
|
+
- [ ] Consolidated intake completed
|
|
246
|
+
- [ ] 3–6 objectives, each Bloom-tagged
|
|
247
|
+
- [ ] Every objective starts with an action verb
|
|
248
|
+
- [ ] Every objective is assessable
|
|
249
|
+
- [ ] User has approved the objectives
|
|
250
|
+
- [ ] Approved objectives persisted as a note artifact
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## Phase 2: Prerequisite & Gap Analysis
|
|
255
|
+
|
|
256
|
+
**Goal**: Map what students already know against what they need to know, and identify the gap to scaffold.
|
|
257
|
+
|
|
258
|
+
### Step 2.1 — List prerequisites for each objective
|
|
259
|
+
|
|
260
|
+
For each learning objective, list the knowledge, skills, and mental models required. Be specific.
|
|
261
|
+
|
|
262
|
+
Template:
|
|
263
|
+
```
|
|
264
|
+
Objective: [action verb] [content]
|
|
265
|
+
Prerequisites:
|
|
266
|
+
- [concept from prior course / earlier in this course]
|
|
267
|
+
- [skill they should have already practiced]
|
|
268
|
+
- [notation / terminology they've seen]
|
|
269
|
+
Gaps (new material to introduce today):
|
|
270
|
+
- [definition / framework / technique]
|
|
271
|
+
- [relationship to prerequisite concepts]
|
|
272
|
+
- [common pitfalls in this new area]
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### Step 2.2 — Plan scaffolding moves
|
|
276
|
+
|
|
277
|
+
For each identified gap, plan how to bridge it:
|
|
278
|
+
|
|
279
|
+
| Gap type | Scaffold move |
|
|
280
|
+
|---------|--------------|
|
|
281
|
+
| Forgotten prerequisite | Short recall slide at start of lecture |
|
|
282
|
+
| Subtle misconception likely | Explicit "common mistake" slide |
|
|
283
|
+
| Conceptually abstract | Start with concrete example, then generalize |
|
|
284
|
+
| Notation-heavy | Introduce one piece of notation at a time, anchor in an example |
|
|
285
|
+
| Multi-step procedure | Break into numbered steps on separate slides |
|
|
286
|
+
| Requires prior-course material | Link back explicitly: "recall from [course X] that…" |
|
|
287
|
+
|
|
288
|
+
### Step 2.3 — Flag advanced asides
|
|
289
|
+
|
|
290
|
+
For mixed cohorts or when extending beyond core requirements:
|
|
291
|
+
- Mark slides with `<!-- _class: advanced -->` (styling defined in Phase 6)
|
|
292
|
+
- Or add a small "★ Advanced" badge in the slide content
|
|
293
|
+
|
|
294
|
+
No confirmation gate here — this is internal planning. Move to Phase 3.
|
|
295
|
+
|
|
296
|
+
### Phase 2 Checklist
|
|
297
|
+
|
|
298
|
+
- [ ] Prerequisites listed for each objective
|
|
299
|
+
- [ ] Gaps identified
|
|
300
|
+
- [ ] Scaffolding strategy chosen for each gap
|
|
301
|
+
- [ ] Advanced asides flagged (if mixed cohort)
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## Phase 3: Lesson Arc
|
|
306
|
+
|
|
307
|
+
**Goal**: Structure the lecture as a sequence of learning units, not a flat slide list.
|
|
308
|
+
|
|
309
|
+
### The canonical lecture arc
|
|
310
|
+
|
|
311
|
+
A 50-minute lecture typically has this shape. Use it unless there's good reason not to:
|
|
312
|
+
|
|
313
|
+
```
|
|
314
|
+
┌──────────────────────────────────────────────┐
|
|
315
|
+
│ 1. Review previous lecture (2–3 min) │ retrieval practice
|
|
316
|
+
│ 2. Today's objectives (1 min) │ set expectations
|
|
317
|
+
│ 3. Motivation / hook (2–3 min) │ why care?
|
|
318
|
+
│ 4. Prerequisite recall (2–5 min) │ scaffolding
|
|
319
|
+
├──────────────────────────────────────────────┤
|
|
320
|
+
│ UNIT A │
|
|
321
|
+
│ 5. Concept introduction (5 min) │ definition + intuition
|
|
322
|
+
│ 6. Worked example (5–8 min) │ full solution shown
|
|
323
|
+
│ 7. Check for understanding (2 min) │ student attempt
|
|
324
|
+
│ 8. Common mistakes (2 min) │ misconception page
|
|
325
|
+
├──────────────────────────────────────────────┤
|
|
326
|
+
│ UNIT B (repeat pattern) │
|
|
327
|
+
├──────────────────────────────────────────────┤
|
|
328
|
+
│ Synthesis / how units relate (2 min) │
|
|
329
|
+
│ Summary + key takeaways (2 min) │ consolidation
|
|
330
|
+
│ Preview of next lecture (1 min) │ spacing effect
|
|
331
|
+
│ Reading / assignments (1 min) │
|
|
332
|
+
└──────────────────────────────────────────────┘
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Unit granularity
|
|
336
|
+
|
|
337
|
+
A "unit" is one learning objective worth of material. For a 50-min lecture with 4 objectives, expect 4 units of 8–12 min each.
|
|
338
|
+
|
|
339
|
+
### Slide budget per element
|
|
340
|
+
|
|
341
|
+
For a **50-min lecture** (~25–35 slides total):
|
|
342
|
+
|
|
343
|
+
| Element | Typical slides |
|
|
344
|
+
|---------|---------------|
|
|
345
|
+
| Title | 1 |
|
|
346
|
+
| Review previous lecture | 1–2 |
|
|
347
|
+
| Today's objectives | 1 |
|
|
348
|
+
| Motivation | 1–2 |
|
|
349
|
+
| Prerequisite recall | 1–3 |
|
|
350
|
+
| Concept introduction (per unit) | 2–3 |
|
|
351
|
+
| Worked example (per unit) | 3–5 |
|
|
352
|
+
| Check for understanding (per unit) | 1 |
|
|
353
|
+
| Common mistakes (per unit) | 1 |
|
|
354
|
+
| Summary + preview | 2 |
|
|
355
|
+
| Total | 25–35 |
|
|
356
|
+
|
|
357
|
+
For a **75-min** lecture, scale to ~35–50 slides. For **90-min**, ~45–60.
|
|
358
|
+
|
|
359
|
+
### Propose 2–3 pacing options (let the user pick)
|
|
360
|
+
|
|
361
|
+
The canonical arc is the default, but how you distribute time across units depends on what the instructor wants to emphasize. Before committing to a single arc, propose 2–3 pacing variants and let the user pick:
|
|
362
|
+
|
|
363
|
+
| Pacing | Emphasis | Trade-off |
|
|
364
|
+
|--------|----------|-----------|
|
|
365
|
+
| **Concept-heavy** | More time on definitions, intuition, and prerequisite recall; worked examples kept tight | Students leave with strong conceptual grasp but less procedural fluency |
|
|
366
|
+
| **Example-driven** | Minimal conceptual overhead, most time in worked examples and variants | Students can apply the method but may shakily justify it |
|
|
367
|
+
| **Balanced** | Canonical 50/50 split between concept and example per unit | Safe default; no particular strength |
|
|
368
|
+
| **Practice-heavy** | Short concept + short example + long active practice | Best when students already have partial exposure to the material |
|
|
369
|
+
|
|
370
|
+
Present 2–3 candidates that plausibly fit the topic, along with a one-line trade-off for each, and wait for the user's pick before drafting the full slide outline.
|
|
371
|
+
|
|
372
|
+
### ★ STOP AND CONFIRM ★
|
|
373
|
+
|
|
374
|
+
Present the outlined lesson arc as a junior-to-instructor briefing:
|
|
375
|
+
|
|
376
|
+
**Proposal:**
|
|
377
|
+
- Chosen pacing (from the options above)
|
|
378
|
+
- Units with time allocations
|
|
379
|
+
- Slide-by-slide outline with titles
|
|
380
|
+
|
|
381
|
+
**Assumptions I made:**
|
|
382
|
+
- [e.g., "I put the harder worked example in Unit B because students will be fresher after the Unit A break; move it if you'd rather front-load."]
|
|
383
|
+
|
|
384
|
+
**Open questions:**
|
|
385
|
+
- [e.g., "Unit C has three potential worked examples — which one is most representative of what appears on the midterm?"]
|
|
386
|
+
|
|
387
|
+
Also ask:
|
|
388
|
+
- Does this pacing fit the class period?
|
|
389
|
+
- Are the units the right granularity?
|
|
390
|
+
- Is anything missing (a topic, a worked example, a review moment)?
|
|
391
|
+
|
|
392
|
+
Wait for approval before Phase 4.
|
|
393
|
+
|
|
394
|
+
### Phase 3 Checklist
|
|
395
|
+
|
|
396
|
+
- [ ] Lecture arc mapped (review → motivate → units → synthesize → preview)
|
|
397
|
+
- [ ] Each learning objective corresponds to a unit
|
|
398
|
+
- [ ] Worked examples planned for each unit
|
|
399
|
+
- [ ] Check-for-understanding slides planned
|
|
400
|
+
- [ ] Total slide count matches lecture length
|
|
401
|
+
- [ ] User has approved the arc
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
## Phase 4: Content + Worked Examples
|
|
406
|
+
|
|
407
|
+
**Goal**: Fill in every slide with appropriate content, with special care for worked examples.
|
|
408
|
+
|
|
409
|
+
**Tools allowed**: Write content, embed figures, equations, tables, diagrams, and any subject-appropriate representation. **Visual polish comes later.**
|
|
410
|
+
|
|
411
|
+
### Step 4.0 — Decide output location
|
|
412
|
+
|
|
413
|
+
Write the Marp source to `<workspace>/.research-pilot/artifacts/tool-output/slides/<course-code>-lecture-<N>.md` (create the `slides/` subfolder if missing). Keeping all course lectures under the same path makes `artifact-search` and cross-lecture reuse straightforward.
|
|
414
|
+
|
|
415
|
+
If the user specifies a different path, honor it — but mention this convention so they know where future lectures will land by default. Export-time handout file will sit next to it as `<course-code>-lecture-<N>_handout.md`.
|
|
416
|
+
|
|
417
|
+
### Step 4.1 — Use topic-label titles (NOT assertions)
|
|
418
|
+
|
|
419
|
+
Unlike research slides, teaching slide titles should be **topic labels that work as an outline**:
|
|
420
|
+
|
|
421
|
+
```markdown
|
|
422
|
+
# [Topic name]: [subtopic]
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
Not:
|
|
426
|
+
```markdown
|
|
427
|
+
# [Complete sentence stating a result about the topic]
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
**Why**: Students use titles as navigation when reviewing. Topic labels are findable in a table of contents; assertion sentences are not. A student skimming notes a week later needs "Topic X: [specific subtopic]" rather than a full declarative statement.
|
|
431
|
+
|
|
432
|
+
**Exception**: end-of-unit takeaway slides **can** use an assertion-style title to consolidate.
|
|
433
|
+
|
|
434
|
+
### Step 4.2 — Concept introduction slide pattern
|
|
435
|
+
|
|
436
|
+
For each new concept:
|
|
437
|
+
|
|
438
|
+
```markdown
|
|
439
|
+
# [Concept name]
|
|
440
|
+
|
|
441
|
+
**Definition**
|
|
442
|
+
A *[concept]* is [precise one-sentence definition].
|
|
443
|
+
|
|
444
|
+
**Intuition**
|
|
445
|
+
[One analogy or informal explanation, 1–2 sentences. Connect to something the audience already understands.]
|
|
446
|
+
|
|
447
|
+
**When it matters**
|
|
448
|
+
[Concrete setting where this concept is essential — makes it memorable and anchors future recall.]
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
### Step 4.3 — Worked example pattern (the most important pattern in teaching)
|
|
452
|
+
|
|
453
|
+
A good worked example has **five components**, shown either across sequential slides or with progressive reveal on one slide:
|
|
454
|
+
|
|
455
|
+
```
|
|
456
|
+
1. Problem statement → What exactly is given, what is to be found or shown?
|
|
457
|
+
2. Approach / key idea → What's the insight that makes this tractable?
|
|
458
|
+
3. Step-by-step solution → Show the full work, not just the answer
|
|
459
|
+
4. Final answer → Concrete, checkable result
|
|
460
|
+
5. Reflection / why it works → Connect back to the concept; note assumptions and generalizations
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
**Generic template — fill placeholders from the user's subject matter:**
|
|
464
|
+
|
|
465
|
+
```markdown
|
|
466
|
+
# Worked example: [problem name]
|
|
467
|
+
|
|
468
|
+
### Problem
|
|
469
|
+
[State precisely what is given and what is to be found or shown.]
|
|
470
|
+
|
|
471
|
+
### Approach
|
|
472
|
+
[The key insight or technique — one or two sentences. Naming the approach before doing the work is crucial: it's what students most need to extract and transfer.]
|
|
473
|
+
|
|
474
|
+
### Step-by-step
|
|
475
|
+
1. [First step with justification]
|
|
476
|
+
2. [Second step with justification]
|
|
477
|
+
3. [... continue, splitting across slides if long]
|
|
478
|
+
4. [Final step producing the answer]
|
|
479
|
+
|
|
480
|
+
### Answer
|
|
481
|
+
**[Final result, clearly marked.]**
|
|
482
|
+
|
|
483
|
+
### Why this works / when it generalizes
|
|
484
|
+
[Connect back to the concept. Note key assumptions, and indicate when the approach generalizes or fails.]
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
**Key disciplines for worked examples**, regardless of subject:
|
|
488
|
+
|
|
489
|
+
- **Show the approach before the work.** Students who see a full solution without knowing why each step is taken learn less than those who first hear the key insight.
|
|
490
|
+
- **Annotate the critical step.** Use bold, arrows, or callouts on the one step where the key idea actually operates.
|
|
491
|
+
- **Label what would change in the general case.** Helps transfer from the specific instance to the broader class of problems.
|
|
492
|
+
- **Match representation to subject.** Equations for mathematical subjects, diagrams for structural/spatial subjects, case narratives for applied or humanities subjects, data tables for empirical subjects. The five-component structure stays the same.
|
|
493
|
+
|
|
494
|
+
### Step 4.4 — Source figures and demos (use project skills/tools)
|
|
495
|
+
|
|
496
|
+
Teaching decks use more figures and live demos than research decks. Source them in this priority order:
|
|
497
|
+
|
|
498
|
+
1. **Existing course figures** from prior lectures or textbook — simplify for slide use (enlarge labels, trim legends).
|
|
499
|
+
2. **Fresh concept diagrams / schematics** — call the `generate_diagram` tool (loading `scientific-schematics` first for diagram-type-specific prompt guidance). Default output is PNG (best for slide embed); request `format: "svg"` when the instructor wants to hand-edit labels / colors afterwards (a `.png` anchor sibling is saved automatically). Best quality requires `OPENAI_API_KEY`; without the key, SVG falls back to a chat-model-only path with reduced quality, or hand-write inline SVG / use a placeholder.
|
|
500
|
+
3. **Fresh data plots for intuition slides or worked-example setups** — `load_skill('scientific-visualization')` for journal-style multi-panel, or `load_skill('matplotlib')` / `load_skill('seaborn')` for custom/statistical plots. Save outputs to `<workspace>/.research-pilot/artifacts/tool-output/slides/figures/` and embed with relative paths.
|
|
501
|
+
4. **Live-compute demos for class** — the `data-analyze` tool can generate both a plot and the code behind it, useful for demo slides where the instructor wants to show "how we got this number." Embed the plot; paste a trimmed version of the code into a code slide; keep the raw analysis artifact for reference.
|
|
502
|
+
5. **Suggested-readings / references slide** — the `literature-search` tool assembles metadata for a References or Further Reading backup slide in the instructor's preferred citation style.
|
|
503
|
+
6. **Inline SVG / HTML components** — for metric callouts, small comparison visuals, simple bar charts without external dependencies (see templates below).
|
|
504
|
+
|
|
505
|
+
### Step 4.5 — Check-for-understanding slide pattern
|
|
506
|
+
|
|
507
|
+
Insert after each worked example. Three common formats:
|
|
508
|
+
|
|
509
|
+
**Format A — Predict/reason** (good for testing conceptual grasp)
|
|
510
|
+
```markdown
|
|
511
|
+
# Check: predict [quantity / behavior / outcome]
|
|
512
|
+
|
|
513
|
+
Given [setup], what is [quantity of interest]?
|
|
514
|
+
|
|
515
|
+
- A) [option]
|
|
516
|
+
- B) [option]
|
|
517
|
+
- C) [option]
|
|
518
|
+
- D) [option]
|
|
519
|
+
|
|
520
|
+
<!-- Give 30–60 seconds. Answer: [answer]. Common wrong answer: [option + why students pick it]. -->
|
|
521
|
+
```
|
|
522
|
+
|
|
523
|
+
**Format B — Spot the error** (good for testing analytical skills)
|
|
524
|
+
```markdown
|
|
525
|
+
# Check: what's wrong here?
|
|
526
|
+
|
|
527
|
+
[Present a short attempted solution, derivation, or argument with a subtle error embedded.]
|
|
528
|
+
|
|
529
|
+
Where does it fail, and why?
|
|
530
|
+
|
|
531
|
+
<!-- The error is at [location]. Students often miss it because [reason]. Good teachable moment for [concept]. -->
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
**Format C — Apply to a variant** (good at end of a unit)
|
|
535
|
+
```markdown
|
|
536
|
+
# Check: same idea, different problem
|
|
537
|
+
|
|
538
|
+
We just solved [original problem].
|
|
539
|
+
Now: [variant that changes one assumption].
|
|
540
|
+
|
|
541
|
+
How does the solution change?
|
|
542
|
+
|
|
543
|
+
<!-- Useful as think-pair-share for 2 min. Expected answer: [sketch]. -->
|
|
544
|
+
```
|
|
545
|
+
|
|
546
|
+
### Step 4.6 — Common mistakes slide pattern
|
|
547
|
+
|
|
548
|
+
Every major concept deserves a misconception slide. This prevents students from silently carrying wrong models:
|
|
549
|
+
|
|
550
|
+
```markdown
|
|
551
|
+
# Common mistakes with [concept]
|
|
552
|
+
|
|
553
|
+
**❌ "[Plausible but wrong statement students often make]"**
|
|
554
|
+
→ [Why it's wrong, in one sentence. What the correct statement is.]
|
|
555
|
+
|
|
556
|
+
**❌ "[Second misconception — often a confusion with a related concept]"**
|
|
557
|
+
→ [Distinction made explicit.]
|
|
558
|
+
|
|
559
|
+
**❌ "[Third misconception — often an over-generalization]"**
|
|
560
|
+
→ [Scope of validity clarified.]
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
**Where to find the misconceptions**: from previous years teaching the course, from exam errors, from office-hours questions, or from published pedagogical literature. If the user hasn't taught it before, ask them to predict likely misconceptions based on their own learning experience. If artifacts in the workspace contain past TA notes or exam post-mortems (check with `artifact-search`), draw from those.
|
|
564
|
+
|
|
565
|
+
### Step 4.7 — Slide density rules for teaching
|
|
566
|
+
|
|
567
|
+
Teaching slides can be **denser than research slides**, but not unlimited:
|
|
568
|
+
|
|
569
|
+
- Max ~60 words (English) or ~100 characters (CJK) of prose per slide
|
|
570
|
+
- Max ~15 lines of technical content (equations, derivations, code, structured data) per slide — split longer
|
|
571
|
+
- Max ~8 rows in a data or comparison table
|
|
572
|
+
- Body text not below 18pt (0.9em)
|
|
573
|
+
- **Always leave whitespace** — dense ≠ cramped
|
|
574
|
+
- If a slide approaches these limits, consider whether it's really one idea or two
|
|
575
|
+
|
|
576
|
+
### Step 4.8 — Less is more (reject filler content)
|
|
577
|
+
|
|
578
|
+
The "denser than research slides" allowance is often misused. Teaching slides go bad not because they're sparse, but because they're padded with material that looks educational but isn't. Actively reject these filler patterns:
|
|
579
|
+
|
|
580
|
+
- **Stat slop** — numbers, percentages, or metrics dropped onto slides for flavor, without teaching anything
|
|
581
|
+
- **Decorative icons** — icons next to every bullet that carry no semantic meaning
|
|
582
|
+
- **Padding bullets** — expanding 3 real points into 5 to "fill the slide" or "look thorough"
|
|
583
|
+
- **Restated titles** — a bullet or sentence that just paraphrases the topic label
|
|
584
|
+
- **Generic "why this matters"** — vague motivation that could apply to any topic ("This concept is widely used in industry")
|
|
585
|
+
- **Wikipedia-tone background** — dense expository prose summarizing a topic rather than teaching it
|
|
586
|
+
- **Too-clever examples** — examples chosen to impress rather than to scaffold understanding
|
|
587
|
+
- **Over-enumerated taxonomies** — lists of 8+ types/categories where students only need to recognize 2–3
|
|
588
|
+
|
|
589
|
+
If a slide feels thin, fix it by (a) adding a concrete example, (b) adding a common-mistake, or (c) merging with a neighbor — never by inventing filler. One thousand no's for every yes.
|
|
590
|
+
|
|
591
|
+
### Step 4.9 — Include speaker notes for every slide
|
|
592
|
+
|
|
593
|
+
Unlike research slides where notes are optional, teaching slides should have **notes for every slide** because:
|
|
594
|
+
|
|
595
|
+
1. They help the instructor recall timing, emphasis, and anticipated questions
|
|
596
|
+
2. They help co-instructors or TAs teach the same material consistently
|
|
597
|
+
3. They can be rendered in the handout version for students
|
|
598
|
+
|
|
599
|
+
```markdown
|
|
600
|
+
<!--
|
|
601
|
+
Speaker note: Spend ~90 sec on this slide. Walk through [step that's hard]
|
|
602
|
+
by pointing at [visual element]. Expected question: "[common question]" →
|
|
603
|
+
answer: [response]. Tie back to [earlier lecture / concept] if time allows.
|
|
604
|
+
-->
|
|
605
|
+
```
|
|
606
|
+
|
|
607
|
+
### ★ STOP AND CONFIRM ★
|
|
608
|
+
|
|
609
|
+
Show the filled-in deck as a junior-to-instructor briefing:
|
|
610
|
+
|
|
611
|
+
**Deliverable:**
|
|
612
|
+
- Rendered Marp deck with all units filled in, worked examples complete, speaker notes per slide
|
|
613
|
+
|
|
614
|
+
**Assumptions I made:**
|
|
615
|
+
- [e.g., "I chose [specific example] for Unit B because it mirrors problem 3 on last year's midterm; swap if you'd rather not foreshadow."]
|
|
616
|
+
- [e.g., "The common-mistakes slide for Unit A is based on my guess at what would go wrong; please verify against what you've actually seen."]
|
|
617
|
+
|
|
618
|
+
**Open questions:**
|
|
619
|
+
- [e.g., "Worked example in Unit C currently has a placeholder figure — do you want me to sketch a draft or wait for your diagram?"]
|
|
620
|
+
|
|
621
|
+
Also ask the user to:
|
|
622
|
+
- Verify each worked example for correctness (subject-matter expertise is theirs, not yours)
|
|
623
|
+
- Flag slides that are too dense or too sparse
|
|
624
|
+
- Note any missing concept the cohort will need
|
|
625
|
+
- Check the Common Mistakes slides against what they've actually seen students get wrong
|
|
626
|
+
|
|
627
|
+
Wait for approval before Phase 5.
|
|
628
|
+
|
|
629
|
+
### Phase 4 Checklist
|
|
630
|
+
|
|
631
|
+
- [ ] Skeleton + content written under `.research-pilot/artifacts/tool-output/slides/` (or user-specified path)
|
|
632
|
+
- [ ] Every concept slide has definition + intuition + when-it-matters
|
|
633
|
+
- [ ] Every unit has a worked example with all 5 components
|
|
634
|
+
- [ ] Every unit has a check-for-understanding slide
|
|
635
|
+
- [ ] Every unit has a common-mistakes slide
|
|
636
|
+
- [ ] Every slide has speaker notes
|
|
637
|
+
- [ ] All embedded figures resolve (no broken links)
|
|
638
|
+
- [ ] Slide density is within limits
|
|
639
|
+
- [ ] User has approved the content
|
|
640
|
+
|
|
641
|
+
---
|
|
642
|
+
|
|
643
|
+
## Phase 5: Engagement Checks
|
|
644
|
+
|
|
645
|
+
**Goal**: Audit the lecture for active-learning touchpoints, and add any missing ones.
|
|
646
|
+
|
|
647
|
+
Research on college teaching consistently shows that lectures with active engagement every 10–15 minutes outperform pure lecturing on learning gains. Use this phase to confirm adequate active moments.
|
|
648
|
+
|
|
649
|
+
### Step 5.1 — Engagement audit
|
|
650
|
+
|
|
651
|
+
Walk through the deck and count engagement points. A 50-min lecture should have **at least 4–5**:
|
|
652
|
+
|
|
653
|
+
| Engagement type | Purpose | Frequency |
|
|
654
|
+
|-----------------|---------|-----------|
|
|
655
|
+
| Check-for-understanding (predict/reason) | Test application | 1 per unit |
|
|
656
|
+
| Spot-the-error | Apply + analyze | 1 per unit |
|
|
657
|
+
| Think-pair-share prompt | Peer instruction | 1–2 per lecture |
|
|
658
|
+
| Live demonstration | Show process unfolding | When applicable |
|
|
659
|
+
| Poll / clicker question | Rapid formative assessment | Optional |
|
|
660
|
+
| Recall from last lecture | Retrieval practice | Opening |
|
|
661
|
+
| Mid-lecture summary | Consolidation | Midpoint of long lectures |
|
|
662
|
+
|
|
663
|
+
### Step 5.2 — Add missing engagement points
|
|
664
|
+
|
|
665
|
+
If the audit finds fewer than 4 engagement points, insert more:
|
|
666
|
+
- Convert a passive explanation slide into a "predict first, then reveal" pair
|
|
667
|
+
- Add a think-pair-share prompt after a conceptually hard slide
|
|
668
|
+
- Add a "before the next slide, try to…" prompt
|
|
669
|
+
|
|
670
|
+
### Step 5.3 — Distribution check
|
|
671
|
+
|
|
672
|
+
Engagement points should be **spread**, not clustered. Aim for at least one in each third of the lecture:
|
|
673
|
+
- Early third: recall from prior lecture
|
|
674
|
+
- Middle third: check-for-understanding on the first unit
|
|
675
|
+
- Late third: synthesis or integrative check
|
|
676
|
+
|
|
677
|
+
### Step 5.4 — ★ STOP AND CONFIRM ★
|
|
678
|
+
|
|
679
|
+
Show the engagement audit and any proposed additions. Ask the user if the active-learning density feels right for the cohort and format.
|
|
680
|
+
|
|
681
|
+
### Phase 5 Checklist
|
|
682
|
+
|
|
683
|
+
- [ ] At least 4–5 engagement points for a 50-min lecture
|
|
684
|
+
- [ ] At least one engagement type per unit
|
|
685
|
+
- [ ] Opening has a recall prompt
|
|
686
|
+
- [ ] Closing has a summary + preview
|
|
687
|
+
- [ ] Engagement points are spread across the lecture
|
|
688
|
+
- [ ] User has approved the engagement design
|
|
689
|
+
|
|
690
|
+
---
|
|
691
|
+
|
|
692
|
+
## Phase 6: Polish + Dual Export
|
|
693
|
+
|
|
694
|
+
**Goal**: Apply visual styling, produce both a lecture version and a handout version.
|
|
695
|
+
|
|
696
|
+
### Step 6.1 — Apply theme
|
|
697
|
+
|
|
698
|
+
**Default for teaching: Light theme.** Classrooms and lecture halls are typically lit, projectors vary in quality, and students need to read from the back. Dark theme is acceptable for evening classes or recorded video formats.
|
|
699
|
+
|
|
700
|
+
Paste the light-theme CSS from the Theme System section.
|
|
701
|
+
|
|
702
|
+
### Step 6.2 — Configure the `advanced` class (if mixed cohort)
|
|
703
|
+
|
|
704
|
+
The light-theme CSS in this skill already includes the `section.advanced` rule. If you used a different theme or removed it, add back:
|
|
705
|
+
|
|
706
|
+
```css
|
|
707
|
+
section.advanced {
|
|
708
|
+
background: linear-gradient(to right, var(--card) 0%, var(--card) 8px, var(--dark) 8px);
|
|
709
|
+
}
|
|
710
|
+
section.advanced h1::before {
|
|
711
|
+
content: "★ ADVANCED";
|
|
712
|
+
color: var(--yellow);
|
|
713
|
+
font-size: 0.5em;
|
|
714
|
+
letter-spacing: 0.15em;
|
|
715
|
+
display: block;
|
|
716
|
+
margin-bottom: 8px;
|
|
717
|
+
font-weight: 600;
|
|
718
|
+
}
|
|
719
|
+
```
|
|
720
|
+
|
|
721
|
+
Then mark advanced slides with `<!-- _class: advanced -->`.
|
|
722
|
+
|
|
723
|
+
### Step 6.3 — Typographic and layout polish
|
|
724
|
+
|
|
725
|
+
- **Consistent fonts**: one for headings, one for body, one for monospace/technical content (if used)
|
|
726
|
+
- **Consistent color use**: main + one accent. Semantic colors (green/red/yellow) used the same way throughout
|
|
727
|
+
- **Consistent spacing**: titles, footers, pagination in same position on every slide
|
|
728
|
+
- **Equation rendering**: if the subject uses math, confirm `math: mathjax` in front matter
|
|
729
|
+
|
|
730
|
+
### Step 6.4 — Readability checks
|
|
731
|
+
|
|
732
|
+
- **Back-of-room test**: Zoom out or step 3m back. Body text and any technical content (equations, tables, diagrams) must remain readable.
|
|
733
|
+
- **Handout test**: Export PDF. Does each slide make sense without hearing the instructor? If not, expand speaker notes and ensure the handout version renders them.
|
|
734
|
+
- **Grayscale test**: View PDF in grayscale. Any color-only distinctions should still be distinguishable via shape, position, or weight.
|
|
735
|
+
- **Colorblind safety**: Avoid red-green as the only distinguisher in figures.
|
|
736
|
+
|
|
737
|
+
### Step 6.5 — Export BOTH versions
|
|
738
|
+
|
|
739
|
+
Teaching decks benefit from two PDF outputs:
|
|
740
|
+
|
|
741
|
+
**Lecture version** — clean slides for projection:
|
|
742
|
+
```bash
|
|
743
|
+
npx @marp-team/marp-cli lecture.md --pdf --allow-local-files -o lecture.pdf
|
|
744
|
+
npx @marp-team/marp-cli lecture.md --html --allow-local-files -o lecture.html
|
|
745
|
+
```
|
|
746
|
+
|
|
747
|
+
**Handout version** — speaker notes included, for student self-study. Marp CLI does not render HTML comments as visible text by default. The cleanest approach:
|
|
748
|
+
1. Duplicate the `.md` file as `lecture_handout.md`
|
|
749
|
+
2. In the copy, convert `<!-- Speaker note: ... -->` blocks into visible markdown blockquotes:
|
|
750
|
+
```markdown
|
|
751
|
+
> **Instructor notes**: [the speaker-note content]
|
|
752
|
+
```
|
|
753
|
+
3. Export the handout version as PDF:
|
|
754
|
+
```bash
|
|
755
|
+
npx @marp-team/marp-cli lecture_handout.md --pdf --allow-local-files -o handout.pdf
|
|
756
|
+
```
|
|
757
|
+
|
|
758
|
+
Automate this conversion with a short `sed`/script step if the course will have many lectures.
|
|
759
|
+
|
|
760
|
+
### Step 6.6 — Persist the final deliverables
|
|
761
|
+
|
|
762
|
+
Call `artifact-create` with `type='tool-output'`, title `Lecture — <course code> <lecture N>: <topic>`, and store the final lecture Markdown. In the artifact body, record the paths of:
|
|
763
|
+
- Lecture `.md` source
|
|
764
|
+
- Handout `.md` source
|
|
765
|
+
- Lecture PDF + HTML
|
|
766
|
+
- Handout PDF
|
|
767
|
+
|
|
768
|
+
This makes the lecture discoverable via `artifact-search` next term and lets downstream revisions pick up where this session left off.
|
|
769
|
+
|
|
770
|
+
### Phase 6 Checklist
|
|
771
|
+
|
|
772
|
+
- [ ] Light theme applied (or dark if appropriate for the venue)
|
|
773
|
+
- [ ] Fonts, colors, spacing consistent across all slides
|
|
774
|
+
- [ ] Back-of-room test passed
|
|
775
|
+
- [ ] Handout test passed (slides stand alone with notes)
|
|
776
|
+
- [ ] Lecture PDF + HTML exported
|
|
777
|
+
- [ ] Handout PDF (with notes rendered) exported
|
|
778
|
+
- [ ] Final deck + handout persisted as tool-output artifact
|
|
779
|
+
- [ ] User has final deliverables
|
|
780
|
+
|
|
781
|
+
---
|
|
782
|
+
|
|
783
|
+
# REVISE MODE (Lightweight)
|
|
784
|
+
|
|
785
|
+
**Goal**: Improve an existing lecture without undoing the instructor's deliberate choices.
|
|
786
|
+
|
|
787
|
+
**Guiding principle**: Teaching decks embed the instructor's pedagogical choices — pacing, emphasis, chosen examples, analogies tuned to their specific cohort. Do not override these unless asked. Revise requests here are often feedback from having taught the lecture once ("this part confused students", "we ran out of time", "the second example didn't land").
|
|
788
|
+
|
|
789
|
+
## Core Rules
|
|
790
|
+
|
|
791
|
+
1. **Read the whole deck first** to understand the lesson arc before editing.
|
|
792
|
+
2. **Classify the request**:
|
|
793
|
+
- **L1 — Surface**: Typos, factual errors, formatting. Just fix.
|
|
794
|
+
- **L2 — Content**: Replace an example, rewrite an explanation, update a figure. Describe the planned change, then do it.
|
|
795
|
+
- **L3 — Structural**: Add/remove units, change objectives, reorder sections. Confirm before executing.
|
|
796
|
+
3. **Preserve the instructor's voice and choices**. Keep phrasing, examples, and analogies unless explicitly told to change them. These are often tuned to the cohort.
|
|
797
|
+
4. **Report changes explicitly.** After edits, produce a short diff summary listing which slides changed and what changed on each — don't make the user hunt for differences. Format:
|
|
798
|
+
```
|
|
799
|
+
Changes made:
|
|
800
|
+
- Slide 5 (old title: "..."): Replaced worked example with a simpler variant; kept common-mistakes slide
|
|
801
|
+
- Slide 9: Added approach-naming sentence before step-by-step; addresses "students got lost here"
|
|
802
|
+
- Slide 14: Split into two slides (was over-dense); now slides 14 and 15
|
|
803
|
+
```
|
|
804
|
+
5. **If the user's request is vague** ("this part didn't work", "the middle felt off"), run the Quick Diagnosis Checklist below before editing.
|
|
805
|
+
|
|
806
|
+
## Slide reference convention
|
|
807
|
+
|
|
808
|
+
**Slide numbers are 1-indexed.** When the user says "slide 5" or "page 5," they mean the fifth slide they see — i.e., the fifth `---`-separated section, matching the pagination number in the rendered deck.
|
|
809
|
+
|
|
810
|
+
- Never silently translate to a zero-indexed array position.
|
|
811
|
+
- If there's any ambiguity (the user might be excluding the title slide, or counting units rather than slides), **ask once**: "To confirm: by 'slide 5' you mean the one currently showing page 5 in the bottom corner, which is titled '...'?"
|
|
812
|
+
- When reporting changes, use the same 1-indexed numbering the user sees.
|
|
813
|
+
|
|
814
|
+
## Quick Diagnosis Checklist (for vague requests)
|
|
815
|
+
|
|
816
|
+
When the user says something vague ("this part didn't work", "feels off"), run through this checklist and flag issues. Let the user choose what to fix.
|
|
817
|
+
|
|
818
|
+
**Lesson arc level**
|
|
819
|
+
- [ ] Review-previous slide present at start?
|
|
820
|
+
- [ ] Learning objectives stated explicitly?
|
|
821
|
+
- [ ] Each objective has a corresponding unit?
|
|
822
|
+
- [ ] Summary + preview at end?
|
|
823
|
+
|
|
824
|
+
**Per-unit level** (scan each unit)
|
|
825
|
+
- [ ] Concept introduced with definition + intuition + when-it-matters?
|
|
826
|
+
- [ ] Worked example present and complete (problem → approach → steps → answer → reflection)?
|
|
827
|
+
- [ ] Check-for-understanding slide present?
|
|
828
|
+
- [ ] Common-mistakes slide present?
|
|
829
|
+
|
|
830
|
+
**Density level**
|
|
831
|
+
- [ ] No slide has more than ~60 words of prose?
|
|
832
|
+
- [ ] No slide has more than ~15 lines of technical content?
|
|
833
|
+
- [ ] Tables ≤ 8 rows?
|
|
834
|
+
- [ ] Body text at 18pt+?
|
|
835
|
+
|
|
836
|
+
**Engagement level**
|
|
837
|
+
- [ ] ≥ 4 active-learning points in a 50-min lecture?
|
|
838
|
+
- [ ] Engagement spread across the lecture (not all clumped)?
|
|
839
|
+
|
|
840
|
+
Flag any failing items. Let the user select which to address.
|
|
841
|
+
|
|
842
|
+
## Common Revise Requests
|
|
843
|
+
|
|
844
|
+
| Request | Classification | Action |
|
|
845
|
+
|---------|---------------|--------|
|
|
846
|
+
| "Students got lost at [topic]" | L2 vague | Diagnose that unit's worked example; propose a clearer approach slide or additional scaffolding |
|
|
847
|
+
| "Add a slide on [new concept]" | L3 | Ask: which unit? what objective does it support? worked example needed? |
|
|
848
|
+
| "This is too long for 50 min" | L2/L3 | Identify cuttable content: reduce a worked example, move a unit to pre-class reading, cut a secondary concept, or move supplementary slides to backup |
|
|
849
|
+
| "Update this content — the convention / definition has changed" | L1/L2 | Apply the update, check for downstream references in other slides |
|
|
850
|
+
| "First unit too easy, second too hard" | L3 | Propose rebalancing: move material between units, or adjust Bloom level of objectives |
|
|
851
|
+
| "Add more exercises" | L2 | Confirm which units, which engagement type (predict / spot-the-error / apply-to-variant) |
|
|
852
|
+
| "Make the slides work as a handout without me speaking" | L3 | Expand in-slide prose under figures/examples, expand common-mistakes slides to explain each misconception fully, ensure handout export renders notes |
|
|
853
|
+
| "Change the examples to fit a different cohort" | L2/L3 | Confirm cohort and level, swap examples while keeping concept scaffolding |
|
|
854
|
+
|
|
855
|
+
---
|
|
856
|
+
|
|
857
|
+
# Reference Material (Shared by Both Modes)
|
|
858
|
+
|
|
859
|
+
## Marp Syntax Essentials
|
|
860
|
+
|
|
861
|
+
### Front matter
|
|
862
|
+
|
|
863
|
+
```markdown
|
|
864
|
+
---
|
|
865
|
+
marp: true
|
|
866
|
+
theme: default
|
|
867
|
+
paginate: true
|
|
868
|
+
math: mathjax
|
|
869
|
+
size: 16:9
|
|
870
|
+
style: |
|
|
871
|
+
/* CSS block — paste from Theme System below */
|
|
872
|
+
---
|
|
873
|
+
```
|
|
874
|
+
|
|
875
|
+
### Per-slide directives
|
|
876
|
+
|
|
877
|
+
```markdown
|
|
878
|
+
<!-- _class: lead --> # centered, title-like layout (this slide only)
|
|
879
|
+
<!-- _paginate: false --> # hide page number (this slide only)
|
|
880
|
+
<!-- _class: advanced --> # advanced/optional marker (needs CSS defined)
|
|
881
|
+
<!-- _backgroundColor: #000 --> # override background (this slide only)
|
|
882
|
+
<!-- header: "Unit 2" --> # persistent header (until redefined)
|
|
883
|
+
<!-- footer: "Course X, Lec 5" --> # persistent footer
|
|
884
|
+
```
|
|
885
|
+
|
|
886
|
+
### Images and figures
|
|
887
|
+
|
|
888
|
+
```markdown
|
|
889
|
+
 # fixed width
|
|
890
|
+
 # fixed height
|
|
891
|
+
 # full background
|
|
892
|
+
 # split layout, image right 40%
|
|
893
|
+
 # split layout, image left 35%
|
|
894
|
+
 # fit without cropping
|
|
895
|
+
```
|
|
896
|
+
|
|
897
|
+
### Math
|
|
898
|
+
|
|
899
|
+
```markdown
|
|
900
|
+
Inline: $f(x) = ax + b$
|
|
901
|
+
|
|
902
|
+
Block:
|
|
903
|
+
$$
|
|
904
|
+
\int_{a}^{b} f(x)\, dx = F(b) - F(a)
|
|
905
|
+
$$
|
|
906
|
+
```
|
|
907
|
+
|
|
908
|
+
**Critical pitfall — math inside HTML containers**: Marp's MathJax/KaTeX plugin is a markdown-it tokenizer plugin. It can only render math that markdown-it actually tokenizes. Per CommonMark, content inside a **single-line** HTML block tag is treated as literal text and never re-parsed as Markdown, so the `$...$` never reaches the math plugin and prints as raw dollar signs in the PDF.
|
|
909
|
+
|
|
910
|
+
This fails silently — there is no warning, just literal `$` characters in the output. Teaching slides frequently use grid layouts for concept cards, worked-example blocks, and comparison tables — if any of those contain math, you MUST use one of these patterns:
|
|
911
|
+
|
|
912
|
+
```html
|
|
913
|
+
<!-- ❌ BROKEN: math on same line as the <div> tag — will NOT render -->
|
|
914
|
+
<div class="card"><strong>$f'(x) = \lim_{h \to 0} \frac{f(x+h)-f(x)}{h}$</strong></div>
|
|
915
|
+
|
|
916
|
+
<!-- ✅ FIX A: blank lines inside <div> force markdown-it to re-parse -->
|
|
917
|
+
<div class="card">
|
|
918
|
+
|
|
919
|
+
**$f'(x) = \lim_{h \to 0} \frac{f(x+h)-f(x)}{h}$**
|
|
920
|
+
|
|
921
|
+
</div>
|
|
922
|
+
|
|
923
|
+
<!-- ✅ FIX B: put block math outside the container; keep only non-math content in the grid -->
|
|
924
|
+
<div class="card">
|
|
925
|
+
<div class="label">Definition</div>
|
|
926
|
+
</div>
|
|
927
|
+
|
|
928
|
+
$$f'(x) = \lim_{h \to 0} \frac{f(x+h)-f(x)}{h}$$
|
|
929
|
+
```
|
|
930
|
+
|
|
931
|
+
Rule: **whenever a slide has both a `<div>`-based layout and LaTeX math, write the math on its own line with a blank line separating it from the surrounding HTML tags.** Or write the whole slide in pure Markdown without grid containers — inline `$...$` and block `$$...$$` always render correctly in plain Markdown context.
|
|
932
|
+
|
|
933
|
+
Short exponents like `K=10⁻³` can be written with Unicode superscripts as a last resort in tight layouts, but lose LaTeX fidelity — only acceptable for trivial cases. Worked-example step-by-step derivations should always use proper LaTeX so students can re-read notation correctly.
|
|
934
|
+
|
|
935
|
+
## Light Theme CSS (default for teaching)
|
|
936
|
+
|
|
937
|
+
```yaml
|
|
938
|
+
style: |
|
|
939
|
+
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700&family=JetBrains+Mono:wght@400;600&display=swap');
|
|
940
|
+
:root {
|
|
941
|
+
--accent: #2563eb;
|
|
942
|
+
--dark: #f8fafc;
|
|
943
|
+
--card: #ffffff;
|
|
944
|
+
--border: #e2e8f0;
|
|
945
|
+
--body: #334155;
|
|
946
|
+
--label: #64748b;
|
|
947
|
+
--muted: #94a3b8;
|
|
948
|
+
--light: #0f172a;
|
|
949
|
+
--green: #16a34a;
|
|
950
|
+
--red: #dc2626;
|
|
951
|
+
--yellow: #ca8a04;
|
|
952
|
+
--code-bg: #f1f5f9;
|
|
953
|
+
}
|
|
954
|
+
section {
|
|
955
|
+
background: var(--dark);
|
|
956
|
+
color: var(--light);
|
|
957
|
+
font-family: 'Inter', sans-serif;
|
|
958
|
+
font-weight: 400;
|
|
959
|
+
padding: 40px 56px;
|
|
960
|
+
font-size: 22px;
|
|
961
|
+
}
|
|
962
|
+
section.lead {
|
|
963
|
+
display: flex;
|
|
964
|
+
flex-direction: column;
|
|
965
|
+
justify-content: center;
|
|
966
|
+
text-align: center;
|
|
967
|
+
}
|
|
968
|
+
section.advanced {
|
|
969
|
+
background: linear-gradient(to right, var(--card) 0%, var(--card) 6px, var(--dark) 6px);
|
|
970
|
+
}
|
|
971
|
+
section.advanced h1::before {
|
|
972
|
+
content: "★ ADVANCED";
|
|
973
|
+
color: var(--yellow);
|
|
974
|
+
font-size: 0.45em;
|
|
975
|
+
letter-spacing: 0.15em;
|
|
976
|
+
display: block;
|
|
977
|
+
margin-bottom: 10px;
|
|
978
|
+
font-weight: 600;
|
|
979
|
+
}
|
|
980
|
+
h1 { font-weight: 700; font-size: 1.8em; color: var(--light); margin-bottom: 0.3em; line-height: 1.25; }
|
|
981
|
+
h2 { font-weight: 600; font-size: 1.2em; color: var(--body); margin-top: 0.6em; }
|
|
982
|
+
h3 { font-weight: 600; font-size: 0.9em; color: var(--accent); margin-top: 0.8em; }
|
|
983
|
+
p, li { color: var(--body); line-height: 1.55; }
|
|
984
|
+
strong { color: var(--light); font-weight: 600; }
|
|
985
|
+
em { color: var(--accent); font-style: normal; font-weight: 500; }
|
|
986
|
+
code { font-family: 'JetBrains Mono', monospace; font-size: 0.88em; background: var(--code-bg); padding: 2px 6px; border-radius: 4px; border: 1px solid var(--border); color: var(--light); }
|
|
987
|
+
pre { background: var(--code-bg); border: 1px solid var(--border); border-radius: 6px; padding: 14px 18px; font-size: 0.85em; line-height: 1.5; }
|
|
988
|
+
pre code { background: transparent; border: none; padding: 0; font-size: 1em; }
|
|
989
|
+
table { width: 100%; border-collapse: collapse; font-size: 0.88em; margin: 12px 0; }
|
|
990
|
+
th { color: var(--label); font-weight: 600; text-transform: uppercase; font-size: 0.75em; letter-spacing: 0.05em; border-bottom: 2px solid var(--border); padding: 8px 10px; text-align: left; }
|
|
991
|
+
td { color: var(--body); border-bottom: 1px solid var(--border); padding: 8px 10px; }
|
|
992
|
+
blockquote { border-left: 4px solid var(--accent); padding: 4px 16px; color: var(--body); background: var(--code-bg); margin: 12px 0; }
|
|
993
|
+
footer { color: var(--label); font-size: 0.6em; }
|
|
994
|
+
```
|
|
995
|
+
|
|
996
|
+
## Slide Templates
|
|
997
|
+
|
|
998
|
+
All templates use domain-neutral placeholders. Replace bracketed content with material from the actual subject the user is teaching.
|
|
999
|
+
|
|
1000
|
+
### Title slide
|
|
1001
|
+
|
|
1002
|
+
```markdown
|
|
1003
|
+
<!-- _class: lead -->
|
|
1004
|
+
<!-- _paginate: false -->
|
|
1005
|
+
|
|
1006
|
+
# [Lecture Topic]
|
|
1007
|
+
## [Course Code] — Lecture [N]
|
|
1008
|
+
|
|
1009
|
+
**[Instructor Name]**
|
|
1010
|
+
*[Term] [Year] — [Institution]*
|
|
1011
|
+
```
|
|
1012
|
+
|
|
1013
|
+
### Today's objectives slide
|
|
1014
|
+
|
|
1015
|
+
```markdown
|
|
1016
|
+
# Today you will be able to…
|
|
1017
|
+
|
|
1018
|
+
1. **[Action verb]** [specific outcome]
|
|
1019
|
+
2. **[Action verb]** [specific outcome]
|
|
1020
|
+
3. **[Action verb]** [specific outcome]
|
|
1021
|
+
4. **[Action verb]** [specific outcome]
|
|
1022
|
+
|
|
1023
|
+
> By the end, you should be able to [concrete capability tied to assessment or next lecture].
|
|
1024
|
+
```
|
|
1025
|
+
|
|
1026
|
+
### Review-previous-lecture slide
|
|
1027
|
+
|
|
1028
|
+
```markdown
|
|
1029
|
+
# Where we left off: [last lecture's main topic]
|
|
1030
|
+
|
|
1031
|
+
**Last lecture we established:**
|
|
1032
|
+
- [key claim 1]
|
|
1033
|
+
- [key claim 2]
|
|
1034
|
+
- [key claim 3]
|
|
1035
|
+
|
|
1036
|
+
**Today we'll see how this leads to [today's topic].**
|
|
1037
|
+
```
|
|
1038
|
+
|
|
1039
|
+
### Prerequisite recall
|
|
1040
|
+
|
|
1041
|
+
```markdown
|
|
1042
|
+
# Quick recall: [prerequisite concept]
|
|
1043
|
+
|
|
1044
|
+
A **[concept]** is [one-sentence working definition].
|
|
1045
|
+
|
|
1046
|
+
[Optional: a short illustrative instance or a minimal formula / diagram, kept to what's needed for today.]
|
|
1047
|
+
|
|
1048
|
+
*If you're not sure, revisit [specific reference] before next class.*
|
|
1049
|
+
```
|
|
1050
|
+
|
|
1051
|
+
### Concept introduction
|
|
1052
|
+
|
|
1053
|
+
```markdown
|
|
1054
|
+
# [Concept name]
|
|
1055
|
+
|
|
1056
|
+
**Definition**
|
|
1057
|
+
A *[concept]* is [precise one-sentence definition].
|
|
1058
|
+
|
|
1059
|
+
**Intuition**
|
|
1060
|
+
[One analogy or informal explanation that connects to something the audience already understands.]
|
|
1061
|
+
|
|
1062
|
+
**When it matters**
|
|
1063
|
+
[A concrete setting where this concept is essential — makes it memorable and anchors future recall.]
|
|
1064
|
+
```
|
|
1065
|
+
|
|
1066
|
+
### Worked example (generic template)
|
|
1067
|
+
|
|
1068
|
+
```markdown
|
|
1069
|
+
# Worked example: [problem name]
|
|
1070
|
+
|
|
1071
|
+
### Problem
|
|
1072
|
+
[State precisely what is given and what is to be found or shown.]
|
|
1073
|
+
|
|
1074
|
+
### Approach
|
|
1075
|
+
[The key insight or technique — one or two sentences. Naming the approach before doing the work is crucial.]
|
|
1076
|
+
|
|
1077
|
+
### Step-by-step
|
|
1078
|
+
1. [First step with justification]
|
|
1079
|
+
2. [Second step]
|
|
1080
|
+
3. [... continue, split across slides if long]
|
|
1081
|
+
4. [Final step producing the answer]
|
|
1082
|
+
|
|
1083
|
+
### Answer
|
|
1084
|
+
**[Final result, clearly marked.]**
|
|
1085
|
+
|
|
1086
|
+
### Why this works
|
|
1087
|
+
[Connect back to the concept. Note key assumptions, and when the approach generalizes or fails.]
|
|
1088
|
+
```
|
|
1089
|
+
|
|
1090
|
+
### Check-for-understanding (predict/reason)
|
|
1091
|
+
|
|
1092
|
+
```markdown
|
|
1093
|
+
# Check: predict [quantity / behavior / outcome]
|
|
1094
|
+
|
|
1095
|
+
Given [setup], what is [quantity of interest]?
|
|
1096
|
+
|
|
1097
|
+
- A) [option]
|
|
1098
|
+
- B) [option]
|
|
1099
|
+
- C) [option]
|
|
1100
|
+
- D) [option]
|
|
1101
|
+
|
|
1102
|
+
<!-- Give 30–60 seconds. Answer: [answer]. Common wrong answer: [option + why students pick it]. -->
|
|
1103
|
+
```
|
|
1104
|
+
|
|
1105
|
+
### Check-for-understanding (spot the error)
|
|
1106
|
+
|
|
1107
|
+
```markdown
|
|
1108
|
+
# Check: what's wrong here?
|
|
1109
|
+
|
|
1110
|
+
[Present a short attempted solution, derivation, or argument with a subtle error embedded.]
|
|
1111
|
+
|
|
1112
|
+
Where does it fail, and why?
|
|
1113
|
+
|
|
1114
|
+
<!-- The error is at [location]. Students often miss it because [reason]. Good teachable moment for [concept]. -->
|
|
1115
|
+
```
|
|
1116
|
+
|
|
1117
|
+
### Common mistakes
|
|
1118
|
+
|
|
1119
|
+
```markdown
|
|
1120
|
+
# Common mistakes with [concept]
|
|
1121
|
+
|
|
1122
|
+
**❌ "[Plausible but wrong statement]"**
|
|
1123
|
+
→ [Why it's wrong, in one sentence. Correct statement.]
|
|
1124
|
+
|
|
1125
|
+
**❌ "[Second misconception — often a confusion with a related concept]"**
|
|
1126
|
+
→ [Distinction made explicit.]
|
|
1127
|
+
|
|
1128
|
+
**❌ "[Third misconception — often an over-generalization]"**
|
|
1129
|
+
→ [Scope of validity clarified.]
|
|
1130
|
+
```
|
|
1131
|
+
|
|
1132
|
+
### Synthesis slide
|
|
1133
|
+
|
|
1134
|
+
```markdown
|
|
1135
|
+
# How today's concepts connect
|
|
1136
|
+
|
|
1137
|
+
[Unit A] and [Unit B] are both instances of [general framework], differing in [one key dimension].
|
|
1138
|
+
|
|
1139
|
+
| Aspect | [Unit A] | [Unit B] |
|
|
1140
|
+
|--------|----------|----------|
|
|
1141
|
+
| [dimension 1] | [value] | [value] |
|
|
1142
|
+
| [dimension 2] | [value] | [value] |
|
|
1143
|
+
| [when to use] | [scenario A] | [scenario B] |
|
|
1144
|
+
|
|
1145
|
+
**Key insight:** [the connection in one sentence.]
|
|
1146
|
+
```
|
|
1147
|
+
|
|
1148
|
+
### Summary + preview
|
|
1149
|
+
|
|
1150
|
+
```markdown
|
|
1151
|
+
# Summary: what you should now be able to do
|
|
1152
|
+
|
|
1153
|
+
✔ [Objective 1, restated]
|
|
1154
|
+
✔ [Objective 2, restated]
|
|
1155
|
+
✔ [Objective 3, restated]
|
|
1156
|
+
✔ [Objective 4, restated]
|
|
1157
|
+
|
|
1158
|
+
### Next lecture
|
|
1159
|
+
**[Next topic]** — we'll extend today's ideas to [direction].
|
|
1160
|
+
|
|
1161
|
+
### Before then
|
|
1162
|
+
[Readings, assignments, problems to attempt.]
|
|
1163
|
+
```
|
|
1164
|
+
|
|
1165
|
+
## Common Failure Modes
|
|
1166
|
+
|
|
1167
|
+
| Symptom | Root cause | Fix |
|
|
1168
|
+
|---------|-----------|-----|
|
|
1169
|
+
| Students can't follow the worked example | Jumped to steps without stating the approach | Add a slide naming the key insight before the step-by-step |
|
|
1170
|
+
| Lecture runs long | Too many objectives or over-deep worked examples | Cut an objective; move one worked example to pre-class reading |
|
|
1171
|
+
| Students guess instead of reason on checks | Check came before the concept was fully explained | Move the check after concept + worked example |
|
|
1172
|
+
| Technical content illegible from back row | Font too small or content too dense | Enforce minimum font sizes; split dense slides |
|
|
1173
|
+
| Students re-read but don't understand | Slides too sparse for standalone reading; no notes exported | Ensure handout version renders speaker notes; expand prose under visuals |
|
|
1174
|
+
| Same misconception appears every term | No dedicated common-mistakes slide | Add one explicit slide per major concept |
|
|
1175
|
+
| Engagement drops in the middle | All engagement points at start and end | Redistribute checks across the lecture |
|
|
1176
|
+
| Math renders as literal `$...$` in PDF | `$...$` is inside a single-line HTML block tag (e.g., `<div class="card">...$x$...</div>`), so markdown-it never tokenizes it | Add blank lines inside the `<div>` around the math, OR move block `$$...$$` outside the container. See Math section for the canonical fix. |
|
|
1177
|
+
|
|
1178
|
+
## Export Reference
|
|
1179
|
+
|
|
1180
|
+
```bash
|
|
1181
|
+
# Live preview during authoring
|
|
1182
|
+
npx @marp-team/marp-cli lecture.md --watch --html --allow-local-files
|
|
1183
|
+
|
|
1184
|
+
# Lecture version (slides only)
|
|
1185
|
+
npx @marp-team/marp-cli lecture.md --pdf --allow-local-files -o lecture.pdf
|
|
1186
|
+
npx @marp-team/marp-cli lecture.md --html --allow-local-files -o lecture.html
|
|
1187
|
+
|
|
1188
|
+
# Handout version (speaker notes rendered as visible text)
|
|
1189
|
+
# Steps:
|
|
1190
|
+
# 1. cp lecture.md lecture_handout.md
|
|
1191
|
+
# 2. Convert <!-- Speaker note: ... --> into > **Instructor notes**: ... blockquotes
|
|
1192
|
+
# 3. Export:
|
|
1193
|
+
npx @marp-team/marp-cli lecture_handout.md --pdf --allow-local-files -o handout.pdf
|
|
1194
|
+
```
|
|
1195
|
+
|
|
1196
|
+
## Integration with Other Skills and Tools
|
|
1197
|
+
|
|
1198
|
+
| Task | Combine with |
|
|
1199
|
+
|------|-------------|
|
|
1200
|
+
| Concept diagrams / schematics | `scientific-schematics` → SVG → embed |
|
|
1201
|
+
| Publication-quality figures for intuition slides | `scientific-visualization` → PNG/SVG → embed |
|
|
1202
|
+
| Custom low-level plots | `matplotlib` or `seaborn` → PNG/SVG → embed |
|
|
1203
|
+
| Ingest syllabus / textbook / prior slides | `convert-document` tool on PDF/DOCX → use as Context Gate input |
|
|
1204
|
+
| Live-compute demos and demo-data plots | `data-analyze` tool → plot + code for a demo slide |
|
|
1205
|
+
| Course data (grades, survey) for revisions | `data-analyze` tool → feed findings into Revise Mode |
|
|
1206
|
+
| References / Further Reading slide | `literature-search` tool → populate a backup slide; also a quick tier-2 scan in Context Gate for research-adjacent lectures |
|
|
1207
|
+
| Find prior course material in workspace | `ls` + `find` on user-provided paths (tier 1); `artifact-search` on `notes`/`papers` for saved notes |
|
|
1208
|
+
| Long-lived course preferences (notation, recurring misconceptions, instructor voice) | Read `.research-pilot/memory/MEMORY.md` + linked files during Context Gate (tier 1) |
|
|
1209
|
+
| Paper knowledge base lookups (graduate seminars) | `wiki_search` / `wiki_get` during Context Gate (tier 1, optional) |
|
|
1210
|
+
| Online fill-ins (updated conventions, authoritative definitions) | `web_search` / `web_fetch` as tier-3 fallback only |
|
|
1211
|
+
| Persist lecture plan and final deck | `artifact-create` with `type='note'` (Phase 1) and `type='tool-output'` (Phase 6) |
|
|
1212
|
+
| Sister skill for research talks | `academic-marp-slides` — use for conference talks, invited talks, defenses |
|
|
1213
|
+
|
|
1214
|
+
---
|
|
1215
|
+
|
|
1216
|
+
## Final Reminder
|
|
1217
|
+
|
|
1218
|
+
Teaching slides succeed when a student can **re-read them alone** a week later and still learn from them. That's the single most important test — more than any visual polish. Worked examples and common-mistakes slides carry most of the weight. Respect the student's time and the instructor's voice.
|