Skip to content

Commit 7bfb32e

Browse files
authored
Aura Administration (#422)
* update drivers courses to past tests * initial structure * humanise text * updates * cpu * wip * restructure, complete monitoring resources module * move OOM to resources, remove challenges * up to 5/1 * 5/2 * module 5 * restructure * ai review * clean up * 1-1 slides * slides for modules 1, 2 * review module 2 * review, recap lesson * ai review * summary, llms.txt
1 parent 62aa414 commit 7bfb32e

File tree

142 files changed

+14302
-96
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

142 files changed

+14302
-96
lines changed
Lines changed: 315 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,315 @@
1+
# Course Lesson Update Instructions
2+
3+
## Overview
4+
5+
These instructions document the changes made to the Out of Memory Errors lesson and should be applied to future lessons for consistency and improved pedagogy.
6+
7+
## 1. Structure and Organization
8+
9+
### 1.1 Follow WHY-WHAT-HOW Framework
10+
11+
- **Introduction**: Two-part structure (see section 1.2)
12+
- **Understanding [Topic]** (WHY): Explain what the concept is, why it matters, and common causes
13+
- **Monitoring [Topic]** (WHAT): Show what metrics/data are available and what to look for
14+
- **Mitigating [Topic]** (HOW): Provide actionable steps to address issues
15+
- **When you should scale [Topic]**: A careful consideration of the factors that lead to needing to increase the size of the instance. Scaling is not always the answer.
16+
- **Questions**: Test understanding with 2-3 focused questions
17+
- **Summary**: Recap key points in 3-4 sentences
18+
19+
### 1.2 Introduction Structure
20+
21+
The introduction must follow this two-part pattern:
22+
23+
1. **Opening statement** (1-2 sentences): Choose the appropriate approach:
24+
25+
- **Option A - Direct continuation**: If building directly on previous lesson knowledge (e.g., learned MATCH, now CREATE), reference what was learned AND explain why the current topic follows naturally
26+
- **Option B - New/related topic**: If NOT directly continuing, make a statement about the primary topic being taught
27+
28+
2. **Learning objective** (1 sentence): Start with "In this lesson, you will learn..." and clearly state what the learner will gain
29+
30+
**Examples:**
31+
32+
**Good - Direct continuation:**
33+
34+
```
35+
You learned how to use MATCH to read data from the graph. To modify the graph, you need to learn how to create nodes and relationships.
36+
37+
In this lesson, you will learn how to use the CREATE clause to add data to your graph.
38+
```
39+
40+
**Good - New/related topic:**
41+
42+
```
43+
Heap memory usage directly relates to how often the Java Virtual Machine must perform garbage collection. When heap usage is high, garbage collection runs more frequently, which can cause query pauses and performance degradation.
44+
45+
In this lesson, you will learn how to monitor garbage collection metrics and understand their impact on database performance.
46+
```
47+
48+
**Good - New/related topic:**
49+
50+
```
51+
The heap is a critical memory area where Neo4j stores temporary data during query execution and transaction processing.
52+
53+
In this lesson, you'll learn how to monitor heap memory usage and identify when memory pressure is affecting your performance.
54+
```
55+
56+
**Bad - Combines everything into one sentence:**
57+
58+
```
59+
Now that you understand heap memory usage, you'll learn how to monitor garbage collection and its impact on performance.
60+
```
61+
62+
_Why: Combines context and learning objective into one sentence without the explicit "In this lesson, you will learn..." pattern._
63+
64+
**Bad - Generic opening without context:**
65+
66+
```
67+
In modern databases, garbage collection is an important aspect of memory management.
68+
69+
This lesson covers how to optimize garbage collection.
70+
```
71+
72+
_Why: Generic opening that doesn't connect to course context, and doesn't use the "In this lesson, you will learn..." pattern._
73+
74+
**Bad - References previous but doesn't explain why:**
75+
76+
```
77+
In the last lesson, you learned about heap memory.
78+
79+
In this lesson, you will learn about garbage collection.
80+
```
81+
82+
_Why: References previous lesson but doesn't explain the connection or why garbage collection follows naturally from heap memory._
83+
84+
### 1.3 Opening Statement Guidelines
85+
86+
**When building directly on previous lesson:**
87+
88+
- Reference what was learned in the previous lesson
89+
- Explain WHY the current topic follows naturally
90+
- Example: "You learned how to use MATCH to read data from the graph. To modify the graph, you need to learn how to create nodes and relationships."
91+
92+
**When NOT directly building on previous lesson:**
93+
94+
- Make a statement about the primary topic being taught
95+
- Can establish importance or connect to broader course themes
96+
- Example: "Heap memory usage directly relates to how often the Java Virtual Machine must perform garbage collection."
97+
98+
**Never:**
99+
100+
- Use generic openings like "In modern databases..."
101+
- Reference previous lesson without explaining the connection
102+
- Combine the opening statement and learning objective into one sentence
103+
104+
### 1.4 Section Headers
105+
106+
- Use action-oriented Level 2 headers (e.g., "Monitoring Out of Memory Errors", "Mitigating Out of Memory Errors")
107+
- Keep headers clear and descriptive
108+
- Use Level 3 headers for subsections that break down approaches (e.g., "Scheduled Out of Memory Errors", "Intermittent Out of Memory Errors")
109+
110+
## 2. Writing Style
111+
112+
### 2.1 Paragraphs Over Bullet Points
113+
114+
- **Use short paragraphs** instead of bullet lists for explanations
115+
- Each paragraph should be 2-4 sentences maximum
116+
- Break long paragraphs into shorter ones for better readability
117+
- Use bullet points ONLY for:
118+
- Lists of status codes or error codes
119+
- Step-by-step instructions where order doesn't matter
120+
- Options or choices
121+
122+
### 2.2 Sentence Structure
123+
124+
- **Keep sentences short** (15-20 words maximum when possible)
125+
- Break compound sentences into separate sentences
126+
- One idea per sentence
127+
- Example:
128+
- ❌ "When an Out of Memory error occurs, the JVM attempts to allocate memory for an operation but finds insufficient space available, and the garbage collector runs to free up memory, but if it cannot reclaim enough space, the JVM throws an OutOfMemoryError."
129+
- ✅ "When an Out of Memory error occurs, the JVM attempts to allocate memory for an operation but finds insufficient space available. The garbage collector runs to free up memory. If it cannot reclaim enough space, the JVM throws an `OutOfMemoryError`."
130+
131+
### 2.3 Avoid Abbreviations in Body Text
132+
133+
- Never abbreviate terms in the lesson body (e.g., write "Out of Memory" not "OOM")
134+
- Exception: Abbreviations are acceptable in:
135+
- Code comments
136+
- UI descriptions (comments at top of file)
137+
- File names (e.g., `7-oom-errors`)
138+
139+
### 2.4 Terminology
140+
141+
- **Highlight key terms** with bold formatting the first time they appear in a section
142+
- Terms to highlight:
143+
- Technical concepts (JVM, garbage collection, heap memory, transactions)
144+
- Important metrics (Out of Memory metric, OOM error count)
145+
- Critical actions (scale your instance, optimize queries)
146+
- Problem categories (Query-level issues, Memory-intensive operations)
147+
- Don't over-bold: only highlight 1-2 terms per paragraph maximum
148+
149+
### 2.5 Educational Tone
150+
151+
- Focus on teaching, not just describing
152+
- Explain the "why" behind recommendations
153+
- Connect concepts to real-world impact
154+
- Use clear cause-and-effect language
155+
- Example: "This prevents transactions from accumulating too many changes in memory before commit."
156+
157+
## 3. Content Requirements
158+
159+
### 3.1 Remove Duplication
160+
161+
- Each concept should be explained once
162+
- Avoid repeating the same information in different words
163+
- If information appears twice, consolidate into one clear statement
164+
- Example removed: "If Out of Memory errors occur intermittently... your instance likely lacks sufficient memory capacity. Intermittent Out of Memory errors indicate that your workload occasionally exceeds the available memory."
165+
166+
### 3.2 Practical Examples
167+
168+
- Include code examples where relevant (Cypher queries, status codes, etc.)
169+
- Show how errors appear in application code
170+
- Reference specific tools (EXPLAIN, PROFILE, CALL IN TRANSACTIONS)
171+
- Include specific numbers when helpful (e.g., "1000 ROWS")
172+
173+
### 3.3 Expected Values
174+
175+
- Always state what the expected/normal value is for metrics
176+
- Example: "The expected value is zero errors."
177+
- Explain what non-normal values indicate
178+
179+
### 3.4 Actionable Guidance
180+
181+
- Provide specific actions, not vague suggestions
182+
- Example: ✅ "Use `CALL { } IN TRANSACTIONS OF 1000 ROWS`" vs ❌ "Consider batching your operations"
183+
- Separate guidance by scenario (scheduled vs intermittent errors)
184+
185+
## 4. Question Design
186+
187+
### 4.1 Question Types
188+
189+
- Focus on conceptual understanding, not scenarios with specific numbers
190+
- Ask about differences between approaches
191+
- Test application of concepts from the lesson
192+
- 2-3 questions per lesson maximum
193+
194+
### 4.2 Question Structure
195+
196+
```
197+
[.question]
198+
= [Question Title in Title Case]
199+
200+
[Clear question statement]?
201+
202+
* [ ] Wrong answer 1
203+
* [x] Correct answer
204+
* [ ] Wrong answer 2
205+
* [ ] Wrong answer 3
206+
207+
[TIP,role=hint]
208+
.Hint
209+
====
210+
One sentence hint that guides without giving the answer.
211+
====
212+
213+
[TIP,role=solution]
214+
.Solution
215+
====
216+
**[Correct answer repeated]** is correct.
217+
218+
[2-3 sentences explaining why this is correct and what it accomplishes.]
219+
220+
**[Wrong concept 1]** - brief reason why wrong. **[Wrong concept 2]** - brief reason why wrong. **[Wrong concept 3]** - brief reason why wrong.
221+
====
222+
```
223+
224+
### 4.3 Hints
225+
226+
- One sentence maximum
227+
- Guide thinking, don't give the answer
228+
- Example: "Scheduled errors need query optimization, not scaling."
229+
230+
### 4.4 Solutions
231+
232+
- Start with the correct answer in bold
233+
- Explain why it's correct in 2-3 sentences
234+
- Address wrong answers briefly (one sentence each)
235+
- Use bold for answer concepts when referencing them
236+
- Keep solutions concise and focused
237+
238+
## 5. AsciiDoc Formatting
239+
240+
### 5.1 Line Breaks
241+
242+
- Two line breaks between:
243+
- Headers and content
244+
- Paragraphs
245+
- Lists and paragraphs
246+
- Sections
247+
248+
### 5.2 Code and Terms
249+
250+
- Use backticks for code elements: `LIMIT`, `CALL { } IN TRANSACTIONS`
251+
- Use bold for emphasis on concepts: **Out of Memory errors**, **heap memory**
252+
- Use proper AsciiDoc syntax for external links with caret: `link:url[text^]`
253+
254+
### 5.3 Images
255+
256+
- Include descriptive alt text: `image::images/oom.png[Out Of Memory errors]`
257+
- Place images at the beginning of monitoring sections
258+
259+
## 6. Pedagogical Requirements
260+
261+
### 6.1 Bloom's Taxonomy
262+
263+
- Focus on "remember" and "understand" levels
264+
- Avoid requiring higher-order thinking (analyze, evaluate, create)
265+
- Questions should test comprehension, not problem-solving
266+
267+
### 6.2 Concept Limit
268+
269+
- Introduce no more than 2 new concepts per lesson
270+
- Build on previous lessons explicitly
271+
- Keep lessons under 5 minutes reading time
272+
273+
### 6.3 Length
274+
275+
- Keep total lesson under 100 lines
276+
- Introduction: 2-4 sentences (opening statement + "In this lesson, you will learn..." sentence)
277+
- Each major section: 10-20 lines
278+
- Summary: 3-4 sentences
279+
280+
## 7. Checklist Before Completion
281+
282+
- [ ] Introduction follows two-part structure (opening statement + "In this lesson, you will learn...")
283+
- [ ] No abbreviations in body text (except code comments)
284+
- [ ] Sentences are 15-20 words or shorter
285+
- [ ] Paragraphs are 2-4 sentences maximum
286+
- [ ] Key terms bolded on first use in each section
287+
- [ ] No duplicate content
288+
- [ ] Structure follows WHY-WHAT-HOW
289+
- [ ] Expected values stated for all metrics
290+
- [ ] Specific, actionable guidance provided
291+
- [ ] 2-3 questions included
292+
- [ ] Questions test concepts, not scenarios
293+
- [ ] Hints are one sentence
294+
- [ ] Solutions are concise (2-3 sentences + brief wrong answer explanations)
295+
- [ ] Two line breaks between all sections
296+
- [ ] Links use proper AsciiDoc syntax with caret
297+
- [ ] Lesson is under 5 minutes reading time
298+
- [ ] No linter errors
299+
300+
## 8. Common Mistakes to Avoid
301+
302+
- ❌ Introduction that doesn't follow the two-part structure (opening statement + "In this lesson, you will learn...")
303+
- ❌ Combining context and learning objective into one sentence
304+
- ❌ Using bullet points for explanatory content
305+
- ❌ Long, compound sentences with multiple clauses
306+
- ❌ Abbreviating terms in body text
307+
- ❌ Over-bolding (only make key terms bold the first time it is mentioned and explained)
308+
- ❌ Repeating the same information in different words
309+
- ❌ Vague recommendations without specific actions
310+
- ❌ Scenario-based questions with specific metrics
311+
- ❌ Long hints (more than one sentence)
312+
- ❌ Verbose solutions with too much explanation
313+
- ❌ Missing expected values for metrics
314+
- ❌ Generic openings that don't reference previous lessons
315+
- ❌ Introducing more than 2 new concepts

0 commit comments

Comments
 (0)