Writing Moodle Questions
Moodle is the Learning Management System used on the CNT CLASS server. If you are asked to write Moodle compatible questions the preferred format for doing so is the GIFT format which can be directly imported by Moodle. The complete GIFT format documentation can be found on The Moodle GIFT site but this should give you enough information to get started with the most popular types of questions.
General Information
There are three main sections to a Moodle question: the question name, the question and the answer section. The answer section should also include feedback about why the answer is correct or incorrect and where the answer can be verified.
It is not uncommon for questions about computer topics to include some of the special question formatting characters like curly braces, tildes, hashes, equals signs and slashes (forward or backward). If these special characters are part of the question, answer or feedback each one needs to be escaped. To escape a special character you put a single backslash in front of it such as \# which will print just as a # when the question, answer or feedback is displayed.
You can work on the questions in any text editor though a plain text editor is best. An example of a plain text editor on Microsoft Windows is the notepad.exe program. When submitting new questions you should simply copy and paste the question text into the body of an email message, be sure not to add any additional formatting.
Moodle Question Types
Multiple Choice Questions
Multiple Choice Single Answer
A basic multiple choice question, with one correct answer, is easy to write in the GIFT format. This type of question is referred to as a Multiple Choice Single Answer or MCSA question. MCSA questions should usually have four choices, one which is correct and three which are incorrect. The incorrect answers should be believable but definitely wrong.
A basic MCSA example:
// This line is a comment. You can use comments for your own use, they are not required ::The name of your question goes here::The text of your question goes here?{ =The correct answer begins with an equals sign ~An incorrect answer begins with a tilde ~Another incorrect answer ~A third incorrect answer }
Note that the correct answer begins with an equals sign (=) and incorrect answers begin with tildes (~). All of the answers are indented with a tab.
When you write an actual question you should provide feedback about why answers are correct or incorrect and where the answer can be verified. Feedback comes after each answer and is separated from the answer by a hash sign (#). The question name should usually be identical to the question text but if the question is long or has special formatting the name of the question should be a short and simple description of what the question is asking about instead of a complete duplication of the question. Here's an example of a complete MCSA question:
// This question is a basic question about the OSI model, remember this line is just a comment for your own use ::What is a layer three network address most commonly called?::What is a layer three network address most commonly called?{ =An IP Address#IP Addresses are the type of address most commonly used at layer three of the OSI model. (Textbook p. 42) ~A MAC Address#MAC Addresses are layer two addresses (Textbook p. 42) ~A NetBIOS Address#NetBIOS addresses are not as common as IP Addresses (Textbook p. 41) ~A Sector Address#Sector addresses are used for locating data on disks, not for networking. }
Remember that the "answers" displayed will just be "An IP Address, A MAC Address, A NetBIOS Address and A Sector Address. The remainder of each line is feedback about why each answer is correct or incorrect and where the answer can be verified. Also remember that it is not uncommon for questions about computer topics to include some of the special question formatting characters like curly braces, tildes, hashes, equals signs and slashes (forward or backward). If these special characters are part of the question, answer or feedback each one needs to be escaped. To escape a special character you put a single backslash in front of it such as \# which will print just as a # when the question, answer or feedback is displayed.
You should never have answers that refer to the location of other answers (all of the above, choices a, b, and c, etc.). The answers to each question are presented in a random order so it is not possible to know which answers are above the current answer or what letter choice each answer will be. If you have a question like this it is better to create a multiple choice multiple answer (MCMA) question instead.
Multiple Choice Multiple Answer
A more complex multiple choice question has more than one correct answer. This type of question is referred to as a Multiple Choice Multiple Answer or MCMA question. MCMA questions should have at least four choices. At least one choice should be correct (the choice could be "None of these") and at least one choice is normally incorrect though once in a while it is alright to have all of the answers be correct. Incorrect answers should be believable but definitely wrong.
The key differences with MCMA questions is that all of the answers begin with a tilde (~). Each answer (correct and incorrect) must be assigned a percentage of the credit for the overall question. The points for all of the correct answers should add up to 100% and these should normally be divided equally among all correct answers. Incorrect answers should be worth -100%.
// This question asks about Linux tools which can discover open ports on a system ::Which tools would help discover open ports?::Which tools would help discover open ports?{ ~%-100%DHCP#DHCP provides IP addresses and has nothing to do with open ports (Textbook p. 392) ~%33.333%netstat#Netstat provides a list of all open ports on the local system (Textbook p. 414) ~%33.333%nmap#Nmap can be used to find open ports on local and remote systems (Textbook p. 487) ~%-100%SSH#SSH is used for remote connections to another system, not finding ports (Textbook p. 499) ~%-100%find#Find is used for finding files, not ports (Textbook p. 212) ~%33.333%lsof#Lsof can list open ports as well as files (Textbook p. 485) }
Note that is this example there are three correct answers so each one is worth 1/3 of 100% which is rounded off to three decimal places 33.333%.
Matching Questions
With a matching question you are given the first part of a pair and asked to select the second part from a list of possible choices. For formatting and readability purposes it is better if you put longer parts of the matched pair first and shorter parts second. The second part of each answer is what will appear in the dropdown box. Matching questions can contain any number of matched pairs, but it is generally best to have 4-6 pairs. Note that with a matching question each answer line begins with an equals sign (=) and the two halves of the matching section are linked with an arrow (->) made up of a dash (-) and a greater than sign (>). The GIFT format does not allow feedback for matching questions so you do not need to include feedback about why answers are correct or incorrect for this question type.
Example:
// This question is asking about the filesystems used by various operating systems ::Match the following filesystems with their features.::Match the following filesystems with their features. { =A non-journaling popular Linux filesystem -> ext2 =A journaling popular Linux filesystem -> ext3 =The default Windows 2000 filesystem -> NTFS =A widely implemented filesystem used in MS-DOS -> FAT }
True/False Questions
True/False questions are easily created on a single line but should be used sparingly. If you are editing an existing question pool no more than 10% of the questions should be true/false. If you are writing new questions follow the information from your instructor about how many of your questions may be true/false.
True Statement Example:
::Apple sold personal computers before IBM did.::Apple sold personal computers before IBM did.{TRUE#The Apple I came before the IBM PC.}
False Statement Example:
::Al Gore invented the Internet.::Al Gore invented the Internet.{FALSE#He did assist in providing funding though.}