|
1 | 1 | ---
|
2 | 2 | title: Enriching Course With Activities
|
3 |
| -weight: |
| 3 | +weight: 4 |
4 | 4 | description: >
|
5 |
| - A hands-on tutorial that walks you through creating, structuring, and testing a custom learning path for the Layer5 Academy. |
| 5 | + Learn how to spice up your courses with interactive activities that keep learners engaged. |
6 | 6 | categories: [Academy]
|
7 | 7 | tags: [Designer]
|
8 |
| ---- |
| 8 | +--- |
| 9 | + |
| 10 | +The [Layer5 Cloud Academy](https://cloud.layer5.io/academy/content) courses are structured as modular learning experiences. |
| 11 | + |
| 12 | +Each **Course** is broken down into **Modules**, and each Module consists of learning activities. As a content developer, you can enrich your modules with three types of learning activities: |
| 13 | + |
| 14 | +- **Pages** – Text-based content for theoretical learning |
| 15 | +- **Quizzes** – Knowledge checks for concept reinforcement |
| 16 | +- **Labs** – Hands-on practical exercises |
| 17 | + |
| 18 | +This guide shows how to add these learning activities to enhance learner engagement and comprehension. |
| 19 | + |
| 20 | +## How to Add A Page |
| 21 | + |
| 22 | + |
| 23 | +## How to Add a Quiz |
| 24 | + |
| 25 | +Quizzes in Layer5 Academy serve as knowledge checkpoints to help learners: |
| 26 | + |
| 27 | +- Reinforce key concepts from module content |
| 28 | +- Self-assess their understanding before progressing |
| 29 | +- Receive immediate feedback on their learning |
| 30 | + |
| 31 | +### File Structure |
| 32 | + |
| 33 | +Quizzes are placed inside a `knowledge-check/` directory under each module: |
| 34 | +``` |
| 35 | +course-name/ |
| 36 | +└── module-1/ |
| 37 | +└── module-2/ |
| 38 | +│ └── knowledge-check/ |
| 39 | +│ └── quiz.md // <-- Quiz file |
| 40 | +└── module-3/ |
| 41 | +
|
| 42 | +``` |
| 43 | + |
| 44 | +### Quiz File Structure |
| 45 | +Each quiz file (`quiz.md`) must contain the following YAML frontmatter: |
| 46 | + |
| 47 | +```yaml |
| 48 | +--- |
| 49 | +title: "Knowledge Check" |
| 50 | +id: "quiz-module-name" |
| 51 | +passing_percentage: 70 |
| 52 | +layout: "quiz" |
| 53 | +type: "quiz" |
| 54 | +questions: |
| 55 | + - id: "q1" |
| 56 | + text: "Your question text here" |
| 57 | + type: "mcq" |
| 58 | + marks: 2 |
| 59 | + options: |
| 60 | + - id: "a" |
| 61 | + text: "Option A text" |
| 62 | + - id: "b" |
| 63 | + text: "Option B text" |
| 64 | + is_correct: true |
| 65 | +--- |
| 66 | +``` |
| 67 | + |
| 68 | +***Frontmatter Fields (Required)*** |
| 69 | +- title: Always "Knowledge Check" for consistency |
| 70 | +- id: Unique quiz ID starts with 'quiz-'(e.g., quiz-intro-meshery, quiz-containers) |
| 71 | +- passing_percentage: Minimum score to pass (typically 70%) |
| 72 | +- layout: Must be "quiz" |
| 73 | +- type: Must be "quiz" |
| 74 | +- questions: Array of question objects |
| 75 | + |
| 76 | +***Question Object Structure*** |
| 77 | +- id: Unique ID per question (e.g., q1, q2) |
| 78 | +- text: The question prompt |
| 79 | +- type: Either "mcq" or "short_answer" |
| 80 | +- marks: Points awarded for correct answer |
| 81 | +- options: Array of answer options (for mcq type) |
| 82 | + |
| 83 | +{{< alert type="info" title="Quick heads up" >}} |
| 84 | +Remember: `layout: "quiz"` and `type: "quiz"` are fixed values that cannot be modified. The system needs these exact words to work properly. |
| 85 | +{{< /alert >}} |
| 86 | + |
| 87 | +### Supported Quiz Types |
| 88 | + |
| 89 | +Layer5 Academy supports these question formats: |
| 90 | + |
| 91 | +***Multiple Choice Questions*** |
| 92 | + |
| 93 | +- Single correct answer |
| 94 | +- Multiple correct answers |
| 95 | +- True/False questions |
| 96 | + |
| 97 | +***Short Answer Questions*** |
| 98 | + |
| 99 | +- Fill-in-the-blank responses |
| 100 | +- Direct text input |
| 101 | + |
| 102 | +### Question Types Examples |
| 103 | + |
| 104 | +**1. Multiple Choice Questions (type: mcq)** |
| 105 | + |
| 106 | +```yaml |
| 107 | +--- |
| 108 | +questions: |
| 109 | + |
| 110 | + # Single Choice: |
| 111 | + - id: "question1" |
| 112 | + text: "Test single choice question" |
| 113 | + type: "mcq" |
| 114 | + marks: 1 |
| 115 | + options: |
| 116 | + - id: "a" |
| 117 | + text: "Option A" |
| 118 | + is_correct: true # add |
| 119 | + - id: "b" |
| 120 | + text: "Option B" |
| 121 | + |
| 122 | + # Multiple Choice: |
| 123 | + - id: "question2" |
| 124 | + text: "Test multiple choice question" |
| 125 | + type: "mcq" |
| 126 | + multiple_answers: true # add |
| 127 | + marks: 2 |
| 128 | + options: |
| 129 | + - id: "a" |
| 130 | + text: "Option A" |
| 131 | + is_correct: true # add |
| 132 | + - id: "b" |
| 133 | + text: "Option B" |
| 134 | + - id: "c" |
| 135 | + text: "Option C" |
| 136 | + is_correct: true # add |
| 137 | + |
| 138 | + # True/False: |
| 139 | + - id: "question3" |
| 140 | + text: "This is a true/false test" |
| 141 | + type: "mcq" |
| 142 | + marks: 1 |
| 143 | + options: |
| 144 | + - id: "true" |
| 145 | + text: "True" |
| 146 | + is_correct: true # add |
| 147 | + - id: "false" |
| 148 | + text: "False" |
| 149 | +--- |
| 150 | +``` |
| 151 | + |
| 152 | +**2. Short Answer Questions (type: short_answer)** |
| 153 | + |
| 154 | +```yaml |
| 155 | +--- |
| 156 | +questions: |
| 157 | + - id: "question4" |
| 158 | + text: "What is the default namespace in Kubernetes?" |
| 159 | + type: "short_answer" # add |
| 160 | + marks: 2 |
| 161 | + correct_answer: "default" |
| 162 | + |
| 163 | + - id: "question5" |
| 164 | + text: "Which kubectl command lists all pods?" |
| 165 | + type: "short_answer" # add |
| 166 | + marks: 2 |
| 167 | + correct_answer: "kubectl get pods" |
| 168 | +--- |
| 169 | +``` |
| 170 | + |
| 171 | +### Post-Frontmatter |
| 172 | + |
| 173 | +After the frontmatter, you can add some content for learner orientation: |
| 174 | +```markdown |
| 175 | +--- |
| 176 | +questions: |
| 177 | + |
| 178 | +--- |
| 179 | +This knowledge check allows you to review your educational progress. Give it a try! |
| 180 | +``` |
| 181 | + |
| 182 | +### Scoring |
| 183 | + |
| 184 | +The system automatically calculates quiz scores based on the marks field for each question. Students must achieve the passing_percentage to complete the quiz successfully. |
| 185 | + |
| 186 | + |
| 187 | +> Find a complete, up-to-date reference for all supported question types in this [example file](https://github.com/layer5io/exoscale-academy/blob/f92b4b72e80be4cc9856fc20fa7f42903413481a/content/learning-paths/98e16360-a366-4b78-8e0a-031da07fdacb/end-to-end-kubernetes/cka-prep/cka/quiz.md?plain=1#L36). |
| 188 | +
|
| 189 | + |
| 190 | +### Frequently Asked Questions |
| 191 | +1. **Must the quiz file be named exactly `quiz.md?`?** |
| 192 | + |
| 193 | + Yes, the filename must be quiz.md for the system to recognize it. |
| 194 | + |
| 195 | +2. Is the `id` field required in the quiz's front matter? |
| 196 | + Yes, use the format "quiz-your-course-name" for consistency. |
| 197 | + |
| 198 | +3. Can I add a quiz directly in the course root instead of a module? |
| 199 | + Yes, you can place quizzes at the course level if needed. |
| 200 | + |
| 201 | + |
| 202 | + |
| 203 | +## How to Add a Lab |
0 commit comments