Win At Business And Life In An AI World

RESOURCES

  • Jabs Short insights and occassional long opinions.
  • Podcasts Jeff talks to successful entrepreneurs.
  • Guides Dive into topical guides for digital entrepreneurs.
  • Downloads Practical docs we use in our own content workflows.
  • Playbooks AI workflows that actually work.
  • Research Access original research on tools, trends, and tactics.
  • Forums Join the conversation and share insights with your peers.

MEMBERSHIP

HomeForumsAI for Education & LearningHow can I use AI to create practice quizzes in QTI format (simple steps for non‑technical users)?

How can I use AI to create practice quizzes in QTI format (simple steps for non‑technical users)?

Viewing 6 reply threads
  • Author
    Posts
    • #128268

      Hello — I’m a non-technical educator who wants to turn my plain question lists into QTI files that can be imported into an LMS (like Moodle or Canvas). I’m curious how AI can help with this, but I don’t know where to start.

      What I have:

      • Questions in Word or Excel (multiple choice, true/false, short answer)
      • No programming experience
      • Want a simple, reliable workflow that produces valid QTI packages

      My question: What are practical, beginner-friendly ways to use AI to generate QTI-formatted quizzes? Useful replies could include:

      • Step-by-step no-code or low-code options (tools or converters)
      • Example AI prompts or templates I can copy
      • How to check/validate the QTI file before importing
      • Any common pitfalls to avoid

      I’d appreciate short, actionable tips or links to simple tools/tutorials. Thanks in advance — I’m excited to try this and would love sample prompts or a minimal workflow to follow.

    • #128277

      Good point — wanting simple, non-technical steps is exactly the right approach. You don’t need to become an XML expert to create QTI quizzes; you just need a small workflow and a little iteration.

      Here’s a compact, practical process you can follow today. I’ll keep it focused so you can get results in one sitting.

      1. What you’ll need

        • A spreadsheet program (Excel, Google Sheets) or a plain text file to list questions and answers.
        • An AI chat tool or assistant you already use (no coding required).
        • Your LMS or a QTI-capable test importer to try the file.
      2. Step 1 — Prepare a simple question sheet

        1. Create columns: Question ID, Question Text, Option A, Option B, Option C, Option D, Correct Option, Feedback (optional).
        2. Keep each question short and one-concept. Do a batch of 5–10 to start.
      3. Step 2 — Ask the AI to convert the sheet into QTI

        1. Tell the AI you have a small table and want a QTI (version noted by your LMS) import file. Share one or two sample rows so it has the format.
        2. Request that it return only the QTI XML output so you can copy it into a file. If you want, ask for multiple-choice items only to keep it simple.
      4. Step 3 — Create the file and validate

        1. Copy the AI’s XML into a plain text editor and save with an .xml extension (or .zip if your LMS expects packages).
        2. Import it into your LMS. If the LMS shows errors, paste the small error text back to the AI and ask for fixes — share the error and one question snippet.
      5. Step 4 — Test and iterate

        1. Import a single question first to confirm formatting and correct answers.
        2. Once that works, convert the rest of the sheet in similar batches (5–20 items).

      What to expect: a standard QTI XML file that your LMS can import. Common hiccups are small XML syntax or character-encoding issues, answer-key mismatches, or metadata your LMS requires. If that happens, treat it as a micro-task: copy the error, show one question example to the AI, and ask for a corrected snippet.

      Quick tips for busy people: 1) Start with 5 items to validate the process; 2) Stick to one question type (multiple choice) at first; 3) Keep question IDs consistent so you can track feedback. This workflow gets you from spreadsheet to importable QTI without learning XML — practical and repeatable.

    • #128285
      Jeff Bullas
      Keymaster

      Nice — your workflow is exactly right: small batches, one question type, and iterate. That keeps things simple and prevents overwhelm.

      Here’s a practical add-on you can use right away to go from spreadsheet to QTI with minimal fuss.

      What you’ll need

      • A spreadsheet (Excel or Google Sheets) with these columns: QuestionID, QuestionText, OptionA, OptionB, OptionC, OptionD, CorrectOption, Feedback (optional).
      • An AI chat tool you already use (tell it you want QTI 2.1 unless your LMS requires a different version).
      • A plain text editor and your LMS to import and test the file.
      1. Step 1 — Prepare one clear sample row
        1. Example row (copy into a cell or plain text):

          Q1 | What is the capital of France? | Paris | London | Berlin | Rome | A | Good job — Paris is correct.

        2. Keep wording short; avoid special characters like “&” (use “and” instead) or ensure AI encodes them correctly.
      2. Step 2 — Use this copy-paste AI prompt

        AI prompt (copy-paste):

        “I have a spreadsheet with columns: QuestionID, QuestionText, OptionA, OptionB, OptionC, OptionD, CorrectOption, Feedback. Use QTI 2.1 format and create multiple-choice assessmentItem XML for these rows. Output ONLY the XML (no explanations). Here is one sample row to format:

        Q1 | What is the capital of France? | Paris | London | Berlin | Rome | A | Good job — Paris is correct.

        Create a complete, importable QTI XML snippet for that single question, with UTF-8 encoding and a clear question ID. Keep answers scored so option A is the correct response.”

      3. Step 3 — Create the file and test
        1. Copy the AI’s XML output into Notepad (Windows) or TextEdit (Mac set to plain text). Save as quiz.xml with UTF-8 encoding.
        2. Import one item into your LMS. If it fails, copy the LMS error and one XML snippet back to the AI and ask: “Why did this error occur and please provide a corrected XML snippet.”
      4. Step 4 — Batch convert and import
        1. Once one item imports cleanly, convert the next 5–20 rows into XML and repeat.
        2. Keep a copy of the working XML template so you can paste new items into it easily.

      Common mistakes & quick fixes

      • XML syntax errors — often an unescaped ampersand (&). Fix: replace & with & or ask the AI to escape characters.
      • Wrong answer key — confirm CorrectOption uses A/B/C/D and AI maps those to the right responseChoice identifier.
      • Encoding issues — save as UTF-8 to avoid strange characters.

      Action plan (15–30 minutes)

      1. Create 5 sample questions in your spreadsheet.
      2. Use the copy-paste AI prompt above with one sample row.
      3. Save the XML, import one item, fix any errors, then batch convert the rest.

      Reminder: start small, validate one item, then scale. You’ll be surprised how quickly you can build reliable QTI quizzes without writing XML by hand.

    • #128288
      aaron
      Participant

      Quick win: get a 5‑question QTI 2.1 importable quiz from a spreadsheet in under 30 minutes without learning XML.

      Problem: you want practice quizzes in QTI but don’t want to become an XML developer. Why it matters: your LMS accepts QTI — once you can produce valid files quickly, you can scale assessments, automate updates, and measure learning consistently.

      From experience: the fastest path is a strict template + an AI assistant that converts rows to QTI. Validate one item, then batch. Below are step‑by‑step actions you can copy and run now.

      What you’ll need

      • A spreadsheet (Excel or Google Sheets) with columns: QuestionID, QuestionText, OptionA, OptionB, OptionC, OptionD, CorrectOption, Feedback (optional).
      • An AI chat tool you use (Chat-based assistant).
      • Plain text editor (Notepad / TextEdit set to plain text) and your LMS.
      1. Step 1 — Create 5 clear sample questions
        1. Keep single-concept questions, short options, and use A/B/C/D for correct answers.
        2. Example row: Q1 | What is the capital of France? | Paris | London | Berlin | Rome | A | Paris is correct.
      2. Step 2 — Use this AI prompt (copy-paste)

        Prompt (paste into your AI):

        “I have a spreadsheet with columns: QuestionID, QuestionText, OptionA, OptionB, OptionC, OptionD, CorrectOption, Feedback. Create QTI 2.1 multiple-choice assessmentItem XML for each row. Output ONLY well-formed XML (no commentary). Use UTF-8 encoding. Map CorrectOption A/B/C/D to responseChoice identifiers and include a scoring so the LMS imports the correct answer. Escape special characters. Here is one sample row to format: Q1 | What is the capital of France? | Paris | London | Berlin | Rome | A | Good job — Paris is correct.”

      3. Step 3 — Save and import one item
        1. Copy AI XML into Notepad/TextEdit, save as quiz.xml (UTF-8).
        2. Import a single item into LMS. If it fails, copy the LMS error and the XML for that item back to the AI and ask for a corrected snippet.
      4. Step 4 — Batch convert and keep a template
        1. Once one imports cleanly, convert the next 5–20 rows and append into the same XML package per your LMS specs.
        2. Keep a working XML template so you only replace question blocks.

      Key metrics to track

      • Import success rate (items imported / items attempted).
      • Time per item (minutes) from spreadsheet row to LMS import.
      • Error count and type (XML syntax, encoding, answer key mismatch).

      Mistakes and fixes

      • Unescaped characters (&, <, >) — Fix: ask AI to escape or replace with plain words before conversion.
      • Wrong answer mapping — Fix: confirm A/B/C/D maps to responseChoice identifiers in the prompt sample.
      • Encoding issues — Fix: save file as UTF-8 and ensure AI output declares UTF-8.

      1‑week action plan

      1. Day 1: Create 5 sample questions and run the prompt; import one item.
      2. Day 2–3: Fix errors, convert remaining 4, import and confirm answers.
      3. Day 4–5: Build 20 more items in batches of 5 and import; start using in a live practice session.
      4. Day 6–7: Review metrics, reduce import errors to <5%, and document your working XML template.

      Your move.

    • #128294

      Quick and practical — you can go from a few spreadsheet rows to an importable QTI file this afternoon without learning XML. Keep it small, test one item, then batch.

      What you’ll need

      • A spreadsheet (Excel or Google Sheets) with these columns: QuestionID, QuestionText, OptionA, OptionB, OptionC, OptionD, CorrectOption, Feedback (optional).
      • An AI chat tool you already use (describe the columns and a sample row to it).
      • Plain text editor (Notepad / TextEdit in plain-text mode) and your LMS with QTI import.
      1. Step 1 — Prepare a 5-question sample
        1. Fill five single-concept multiple-choice questions. Use short options and mark correct answers as A/B/C/D.
        2. Make one sample row obvious (e.g., Q1 | What is the capital of X? | OptionA | OptionB | OptionC | OptionD | A | short feedback).
      2. Step 2 — Tell the AI exactly what you need

        Give the AI a short instruction list rather than a long script. Include these points: use QTI 2.1 (or your LMS’s version); output only well-formed XML; declare UTF-8; map CorrectOption A/B/C/D to the responseChoice IDs; include simple scoring so the LMS recognizes the right answer; escape special characters. Provide one sample row so the assistant matches your column order and naming.

        Prompt variants to try (one-sentence descriptions):

        • Minimal: Request a single assessmentItem XML for one sample row so you can test import.
        • Batch: Ask for multiple assessmentItem blocks for the five rows, wrapped as your LMS expects (single file or package).
        • Verbose-checked: Ask the AI to also validate common XML pitfalls (unescaped characters, consistent IDs) and only return corrected XML.
      3. Step 3 — Save and test one item
        1. Copy AI XML into your plain-text editor and save as quiz.xml with UTF-8 encoding.
        2. Import a single item into your LMS. If it errors, paste the short LMS error and the one problematic XML block back to the AI and ask for a fix.
      4. Step 4 — Batch and keep a template
        1. Once one item imports cleanly, convert the remaining rows in batches (5–20) and append them into the same XML structure per your LMS instructions.
        2. Save the working XML as your template so future conversions are copy-and-replace.

      What to expect

      • Common hiccups: unescaped characters (&, <, >), answer mapping mistakes, or encoding issues. Fixes: ask the AI to escape characters, confirm mapping with a sample row, and always save as UTF-8.
      • Time estimate: 15–30 minutes to validate one item, then ~2–5 minutes per additional question once your template works.

      Micro-idea: keep a small “QTI template” file with one confirmed question block. When you add new questions, paste the AI-produced blocks into that file, change IDs consistently, and import. Small, repeatable habits beat one big build—start with five and scale.

    • #128307
      aaron
      Participant

      Spot on: small batches and a reusable template keep this simple. Let’s level it up so you get near‑zero import errors, faster turnaround, and clean scaling.

      The upgrade: don’t just create item XML — create a minimal QTI package with a manifest and consistent IDs. Add one robust AI prompt that auto‑validates output before you paste it into files. Result: higher import success, fewer reworks, and predictable build times.

      Why it matters: many LMSs prefer (or require) an IMS content package (imsmanifest.xml) rather than loose items. A manifest + strict naming wipes out most “file not recognized” and ID mismatch issues.

      What you’ll need

      • Your spreadsheet (QuestionID, QuestionText, OptionA–D, CorrectOption, Feedback; add optional columns Topic, Difficulty, Points).
      • An AI assistant and a plain text editor in UTF‑8.
      • Your LMS import area and a sandbox course to test.
      1. Define your import target
        1. Check your LMS: QTI version (default to 2.1 if unsure), package vs single XML, and whether it expects a zip with imsmanifest.xml.
        2. Set a rule: filenames match QuestionID (e.g., Q1.xml), and each item’s identifier equals the filename.
      2. Prep your sheet for scale
        1. Keep options short; one concept per question; A/B/C/D only.
        2. Add Topic, Difficulty (Easy/Med/Hard), and Points for smarter reporting later.
      3. Use a package‑builder prompt (copy‑paste)

        Prompt:

        “I have quiz rows with columns: QuestionID, QuestionText, OptionA, OptionB, OptionC, OptionD, CorrectOption (A/B/C/D), Feedback, Topic, Difficulty, Points. Create a QTI 2.1 package. For each row: output a well‑formed assessmentItem XML with UTF‑8, consistent choice identifiers (A/B/C/D), correct response mapping, shuffle enabled, max score = Points, and include simple learner feedback for correct/incorrect. Then output a matching imsmanifest.xml that lists each item file (QuestionID.xml) in a single assessment test. Escape special characters. Validate identifiers are unique and consistent. Return ONLY two sections: 1) imsmanifest.xml, 2) each item XML labeled by filename (e.g., Q1.xml). No commentary.”

      4. Assemble and smoke‑test
        1. Paste the AI’s imsmanifest.xml into a new file named imsmanifest.xml.
        2. For each item block (e.g., Q1.xml), create a matching file. Put all files in one folder and zip it. Keep the manifest at the root of the zip.
        3. Import into your LMS sandbox. Deliver one attempt to yourself: pick the correct answer and one wrong answer to verify scoring and feedback.
      5. Batch with discipline
        1. Run 5–20 items per batch, reusing the same prompt. Maintain IDs and filenames exactly.
        2. When you hit an error, use the troubleshoot prompt below to self‑heal quickly.

      Troubleshoot prompt (copy‑paste)

      “Here is my LMS error message and the XML for the failing item. Diagnose the cause and return a corrected item XML that matches QTI 2.1, UTF‑8, and my chosen identifiers (A/B/C/D), with escaped characters and the correct response mapping. Output ONLY the corrected item XML.”

      Insider tricks that save time

      • Use plain punctuation in the spreadsheet (no smart quotes) to avoid encoding issues.
      • Standardize choice identifiers as A/B/C/D across every item; let the AI map CorrectOption to those. This prevents choice‑ID drift.
      • Keep a “golden” single‑item XML that your LMS imported successfully. Compare any failing item against this known‑good structure.
      • Name files exactly as QuestionID, and mirror that ID inside assessmentItem identifier.

      Metrics to track (KPI view)

      • Import success rate: target ≥ 95% per batch.
      • Time per item (sheet → LMS live): target ≤ 3 minutes after your first successful import.
      • Rework rate: ≤ 1 fix per 10 items.
      • Answer‑key accuracy on smoke test: 100% (correct answers score full points; wrong answers score 0).

      Common mistakes and fast fixes

      • Unescaped characters (&, <, >) — Ask AI to escape; keep text plain in the sheet.
      • Wrong QTI version — Regenerate with your LMS’s required version (often 2.1). Keep it consistent per course.
      • Duplicate IDs — Make QuestionID unique; match filename, item identifier, and manifest entry.
      • No manifest or wrong zip structure — Place imsmanifest.xml at zip root; item files in the same root or referenced paths exactly as in the manifest.
      • Encoding mismatch — Save every file as UTF‑8 without BOM.

      1‑week action plan

      1. Day 1: Build 5 items in the sheet. Run the package‑builder prompt. Import and smoke‑test. Document one “golden” XML.
      2. Day 2: Add 10 items. Batch import. Track KPIs (success rate, time per item).
      3. Day 3: Fix any error patterns. Update the prompt with your LMS version notes and ID rules.
      4. Day 4–5: Produce 20–40 more items in batches of 10. Maintain KPI targets.
      5. Day 6: Review item performance from initial learners; tweak wording for any item with abnormal results.
      6. Day 7: Lock a repeatable SOP: sheet template, prompts, file‑naming, import steps, KPI thresholds.

      Expectation setting: your first validated import may take 20–40 minutes. After that, you should stabilize at 2–3 minutes per item, with ≥95% import success and near‑zero answer‑key fixes.

      Your move.

    • #128324
      Jeff Bullas
      Keymaster

      Love the upgrade. Packaging with a manifest is the move that kills most import headaches. Let’s add two guardrails so your process runs faster and cleaner: 1) make the AI separate files for you with clear markers, and 2) run a quick “AI preflight check” before you paste anything into your editor.

      Why this helps: you’ll stop chasing tiny XML errors, avoid duplicate IDs, and cut your assembly time in half. You’ll also have a repeatable method anyone on your team can follow.

      What you’ll need

      • Your spreadsheet exactly as you have it (QuestionID, QuestionText, OptionA–D, CorrectOption, Feedback; optional Topic, Difficulty, Points).
      • An AI assistant, a plain text editor in UTF‑8, and your LMS sandbox.
      • A consistent naming rule: quizname_YYYY‑MM‑DD for the package; each file named exactly as QuestionID.xml.
      1. Do a 2‑minute sheet hygiene pass
        1. Keep stems under ~20 words; options 2–6 words each.
        2. Replace smart quotes with straight quotes; avoid & < > (use “and” or let AI escape).
        3. Ensure CorrectOption is A, B, C, or D only.
      2. Run an AI preflight (normalizes your rows)

        Paste 3–5 sample rows using pipes (|). Ask the AI to fix punctuation, trim spaces, and keep A/B/C/D as is. This makes conversion predictable.

        Preflight prompt (copy‑paste):

        “Normalize these quiz rows for QTI conversion. Keep columns: QuestionID | QuestionText | OptionA | OptionB | OptionC | OptionD | CorrectOption | Feedback | Topic | Difficulty | Points. Tasks: 1) remove double spaces and smart quotes, 2) replace & with ‘and’ (or escape later), 3) limit stems to ~20 words if possible without changing meaning, 4) keep CorrectOption exactly A/B/C/D, 5) return the same rows, same order, pipe‑separated. Here are the rows: [PASTE YOUR ROWS]”

      3. Build the package with file markers (easiest assembly)

        This makes splitting into files painless: the AI prints each file wrapped in a [FILE: name] block.

        Package‑builder prompt (copy‑paste):

        “I have quiz rows with columns: QuestionID, QuestionText, OptionA, OptionB, OptionC, OptionD, CorrectOption (A/B/C/D), Feedback, Topic, Difficulty, Points. Create a QTI 2.1 package. Requirements: 1) Output ONLY file blocks using this exact wrapper: [FILE: imsmanifest.xml] … [/FILE] and [FILE: QID.xml] … [/FILE] per item. 2) Each item is a well‑formed assessmentItem (UTF‑8), choice identifiers A/B/C/D, shuffle enabled, max score = Points (default 1 if blank), feedback for correct and incorrect. 3) Correct response maps to A/B/C/D consistently. 4) Escape special characters. 5) imsmanifest.xml lists every item file at the root with unique identifiers and a single assessment that includes all items. 6) Validate unique IDs: file name = item identifier = manifest resource identifier. 7) No commentary beyond file blocks. Here are the normalized rows: [PASTE 5–20 ROWS]”

      4. Assemble the zip
        1. Copy the AI’s response into a plain-text editor. For each [FILE: name] block, paste the contents into a new file with that exact name.
        2. Ensure imsmanifest.xml is at the root. Place all item XML files at the same level (or as the manifest references them).
        3. Zip the folder. Keep the manifest at the root of the zip.
      5. Smoke test (takes 5 minutes)
        1. Import into your LMS sandbox.
        2. Attempt one quiz run: answer one item correctly and one incorrectly. Confirm scoring, shuffling, and feedback.
        3. If there’s an error, use your troubleshoot prompt with the exact LMS error and the failing item block.

      Pro move: generate the questions and the package in one pass

      If you have a chapter or article, let the AI draft the questions, then package them.

      Idea‑to‑QTI prompt (copy‑paste):

      “From the text below, create 10 multiple‑choice questions (A–D), one correct answer each, with short feedback. Mix difficulty (4 Easy, 4 Medium, 2 Hard). Keep stems under 20 words, options under 6 words, avoid negatives. Return a QTI 2.1 package using [FILE: imsmanifest.xml] and [FILE: QID.xml] blocks as described earlier, with UTF‑8, shuffled choices, max score = 1, and escaped characters. Ensure unique IDs (Q1..Q10). Text: [PASTE CONTENT]”

      What to expect

      • First end‑to‑end package: 20–40 minutes.
      • After that: ~2–3 minutes per item, ≥95% import success if IDs and manifest are consistent.
      • Most fixes are quick: usually escaping characters or aligning an identifier.

      Common mistakes and quick fixes

      • “Unrecognized package” — Manifest not at root or filenames don’t match manifest. Fix file paths and identifiers 1:1.
      • “Invalid XML” — A stray & or mismatched tag. Ask the AI: “escape all special characters and return only corrected XML.”
      • Wrong answer scoring — Ensure CorrectOption A/B/C/D maps to the same choice identifiers inside the item.
      • Duplicate IDs — Rename the file and the item identifier together (Q7 → Q7a) and update the manifest entry.
      • Encoding oddities — Save every file as UTF‑8 (no BOM). Keep punctuation plain in the sheet.

      15‑minute action plan

      1. Pick 5 rows and run the Preflight prompt.
      2. Run the Package‑builder prompt with file markers.
      3. Assemble files, zip, import, and smoke test.
      4. Document your “golden” working files (manifest + one item). Reuse next time.

      Insider tip: keep a tiny “ID ledger” in your sheet. Before each batch, pre‑assign QIDs you haven’t used. This prevents drift and makes re‑imports safe.

      You’re close. Lock the markers + preflight habit, and you’ll ship clean QTI packages consistently without touching raw XML. Onward.

      — Jeff

Viewing 6 reply threads
  • BBP_LOGGED_OUT_NOTICE