Moodle XML Format

Minivejledning til Formulas Questions & Quiz-typer

Velkommen til denne minivejledning! Her finder du en samling af tricks og best practices til at arbejde med Moodle XML-formatet, specifikt til Formulas Questions og andre quiz-typer.

Klik på hver sektion nedenfor for at åbne den og se detaljerne. Kun én sektion kan være åben ad gangen.

1. Grundstruktur

Den grundlæggende struktur for en Moodle XML quiz-fil:

<?xml version="1.0" encoding="UTF-8"?>
<quiz>
  <question type="formulas">
    <!-- Spørgsmål her -->
  </question>
</quiz>

Dette er fundamentet for alle Moodle quiz XML-filer. Hver <question> har en type-attribut der bestemmer spørgsmålstypen.

2. Formulas Question Type - Variable

A. Variable Definitioner

Formulas questions bruger to typer variabler:

<varsrandom><text>
d1={15:25};          <!-- Tilfældige værdier mellem 15 og 25 -->
d2={70:100}; 
F1_int={10:30};
</text></varsrandom>

<varsglobal><text>
F1_kN = F1_int / 10;    <!-- Beregninger med variabler -->
F1 = F1_kN * 1000;   
g = 9.82;               <!-- Konstanter -->
r1 = (d1 / 2) / 1000;   
A1 = pi * r1 * r1;      <!-- Pi er indbygget! -->
</text></varsglobal>
💡 Tip: Pi er indbygget i systemet og kan bruges direkte i beregninger.
3. Billeder og Styling

A. Billeder med Base64

Billeder kan inkluderes direkte i XML-filen med Base64-encoding:

<questiontext format="html">
  <text><![CDATA[
    <img class="img-fluid" src="@@PLUGINFILE@@/donkraft.png" 
         width="400" height="291">
  ]]></text>
  <file name="donkraft.png" path="/" encoding="base64">
    iVBORw0K...
  </file>
</questiontext>

B. jQuery til Inputfelt-styling

Du kan style inputfelter med jQuery:

<script>
$(document).ready(function() {
  $("input.formulas_number").css("width", "300px");
});
</script>

C. Afstand mellem elementer

<div style="height: 2em;"></div>  <!-- Lodret afstand -->

D. LaTeX-formler

\( F_{op} \)                      <!-- Inline matematik -->
\( g = 9.82 \text{ m/s}^2 \)
4. Answer Configuration

A. Fejltolerance

Du kan bruge enten absolut eller relativ fejl:

<correctness>
  <text><![CDATA[_err < 0.01]]></text>      <!-- Absolut fejl -->
</correctness>

<!-- Alternativt: -->
<correctness>
  <text><![CDATA[_relerr < 0.02]]></text>    <!-- Relativ fejl (2%) -->
</correctness>
📌 Regel: Hvis numerical formula = answer type eller lavere: kan bruge relative fejl. Hvis algebraic, kan kun bruge absolutte fejl.

B. Enheder med straf

<unitpenalty>
  <text>0.2</text>                          <!-- 20% point-fradrag -->
</unitpenalty>
<postunit>
  <text>N</text>                            <!-- Korrekt enhed -->
</postunit>

Point-beregning eksempel:

  • Korrekt tal + korrekt enhed → 5.0 point
  • Korrekt tal + forkert/manglende enhed → 5 - (0.2 · 5) = 4.0 point
  • Forkert tal → 0 point (uanset enhed)

C. Answer Type Codes

<answertype>
  <text>1000</text>     <!-- 1000 = Numerical formula -->
</answertype>
5. Andre Quiz-typer

A. Select Missing Words

  • [[1]] for første manglende ord
  • [[2]] for andet manglende ord
  • Ubegrænset: ord kan bruges flere gange
  • Grupper: forskellige grupper til forskellige typer ord

B. Drag and Drop onto Image

📐 Billedstørrelser:
  • Anbefalet: 600-800px bred, under 600px høj
  • Maksimal: 2000 x 2000 pixels
  • Filstørrelse: Hold under 200-500 KB
  • Draggable images: Max 150 x 100 pixels

Grupper: Samme farve = samme gruppe. Choices med "Unlimited" kan bruges flere steder.

C. Embedded Answers (Cloze)

{1:MULTICHOICE:=København~Århus~Odense}
{1:SHORTANSWER:=Berlin}
{1:NUMERICAL:=3.14}

Syntaks:

  • = markerer korrekt svar
  • ~ separerer svarmuligheder
  • # starter feedback

D. Description Question

  • Kan indlejre video, lyd, eksterne links
  • Bruges IKKE ved random questions fra kategori
  • God til at give kontekst før en gruppe spørgsmål

E. Matching Question

  • Minimum 2 spørgsmål og 3 svar
  • Kan have ekstra forkerte svar (blank question)
  • Automatisk blanding af svarmuligheder
6. Best Practices
  1. CDATA wrapper for HTML: <![CDATA[...]]> beskytter HTML-kode
  2. Variabel-navngivning: Brug beskrivende navne (F1, F2, rho_in, rho_out)
  3. Kommentarer i varsglobal: # Pascals lov
  4. Strukturerede delspørgsmål: <partindex> nummerering (0, 1, 2...)
  5. Placeholder for input: {_0}{_u} hvor _0 = input, _u = unit
  6. Konsistent point-fordeling: Standardpoint opdelt i lige dele pr. delspørgsmål
7. Avancerede Teknikker

A. Flere enheder mulige

<postunit>
  <text>kg/m^3</text>    <!-- Potenser med ^ -->
</postunit>

B. Feedback-struktur

<correctfeedback format="html">
  <text></text>
</correctfeedback>
<partiallycorrectfeedback format="html">
  <text></text>
</partiallycorrectfeedback>
<incorrectfeedback format="html">
  <text></text>
</incorrectfeedback>

C. Formatering af draggable text

Du kan formatere draggable text med følgende tags:

  • <sub>, <sup> for sub/superscript
  • <b>, <i>, <em>, <strong> for styling
  • <br/> for linjeskift