Moodle Exams: Discourage Cheating

All forms of added security will make it harder to access something (intended or not); it’s another hoop to jump though and some students may not be able to reliably jump through those hoops.

You’ll need to keep a balance of accessibility and security in mind when adding security measures of any kind.

Mix it up

Make each attempt different so it’s harder for students to discuss an individual question within a quiz. This can discourage cheating but also makes it more difficult to hold course discussions over specific questions.

NOTE: Some of these settings are the default in our Sample High-Stakes Exam that you can import into your own course from the Sample Quiz Container Course in Moodle.

Shuffle Questions (within Quiz)

What does it do?

Gives each student the same questions but in a different order throughout the quiz.

EXAMPLE: What Student A sees as Question 1 may appear later in a quiz as Question 5 for Student B or on a second attempt.

Concerns to keep in mind

Cannot be used for quizzes that require ANY questions be asked in a particular order

WORK-AROUND: Place the non-ordered questions ONLY as random from a pool (see below)

How do I do it?

  1. Enter the Quiz in question
  2. Click the Actions menu (Gear icon) in the top-right corner of the page
  3. Select the Edit Quiz item
  4. Ensure the Shuffle box near the top of the page is checked

Random Questions from a Larger Category

What does it do?

Pull a set of questions at random from a Question Bank Category for each attempt ensuring a set number of different questions and order on a topic or chapter.

EXAMPLE: You’ve created a Question bank category for Chapter 1 with 30 questions in it. Within the quiz you add 5 of those questions at random. Each attempt will have 5 questions at random.

  • A student’s first attempt may get Questions 24, 13, 4, 12, 21 from Chapter 1.
  • Their classmate taking the same quiz may get Questions 14, 30, 5, 21, 9 from Chapter 1.
  • If the student makes an additional attempt, their second attempt may have its own random set of say, Questions 2, 17, 24, 16, 7 from Chapter 1.

Concerns to keep in mind

May accidentally break the Quiz as you delete questions from a category and, for example, try to pull 10 random questions from a category which now has only 8 questions in it

WORK-AROUND: Always preview a quiz before you ask your students to take it

How do I do it?

See our article for Adding random questions to a quiz

Shuffle Answers (within Question)

What does it do?

Prevents memorizing letter answers to multiple choice quiz questions

EXAMPLE: Attempts at remembering that “the question about quails is always ‘C'” no longer reliably works. The correct answer can now be a different letter on each attempt

Concerns to keep in mind

Will randomly order “all of the above” answers and make “both A and B” answers ineffective.
NOTE: “All of the above” answers are not best practice.

WORK-AROUND(S):Change Multiple Choice questions to Multiple answers alllowed to require more than one answer to be selected (for full credit)

    • If you MUST keep “all of the above” answers, you can replace the text with “all of these”.
    • See our Tips for Writing Good MC Questions at the bottom of our Multiple Choice Quiz Questions handout (PDF) for tips to improve your questions.

How do I do it?

While this is enabled by default it can be enabled on either a quiz OR a question level.

Enable or Disable on a Quiz Level

  1. Enter the Quiz
  2. Open the Actions menu (gear icon)
  3. Click the Edit Settings item
  4. Scroll down to and expand the Question behavior section
  5. Update the value for Shuffle within questions to your preference for how the quiz questions are handled by default
  6. Save your changes

Enable or Disable on a Question Level

NOTE: This will override the Quiz level default!

  1. Edit the Quiz question (by either previewing the quiz or Editing it from within the Question bank)
  2. Scroll down to the bottom of the General section
  3. Check or Uncheck the Shuffle the choices item
  4. Save your changes

Calculated Questions (Algebraic Variables)

What does it do?

Great for practicing a mathematical process to ensure students know their formulas or conversion rates. A Calculated question asks the same basic question with different values called Wildcards that Moodle can help you generate semi-random values for.

EXAMPLE: A question that asks “Calculate the area of a rectangle with a base of 4 and a height of 19” on one attempt but “Calculate the area of a rectangle with a base of 8 and a height of 9” on another. Where 4 and 19 are one pair of wildcards and 8 and 9 are another pair out of many quickly generated sets.

Concerns to keep in mind

This is an upfront-heavy setup and there are a lot of moving parts. Ensure you use the Formula variables in the Question text or students won’t be able to see what values they’re working with.

Calculated questions are very reliant on Question bank categories to store datasets/wildcards, be very mindful if you move things around in your question bank.

WORK-AROUND: Be sure to preview your questions multiple times and display the datasets before you call a Calculated question done and ask students to work with them.

