// Syntax: // Comment for reader's benefit, not parsed // # Template Number - +100 for each new type of problem, +10 for each new subtype // Learning Objective(s) for this template - when this template should be used // ? // If student gets the answer right, what OTHER objectives should get credit // Usually, counterpoint to the point of the error, say allocation for missing // deallocation, Declaration for out of scope error, assignment for incorrect // referencing, etc. // Make sure there is no overlap between this and antecedents! // : // If student gets the answer wrong, what OTHER objectives should get discredit // Make sure there is no overlap between this and antecedents! // > // The template itself, no double quotes, preceded and succeeded by a single > // > // Type: debug / output / code // Hardness: The student's correct percentage up to which this template will be used // Note: Syntax for learning objectives (in antecedent, ifCorrect, ifWrong) // is dot.separated, with {,} to represent alternates. // e.g., a.{b,c} is a.b and a.c // This is NOT graph structured, i.e., a,{b,c}.d is not accounted for to mean // a.b.d or a.c.d // Arithmetic - Correct # 101 Operator.Arithmetic.+.Correct > {(){=;=; = + 1;; = + ;<< ; = - ;<< ; = * ;<< ; = / ;<< ; = % ;<< ; = + * 5;<< ; = - / 2;<< ;}} > Type: output Hardness: 100 // Arithmetic - incorrect # 102 Operator.Arithmetic.+.Correct > {(){;;<< 7 / 0;<< 4 * 3.2 / 0.0;<< + ;<< - ;<< * ;<< / ;<< % ;<< 45 % 3.2;<< 5 * 7 * 2 + ;<< 5 * 7 + + * 5;<< 8 / 2 - - / 2;}} > Type: debug Hardness: 100 // Arithmetic & Relational - correct # 103 Operator.{Arithmetic.+.Correct,Relational} > {(){=;=;<< + < 10;<< - > 0;<< * <= 13;<< / >= 13;<< % != 0;<< + * 5 == 7 * ;<< - / 2 == 5 * 7;}} > Type: output Hardness: 100 // Arithmetic & Relational - incorrect # 104 Operator.{Arithmetic.+.Correct,Relational} > {(){;; = 5 * 1.5 % 4 + / 2 + 5 * 3;<< ;<< + < 10;<< - > 0;<< * <= 13;<< / >= 13;<< % != 0;<< + * 5 == 7 * ;<< - / 2 == 5 * 7;}} > Type: debug Hardness: 100 // Assignment - correct # 105 Operator.Assignment.+.Correct > {(){=;=; += ;<< ; -= ;<< ; *= 3 + 4;<< ;; = = 5 * 7;<< - ; /= /= 2;<< ;<< ; %= 5;<< ; *= *= 3;}} > Type: output Hardness: 100 // Assignment - incorrect # 106 Operator.Assignment.+.Correct > {(){;;; += 5;<< ; -= -= 3;<< ; *= 3 + 4;<< ; = = * 7;<< - ; /= /= 2;<< ;<< ; %= 3 + 2.0;<< ; *= *= 3;}} > Type: debug Hardness: 100 // Arithmetic & Assignment (with some Relational) - correct # 107 Operator.{Arithmetic.+.Correct,Assignment} > {(){=;=; = + * 7;<< ; = - / 2;<< ;=; = % 2;<< ; = * 7 + 2 != - 2 / 7;<< ; = 7 < 5 < 3;<< ; = / 2 + 5 <= % 2 + 7;<< == 3;}} > Type: output Hardness: 100 // Arithmetic & Assignment (with some Relational) - incorrect # 108 Operator.{Arithmetic.+.Correct,Assignment} > {(){;; = + * 7;<< ; = - / 2;<< ;; = % 2.0;<< ; = * 7 + 2 != - 2 / 7;<< ; = 7 < 5 < 3;<< ; = / 2 + 5 <= + 7 % 2.5;<< == ;}} > Type: debug Hardness: 100 // Bitwise & Assignment - correct # 109 Operator.{Bitwise,Assignment.Simple.Correct} > {(){;; = 37 & 4;<< ; = 37 | 18;<< ;; = 5 << 4;<< ; = 80 >> 4;<< ; = 37 ^ 5;<< ; = ~ 1023;<< ; = ~ -1023;<< ; = 36; <<= 2;<< ; >>= 2;<< ; |= 98;<< ; ^= 98;<< ; &= 4;<< ; = 75; ^= |= 31;<< ;}} > Type: output Hardness: 100 // Bitwise & Assignment - incorrect # 110 Operator.{Bitwise,Assignment.Simple.Correct} > {(){;; = & 4.5;<< ; = | 18.5;<< ;; = 15.5 << ;<< ; = >> 4.2;<< ; = ^ 37.5;<< ; = ~ 1023.4;<< ; = ~ -1023.7;<< ; = 36.5; <<= 2.5;<< ; >>= 2.5;<< ; |= 98.1;<< ; ^= 98.1;<< ; &= 4.5;<< ; = 7.5; ^= |= 3.1;<< ;}} > Type: debug Hardness: 100