Creating and Managing Quizzes with the Question and Answer System

Sylvia Haas & Stephen Schroeder

Outline

What is a Q&A Form Notebook?

Q&A Form Notebook Demonstration

QuestionObject

What is a Q&A Form Notebook?

Specifically designed to allow educators to easily create coursework using the power of the Wolfram Language

Q&A Form Notebook will be in 13.0 under File>New menu as a new type of Programmatic Notebook

A Q&A Form Notebook has a notebook-based special authoring environment

Uses QuestionObject

QuestionObject

Extended question types

In-notebook markup of responses

Automatic grading with AssessmentFunction

AssessmentFunction

The automated grading tool

Options include partial credit, explanations, tolerance, and custom scoring

Some built in comparison methods include:

CodeEquivalence

Color

GeoPosition

Vector

How to Build a Q&A Form Notebook

Authoring Notebook

The Authoring Notebook is where the Quiz is created

Within the Authoring Notebook:

Insert Questions

Write content

Choose how responses to questions are handled in the Settings menu ()

(RowDefault)

User Notebook

The “Generate” button in the Authoring Notebook opens an index notebook which informs the author how to distribute their coursework

Share link to the Notebook on Wolfram Cloud

Share the notebook itself

Q&A Form Notebook Demo

Summary

Q&A Form Notebook is a powerful tool for educators

Streamlines courseware creation

Create content with the full flexibility of Wolfram Language notebooks

Easy distribution to students

QuestionObject

Question Types:

QuestionObject[QuestionInterface["TrueFalse","Is a hot dog a sandwich?"]]

QuestionObject[QuestionInterface["MultipleChoice", <|"Prompt" -> "Pick your favorite sport", "Choices" -> {"Soccor", "Tennis", "Swimming", "Curling"}|>]]

QuestionObject[QuestionInterface["NumericRange",<|"Prompt" -> "How excited are you for fall?", "Range" -> {1, 10, 1}|>]]

QuestionObject[QuestionInterface["MultipleChoiceGrid", <|"Prompt" -> "Rank these sports", "Choices" -> {"Soccor", "Tennis", "Swimming", "Curling"}, "Categories" -> {1, 2, 3, 4}|>]]

QuestionObject[QuestionInterface["ShortAnswer","Please enter your first name:"]]

QuestionObject[QuestionInterface["SelectColor","What is your favorite color?"]]

Create customized assessments:

Pattern Matching and Entities

QuestionObject["Provide an even number:", AssessmentFunction[{_?EvenQ}]]

QuestionObject[QuestionInterface["ShortAnswer","Name one noble gas:"], AssessmentFunction[(EntityClass["noble gases", EntityClass["Element","NobleGas"], "EntityClass[\"Element\", \"NobleGas\"]", "elements"])["Name"]]]

With[{p=RandomEntity["Planet"]},QuestionObject[QuestionInterface["MultipleChoice",<|"Prompt" -> Row[{"What planet is this? ", p["Image"]}]|>],AssessmentFunction[RandomSample[Join[{p-> 1}, DeleteCases[EntityList["Planet"], p]]]]]
]

Tolerance

QuestionObject["Write out an approximation of pi:", asmf=AssessmentFunction[3.14, Tolerance -> 0.01]]

With[{p=RandomEntity["Pokemon"]},QuestionObject[QuestionInterface["SelectColor",<|"Prompt" -> Column[{"What color is this pokemon? ", ColorConvert[p["Image"], "Grayscale"]}]|>],AssessmentFunction[DominantColors[p["Image"]], Tolerance->0.3]]]

Partial Credit

QuestionObject["Select members of the whale family:", AssessmentFunction[{"Blue" -> 1,  "Purple" -> 0, "Gray" -> 1},<|"ElementwiseAssessment"->True|> ]]

Code Equivalence

QuestionObject["Given a list of integers from 1 to 100, write a function that replaces multiples of 3 with \"fizz\", multiples of 5 with \"buzz\", multiples of both 3 and 5 with \"fizzbuzz\" and leaves other numbers fixed.", AssessmentFunction[HoldPattern[Which[Mod[#,15]==0,"FizzBuzz",Mod[#,3]==0,"Fizz",Mod[#,5]==0,"Buzz",True,#]&/@Range[1,100]],"CodeEquivalence"]]