How do I do it?

  1. Enter your Question Bank Category and Create a new question
    Add a new question directly to a Quiz activity
  2. Select the Calculated question type
  3. Be mindful of the question’s category– it can share wildcards (datasets for these questions to pull from) once you create them.
  4. Set the Question name (students won’t see this)
  5. In the Question text provide some extra context or instructions that include you wildcards/variables wrapped in {curly brackets}
    Example: Calculate the area of a rectangle with a base of {base} and a height of {height}.
  6. Scroll down to Answers and enter the correct Answer 1 Formula they should use. Do NOT enter an equals sign (=) and otherwise write these as if you’re entering them into a calculator.
    Example: {base}*{height}
  7. Set the Grade to 100%
  8. OPTIONAL: set a tolerance and/or expand the Unit handling or Unit sections to if you’re looking to have them convert values from say, mm to cm
  9. Click the Save changes button
  10. You will be brought to a Choose wildcards dataset properties page
  11. For each Wildcard– the letter or word surrounded in {curly brackets} within your formula you will have the option to choose the dataset used.
    Unless you’ve already built and are using wildcards you trust, select the will use a new shared dataset option.
  12. If you don’t mind each question having it’s own, unique dataset within the attempt select Do not synchronize
    If you’d like to have students work with the same dataset throughout their quiz (for questions within the same category) select Synchronize
    Example: use the same radius in a first question asking for the perimeter of a circle of {radius}cm and a second question asking for the surface of a circle of {radius}cm.
  13. Scroll down to Add item, select the number of different new set(s) of wild card(s) values you’d like and click the Add button
  14. Review your datasets in action by selecting how many you’d like to look at and clicking the Display button.
  15. If you don’t have any further changes you’d like to make to the sets click the Save changes button.

For more information see Moodle’s article on Calculated questions.

Separate Assignments by Random Group

What does it do?

You create multiple versions of the same basic assessment (such as a Quiz or Assignment activity). You may have students choose their own path or assign them at random to a specific group with each ONLY able to see their given path.

EXAMPLE: Creating three (3) random groups in your course and providing each with a unique starter file that use Restrict access so only members of that group can see (students cannot tell they are in a group at all unless you create a group-choice or use those same groups in a forum)

Concerns to keep in mind

Consider NOT mentioning A, B, or C in the file name, this can tip students off before they gain access and also be confuse them into thinking there is more than one part that they are expected to accomplish.


  • (File Resource and Assignment Activity) Build in some kind of identifying question to you know what grading key to use when you open the student’s attempt.
  • (Quiz and Assignment Activity) setup a gradebook category that keeps only the highest grade for this set of activities.

How do I do it?

  1. Upload or create your various versions of the assessment (such as a File resource, Assignment activity, or Quiz activity) and keep them hidden from students.
  2. (Enable,) create, and assign groups within your course. One group for each version of your assessment. Group name is unimportant.
  3. Edit settings for each version of the assessment
  4. Scroll down to and expand the Restrict Access section
  5. Click the Add restriction button
  6. Click the Group button
  7. Click the eye icon to be crossed out so it’s Hidden entirely if user does not meet this condition
  8. Select the Group in question
  9. OPTIONAL: Add an Additional restriction of Date to prevent folks from peeking before or after their attempt.

Show their work

Use Essay Questions

What does it do?

Essay questions can be used to assess higher-order thinking and problem solving skills, such as critical reflection and analysis. By asking students to make their own judgements on appropriate criteria or demonstrate they can combine concepts students have to give a personalized response.

For some ideas on question starters for quality Essay questions see the higher levels of Revised Bloom’s Taxonomy – Question Starters,  it demonstrates how Bloom’s Taxonomy can be used to align assessments with identified learning outcomes—with different questions prompting different levels of learning demonstration.

EXAMPLE: Asking a student to write their response to a question like “What criteria would you use to assess __?” or “How would you generate a plan to ___?” requires the student to provide a response unique to them that is difficult to answer without a real understanding of the content.

Concerns to keep in mind

While essay questions do NOT automatically grade themselves (and thus students do NOT get immediate feedback/results from their attempt) just like any pre-digital exam they may have taken.

WORK-AROUND: Let students know this ahead of time! To make your own grading easier Essay questions also allow for instructors to include built-in Grader Information when creating the question in Moodle which can be especially handy if you pull a series of essay questions at random and need that extra context.

