// Numbas version: finer_feedback_settings {"name": "Mark a boolean expression", "extensions": [], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "question_groups": [{"pickingStrategy": "all-ordered", "questions": [{"name": "Mark a boolean expression", "tags": [], "metadata": {"description": "
Shows how to mark a boolean expression, by checking all possible values of the free variables. There's an information step containing a reminder of the syntax for boolean operations.
", "licence": "Creative Commons Attribution 4.0 International"}, "statement": "", "advice": "", "rulesets": {}, "extensions": [], "builtin_constants": {"e": true, "pi,\u03c0": true, "i": true, "j": false}, "constants": [], "variables": {"q": {"name": "q", "group": "Ungrouped variables", "definition": "dict(zip([\"a\",\"b\"], x)) for: x of: product([true,false],2)", "description": "", "templateType": "anything", "can_override": false}, "expression": {"name": "expression", "group": "Ungrouped variables", "definition": "random(\n expression(\"A and not (B or C)\"),\n expression(\"not A and not B\"),\n expression(\"A implies B or C\")\n)", "description": "", "templateType": "anything", "can_override": false}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": ["q", "expression"], "variable_groups": [], "functions": {}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "jme", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "vset: \n dict(zip(answerVariables, x)) for: x of: product([true,false],length(answerVariables))", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "Write $\\var{expression}$, or an equivalent expression.
", "stepsPenalty": 0, "steps": [{"type": "information", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "Here's how to type the boolean operators:
\nandornotimplies