Feedback help
// sample use: any_f(none('has nodes','has links'),extraLinks(), "Your diagram has problems.") any('category name', 'rulename') // you can use rule names, or category names any_f('category name',"good"); // provide feedback "good" if 'category name' matches all('a','b',true,rule('c')) // true if category a, category b, and rule 'c' are matched. none_f('a','b','c', 'message') // provide "message" feedback if none of a b c are true. rule("has a sun"); // check the rule "has a sun" passes. category("thing"); // true if any rules in "thing" are true. hasTransformation(); // true if the diagram has transformations iconsUsedOnce(); // true if the icons used at most one time. allIconsUsed(); // true if *all* icons were used at least once extraLinks(); // true if there are links present not defined in rules. feedback("message"); // Tell the student "message" dontCount(); // Feedback after this won't count against max submissions. count(); // Feedback after this will count against max submissions. // by default the "Feedback if all rules pass: " feedback will be given
Rubric help
// An example rubric: all_s('transform','storage','source','release', 6); all_s('transform','storage', 5); all_s('transform','source', 5); all_s('transform','release', 5); all_s('transform',4); any('source','storage','release',3); any('link',2); score(1); // Other ideas: any_s('category one', 'rule a', 5); // you can score with rules or categories. any_s(false,all('a','b'), 4); // score five if a and b. nestable all any. score(3); // explicitly set a score. if (rule('rulename')) {...} // explicitly check a rule. hasTransformation(); // true if the diagram has transformations iconsUsedOnce(); // true if the icons used at most one time. allIconsUsed(); // true if *all* icons were used at least once extraLinks(); // true if there are links present not defined in rules.
Rule help
// example: ( result is how this rule 'evaluates' in other contexts. ) result = all('rule a', 'rule b', any('rule d','rule e')); // Other ideas: all(true,true); // evaluates to true any(false,true); // evaluates to true not_any(true,true,false); // evaluates to false none(true,true,false); // evaluates to false not_all(flase,true,true); // evaluates to true if (any('rulename')) {...} // can use JS constructs.