Giải thích định dạng Moodle XML, kèm tệp ví dụ tải về
Moodle XML là định dạng tệp mà Moodle dùng để xuất câu hỏi từ ngân hàng câu hỏi và nhập câu hỏi vào một khóa học hay một trang Moodle khác. Định dạng này chứa được mọi loại câu hỏi có sẵn của Moodle, với hình ảnh và công thức nằm ngay trong tệp, vì vậy các công cụ chuyển đề thi thành câu hỏi Moodle đều xuất ra định dạng này. Bạn hiếm khi phải tự viết tay, nhưng biết bên trong có gì sẽ giúp ích khi việc nhập bị lỗi hoặc một câu hỏi hoạt động khác với bạn nghĩ.
Bài này đi qua từng phần của một tệp thật. Cả hai tệp của ví dụ đều tải về được: một đề Word ngắn, và tệp Moodle XML mà công cụ chuyển đổi đề thi miễn phí của ExamQR tạo ra từ đề đó.
Tải ví dụ về
- Đề Word (moodle-xml-example-vi.docx): chín câu hỏi trong bốn phần, có một hình vẽ và một công thức.
- Tệp Moodle XML (moodle-xml-example-vi.xml): sẵn sàng để nhập vào một khóa học thử.
Cấu trúc chung của một tệp
Một tệp Moodle XML là một phần tử <quiz> chứa danh sách các phần tử <question>. Thuộc tính type cho biết mỗi phần tử là loại gì. Tệp ví dụ có các loại sau:
| Loại | Ý nghĩa | Trong ví dụ |
|---|---|---|
category | Không phải câu hỏi: danh mục trong ngân hàng câu hỏi, nơi lưu các câu hỏi đứng sau nó | Mỗi phần của đề một mục |
multichoice | Trắc nghiệm nhiều lựa chọn, có một hoặc nhiều đáp án đúng | Câu 1 đến câu 5 |
truefalse | Một mệnh đề đúng hoặc sai | Câu 6, mỗi ý một câu |
numerical | Câu trả lời là một số, có thể kèm sai số cho phép | Câu 7 |
shortanswer | Một từ hoặc cụm từ do thí sinh gõ vào, được so với các đáp án chấp nhận | Câu 8 |
essay | Bài viết do giáo viên chấm | Câu 9 |
Moodle còn có matching, description (đoạn văn không cần trả lời, như một bài đọc), gapselect, ddwtos và các loại khác. Câu hỏi thuộc loại do plugin bổ sung chỉ nhập được trên những trang đã cài các plugin đó.
Danh mục
<question type="category">
<category>
<text>$course$/top/moodle-xml-example/Phần 1. Trắc nghiệm nhiều lựa chọn</text>
</category>
</question>
Mọi câu hỏi đứng sau mục này được đưa vào danh mục Phần 1. Trắc nghiệm nhiều lựa chọn, nằm trong một danh mục mang tên tệp, ở cấp cao nhất của ngân hàng câu hỏi của khóa học ($course$). Trên trang nhập của Moodle, ô Get category from file (Lấy danh mục từ tệp) quyết định có dùng các mục này hay không. Bỏ chọn ô này để đưa mọi câu hỏi vào danh mục do bạn chọn.
Thành phần chung của mọi câu hỏi
<question type="multichoice">
<name><text><![CDATA[Q1: Thiết bị nào vẫn giữ được dữ liệu khi tắt máy tính?]]></text></name>
<questiontext format="html">
<text><![CDATA[<p>Thiết bị nào vẫn giữ được dữ liệu khi tắt máy tính?</p>]]></text>
</questiontext>
<generalfeedback format="html"><text></text></generalfeedback>
<defaultgrade>1.0000000</defaultgrade>
<penalty>0.0000000</penalty>
<hidden>0</hidden>
…
- name là tên bạn thấy trong danh sách của ngân hàng câu hỏi, học sinh không nhìn thấy. Công cụ chuyển đổi đặt số thứ tự câu ở đầu tên, nên ngân hàng câu hỏi giữ đúng thứ tự của bạn.
- questiontext là nội dung câu hỏi dưới dạng HTML.
CDATAcho phép đặt HTML bên trong XML mà không phải thoát (escape) từng dấu<. - generalfeedback được hiện cho học sinh sau khi trả lời, nếu tuỳ chọn xem lại của bài kiểm tra cho phép. Lời giải viết trong tệp Word sau "Lời giải:" được đưa vào đây.
- defaultgrade là điểm của câu hỏi; penalty là số điểm bị trừ cho mỗi lần trả lời sai, ở các bài kiểm tra cho làm lại nhiều lần.
Trắc nghiệm nhiều lựa chọn
<single>true</single>
<shuffleanswers>true</shuffleanswers>
<answernumbering>ABCD</answernumbering>
<answer fraction="0"><text><![CDATA[RAM]]></text></answer>
<answer fraction="100"><text><![CDATA[Ổ đĩa cứng]]></text></answer>
<answer fraction="0"><text><![CDATA[Bộ nhớ đệm CPU]]></text></answer>
<answer fraction="0"><text><![CDATA[Card đồ họa]]></text></answer>
- fraction là phần điểm mà một đáp án nhận được, tính theo phần trăm: 100 cho đáp án đúng, 0 cho các đáp án còn lại.
- single là
truekhi có một đáp án đúng (nút chọn tròn) vàfalsekhi có nhiều đáp án đúng (ô đánh dấu). Ở câu 5 của ví dụ, Python và Java mỗi đáp án cófraction="50", còn hai phương án sai cófraction="-100", nên đánh dấu sai một phương án sẽ mất hết điểm đã được; điểm một câu trong Moodle không bao giờ dưới 0. - shuffleanswers cho phép Moodle đảo thứ tự phương án cho từng học sinh, nếu bài kiểm tra cũng cho phép. Câu 2 kết thúc bằng "Tất cả các phương án trên", phương án này phải luôn đứng cuối, mà Moodle không giữ cố định riêng một phương án được, nên công cụ chuyển đổi ghi
falsecho câu đó và báo cho bạn biết.
Đúng hoặc sai
Câu hỏi truefalse của Moodle chỉ chứa một mệnh đề. Vì vậy, một câu Word có bốn ý a) đến d) trở thành bốn câu hỏi Moodle, mỗi câu được một phần tư số điểm (defaultgrade 0.25), và lời dẫn chung được lặp lại phía trên từng ý:
<question type="truefalse">
<questiontext format="html"><text><![CDATA[<p>Hãy cho biết mỗi phát biểu sau về mạng máy tính là đúng hay sai.</p>
<p><b>b)</b> Internet là một mạng duy nhất do một công ty sở hữu.</p>]]></text></questiontext>
<defaultgrade>0.2500000</defaultgrade>
<answer fraction="0"><text>true</text></answer>
<answer fraction="100"><text>false</text></answer>
Trả lời ngắn và câu trả lời là số
<question type="numerical">
…
<answer fraction="100"><text>11</text><tolerance>0</tolerance></answer>
<question type="shortanswer">
…
<usecase>0</usecase>
<answer fraction="100"><text>Ctrl+C</text></answer>
- Đáp án là một số thì thành câu
numerical, nên "11", "11.0" và " 11" đều được chấp nhận. tolerance cho phép một sai số, ví dụ 0.5 với các giá trị đo đạc. - Các đáp án khác thành câu
shortanswer. usecase bằng 0 nghĩa là không phân biệt chữ hoa, chữ thường. Nhiều đáp án được chấp nhận là nhiều phần tử<answer>, mỗi phần tử có fraction 100.
Tự luận
<question type="essay">
…
<responseformat>editor</responseformat>
<responserequired>1</responserequired>
<responsefieldlines>15</responsefieldlines>
<attachments>0</attachments>
<graderinfo format="html"><text></text></graderinfo>
Bài tự luận do giáo viên chấm nên không có đáp án đúng. responseformat editor cho học sinh một khung soạn thảo cao 15 dòng. graderinfo chỉ người chấm nhìn thấy; khi đề của bạn có đáp án mẫu cho câu đó, đáp án được đặt ở đây.
Hình ảnh
<questiontext format="html">
<text><![CDATA[<p>… Cạnh dài nhất có độ dài bao nhiêu?</p>
<p><img src="@@PLUGINFILE@@/1794550051_a560c4eabe47ff62_001.png" alt="" /></p>]]></text>
<file name="1794550051_a560c4eabe47ff62_001.png" path="/" encoding="base64">iVBORw0KGgo…</file>
</questiontext>
Hình ảnh đi kèm ngay trong tệp. Phần tử <file> chứa hình đã mã hoá thành văn bản base64, và HTML trỏ tới hình bằng @@PLUGINFILE@@, được Moodle thay bằng địa chỉ của tệp đã lưu sau khi nhập. Liên kết tới một hình trên trang web khác cũng dùng được, nhưng sẽ hỏng khi trang đó thay đổi.
Công thức
<p>Đâu là các nghiệm của phương trình \(x^2-5x+6=0\)?</p>
Công thức (Equation) của Word được ghi dưới dạng TeX, nằm giữa \( và \). Moodle hiển thị nó thành công thức nhờ bộ lọc MathJax, vốn được bật sẵn. Nếu học sinh thấy mã thay vì công thức, hãy nhờ quản trị viên trang bật bộ lọc MathJax cho khóa học.
Nhập tệp ví dụ
- Mở một khóa học bạn có thể dùng để thử và vào ngân hàng câu hỏi của khóa học đó (trong menu More (Thêm) của khóa học, chọn Question bank (Ngân hàng câu hỏi), hoặc Question banks ở các phiên bản mới).
- Chọn Import (Nhập), chọn Moodle XML format (định dạng Moodle XML), kéo tệp .xml vào ô chọn tệp và bấm Import.
- Moodle liệt kê các câu hỏi đã đọc được. Bấm Continue (Tiếp tục); câu hỏi nằm trong danh mục moodle-xml-example và bốn phần của nó.
- Xem trước câu 3 (có hình) và câu 4 (có công thức) để kiểm tra cả hai đều hiển thị đúng.
Tự sửa tệp bằng tay
- Dùng trình soạn thảo văn bản thuần có lưu được UTF-8, không dùng phần mềm soạn thảo như Word.
- Giữ HTML bên trong
CDATA. Ở ngoài CDATA, viết<thay cho<và&thay cho&. - Chỉ một thẻ không được đóng cũng khiến Moodle từ chối cả tệp. Hãy mở tệp bằng trình duyệt trước: tệp lỗi sẽ hiện dòng bị lỗi.
- Nhập vào một khóa học thử trước khi nhập vào khóa học thật, và xem trước vài câu hỏi.
Tạo tệp từ đề Word của bạn
Soạn đề trong Word như bình thường, theo các quy tắc trong bản tóm tắt cách soạn đề trắc nghiệm trong Word, rồi mở công cụ chuyển đổi đề thi miễn phí, tải tệp lên và bấm Moodle XML (.xml). Không cần tài khoản. Trước khi bạn tải về, công cụ chuyển đổi liệt kê mọi chỗ Moodle xử lý khác đi, ví dụ câu nhiều đáp án đúng được Moodle cho điểm từng phần. Hướng dẫn đầy đủ có trong bài cách đưa đề thi Word vào Moodle.
Câu hỏi thường gặp
Moodle XML có giống GIFT hay Aiken không? Không. GIFT và Aiken là định dạng văn bản thuần để người dùng tự gõ; chúng không chứa được hình ảnh bên trong tệp, và Aiken chỉ có câu trắc nghiệm một đáp án. Moodle XML dài hơn nhưng chứa được mọi thứ.
Hệ thống khác có đọc được Moodle XML không? Một số hệ thống đọc được, nhưng đây là định dạng riêng của Moodle. Với các hệ thống nhập gói QTI 2.1, công cụ chuyển đổi cũng tạo được gói này. Canvas Classic Quizzes dùng QTI 1.2 nên không đọc được gói đó.
Vì sao Moodle đếm được nhiều câu hỏi hơn số câu trong đề của tôi? Vì một số câu trở thành nhiều câu hỏi Moodle: mỗi ý đúng/sai là một câu hỏi riêng, và một đoạn văn đọc hiểu thành một mục mô tả đặt trước các câu hỏi của nó. Công cụ chuyển đổi cho biết đã xuất bao nhiêu câu hỏi Moodle.
Ví dụ có dùng được với ngôn ngữ khác không? Có. Ví dụ có ở mọi ngôn ngữ của trang web này; đổi ngôn ngữ ở đầu trang để tải về.