How do I do it?

  1. Add a new question to you quiz or question bank
  2. Select the Essay question type
  3. If not already selected, choose your Question bank Category (especially import if you want to make this part of a random pool)
  4. Set the question name, students won’t see this, make it meaningful for instructors.
  5. Enter the question text, this is what students will see. It can include text, data tables, as well as multimedia like audio or video!
  6. OPTIONAL: Set the value for Default points if you plan to pair this essay question with other question types in an exam and want it to be worth more than say, a Multiple choice question
  7. Confirm the settings in the Response options section, here you can ask students to attach a file (may conflict with Javascript security) and change how much space they have to enter their question (helpful for givng them a visual queue for how long of a response you would like to encourage.)
  8. OPTIONAL: If you’d like to give students a template to get their response started or provide some basic formatting (such as a partially empty Data table or List) you can do so in the Response template
  9. Enter Grader information for instructor-only notes like common feedback you can copy, paste, and then modify, or other reference points like a basic rubric to help making the grading process easier and more consistent across students and instructors both.
  10. Save your changes.

Once quizzes have been attempted by students you can Manually grade essay (and short answer) questions.

Collect notes/scratch paper (file submission)

What does it do?

Collect a picture of a student’s scratch paper, notes, or other working documents as proof of original work.

EXAMPLE: The final question in a Quiz is an Essay question with a file-upload asking for students to submit an image of their note sheet as taken or a separate Assignment activity offered immediately after the quiz in your course to collect said file.

Concerns to keep in mind

Students may not have a camera or scanner on hand for scratch papers DURING the attempt or may not have pre-scanned or photographed their note sheets before going into a timed assessment.

WORK-AROUND: Warn students ahead of time to take a picture of their notes and/or include opportune time (and again, a warning) for a student to take a picture or scan of their document and attach it. An separate assignment activity without a major time restriction may be the best choice for this if you’ve applied a time limit to your quiz attempt.

How do I do it?

  • Add an Essay question to the end of your quiz (REMINDER: puts file upload at mercy of quiz time limit if present) that asks for File Upload
  • Create an Assignment Activity in your course after your Exam to collect the file(s)

Limit Access

NOTE: every time you try to lock something down… A) the harder some folks may fight to get around it, and B) the bigger a barrier it is for struggling students to cross, even when they are following the rules.

Limit Availability (Time and/or Date)

What does it do?

Set a time limit by date and/or session length to reduce the chance of a student looking up answers to questions they should have memorized.

EXAMPLE: Making a quiz only available on a May 6 from 4-6PM and/or the student will only have a single 20 minute attempt within that window.

Concerns to keep in mind

Disability accommodations and personal emergencies may require additional or different timing for a few students.

WORK-AROUND: You can apply extra time, attempts, or a new time window on a case-by-case basis by applying a User Override to a quiz.

How do I do it?

  1. Enter the Quiz
  2. Open the Actions menu (gear icon)
  3. Select the Edit settings item
  4. Scroll down to and expand the Timing section
  5. Check the Enable box for the desired settings and set the times.
  6. Save your changes.

Enable JavaScript Security

What does it do?

From the Moodle 3.8 Documentation: Full screen pop-up with some JavaScript security

There is a limit to what the quiz, which runs on a web server, can do to restrict what the student sitting at their computer can do while attempting the quiz. However, this option does what is possible:

    • The quiz will only start if the student has a JavaScript-enabled web-browser.
    • The quiz appears in a fullscreen popup window that covers all the other windows and has no course navigation controls. (However, it is impossible for a web site to create a browser window that cannot be minimised or moved aside.)
    • The students are prevented, as far as is possible, from using facilities like copy and paste.

EXAMPLE: Enabling this in a Quiz will make it harder for students to change to other tabs or windows in their web browser as well as harder to copy/paste text.

Concerns to keep in mind

Depending on what you are asking your students to do, they may NEED to copy and paste materials or reference files like PDFs or upload their own. Do NOT use this setting if you may need these sorts of references and/or consider building key context from a document into the quiz question as plain text.

This is not perfect security and cannot compare to a fully proctored environment, there is a limit on how much a web browser can limit on a personal computer. It will NOT prevent use of other devices like taking pictures with their phone and may not even prevent screenshots from being taken of quiz content

WORK-AROUND: Pair or replace this method with another option to make cheating less worth-while/easy-to-do by Mixing It Up and creating manual variants on a question or using Calculated questions. Do not provide or point students to external files but place the needed information in the question as inline text.

How do I do it?

  1. Enter the quiz in question
  2. Expand the Actions menu (gear icon)
  3. Click the Edit settings option
  4. Scroll down to and expand the Extra restrictions on attempts section
  5. Change the value for Browser Security to Full screen pop-up with some JavaScript security
  6. Save your changes
    NOTE: If you have any questions or concerns please don’t hesitate to reach out to and we’ll assist you in evaluating the appropriateness of this security measure.