Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan...
Transcript of Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan...
![Page 1: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/1.jpg)
Specifying Strategies for Exercises
Bastiaan Heeren 1 Johan Jeuring 1,2
Arthur van Leeuwen 2 Alex gerdes 1
1 Open Universiteit Nederland2 Universiteit Utrecht, The Netherlands
July 30, 2008 (MKM’08)Birmingham
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 2: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/2.jpg)
Overview
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 3: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/3.jpg)
Procedural skills
In many subjects students have to acquire procedural skills:I Mathematics:
I calculate the value of an expressionI solve a system of linear equationsI differentiate a functionI invert a matrix
I Logic: rewrite a logical expression to disjunctive normalform
I Computer Science: construct a program from aspecification using Dijkstra’s calculus
I Physics: calculate the resistance of a circuitI Biology: calculate inheritance values using Mendel’s laws
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 4: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/4.jpg)
Tutoring tools for procedural skills
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 5: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/5.jpg)
Wisweb (Freudenthal Instituut)
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 6: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/6.jpg)
LeActiveMath
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 7: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/7.jpg)
MathXPert
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 8: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/8.jpg)
Aplusix
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 9: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/9.jpg)
Tutoring tools for procedural skills
I Tutoring tools for practicing procedural skills:I generate exercisesI support stepwise construction of a solutionI select a rewriting rule, or apply a transformationI determine whether a solution is correct/incorrect
I Such tools offer many advantages to users:I work at any timeI select material and exercisesI a tool can select exercises based on a user-profileI a tool can log user errors, and can report common errors
back to teachersI a tool can give immediate feedback
I There exist many tools for practicing procedural skillsI How are procedures represented?
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 10: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/10.jpg)
Representing strategies
I Strategies (procedures) are almost always specifiedinformally
I If a tool can deal with a strategy, it is often hard-wiredI Different teachers sometimes use different strategies for
solving problemsI Strategies need to be adaptable and programmableI If we want diagnose user errors, and give automatic
feedback based on a strategy for an exercise, we need anexplicit description of the strategy
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 11: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/11.jpg)
Rewriting to disjunctive normal form (1)
Rewrite rules for logical propositions:
¬¬p ⇒ p p ∧ (q ∨ r) ⇒ (p ∧ q) ∨ (p ∧ r)
¬(p ∧ q) ⇒ ¬p ∨ ¬q (p ∨ q) ∧ r ⇒ (p ∧ r) ∨ (q ∧ r)
¬(p ∨ q) ⇒ ¬p ∧ ¬q
I Exercise: bring proposition to disjunctive normal form
¬(¬(p ∨ q) ∧ r)
⇒ ¬¬(p ∨ q) ∨ ¬r⇒ p ∨ q ∨ ¬r
I Exercise is solved in just two steps
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 12: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/12.jpg)
Rewriting to disjunctive normal form (1)
Rewrite rules for logical propositions:
¬¬p ⇒ p p ∧ (q ∨ r) ⇒ (p ∧ q) ∨ (p ∧ r)
¬(p ∧ q) ⇒ ¬p ∨ ¬q (p ∨ q) ∧ r ⇒ (p ∧ r) ∨ (q ∧ r)
¬(p ∨ q) ⇒ ¬p ∧ ¬q
I Exercise: bring proposition to disjunctive normal form
¬(¬(p ∨ q) ∧ r)⇒ ¬¬(p ∨ q) ∨ ¬r⇒ p ∨ q ∨ ¬r
I Exercise is solved in just two steps
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 13: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/13.jpg)
Rewriting to disjunctive normal form (2)
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 14: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/14.jpg)
Rewriting to disjunctive normal form (3)
I A different derivation (same proposition):
¬(¬(p ∨ q) ∧ r)⇒ ¬((¬p ∧ ¬q) ∧ r)⇒ ¬(¬p ∧ ¬q) ∨ ¬r⇒ ¬¬p ∨ ¬¬q ∨ ¬r⇒ p ∨ ¬¬q ∨ ¬r⇒ p ∨ q ∨ ¬r
I Same answer, more steps
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 15: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/15.jpg)
Three strategies for disjunctive normal form (1)
Monkey strategyApply rules for propositions exhaustively
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 16: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/16.jpg)
Three strategies for disjunctive normal form (1)
Monkey strategyApply rules for propositions exhaustively
Not very attractive, since it allows
¬¬(p ∨ q)⇒ ¬(¬p ∧ ¬q)⇒ ¬¬p ∨ ¬¬q⇒ p ∨ ¬¬q⇒ p ∨ q
instead of
¬¬(p ∨ q)⇒ p ∨ q
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 17: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/17.jpg)
Three strategies for disjunctive normal form (2)
Algorithmic strategyI Remove constantsI Unfold definitions of implication and equivalenceI Push negations inside (top-down)I Then use the distribution rule
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 18: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/18.jpg)
Three strategies for disjunctive normal form (2)
Algorithmic strategyI Remove constantsI Unfold definitions of implication and equivalenceI Push negations inside (top-down)I Then use the distribution rule
Better, but it doesn’t take tautologies into account
(p ∨ q)↔ (p ∨ q)⇒ ((p ∨ q) ∧ (p ∨ q)) ∨ (¬(p ∨ q) ∧ ¬(p ∨ q))⇒ ...
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 19: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/19.jpg)
Three strategies for disjunctive normal form (3)Expert strategy
I Apply the algorithmic strategyI Whenever possible, use rules for tautologies and
contradictions
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 20: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/20.jpg)
Modelling intelligence
To model intelligence in a computer program, Bundy (TheComputer Modelling of Mathematical Reasoning, 1983)identifies three important, basic needs:
1. The need to have knowledge about the domain2. The need to reason with that knowledge3. The need for knowledge about how to direct or guide that
reasoning
In our running example,1. the domain consists of logical expressions2. reasoning uses rewrite rules for logical expressions3. strategies guide that reasoning
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 21: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/21.jpg)
Specifying a strategy
From the informal specifications of the strategies for DNF weinfer that we need the following concepts for specifying astrategy:
I apply a basic rewrite rule (”∧ distributes over ∨”)I sequence (”first . . . then . . . ”)I choice (”use one of the rules for ¬”)I apply exhaustively (”repeat . . . as long as possible”)I traversals (”apply . . . top down”)
These concepts all appear in (program) transformationlanguages such as Stratego: a similar language for specifyingstrategies seems feasible
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 22: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/22.jpg)
A strategy language
I The rewrite rules of the domain are the basic ingredients ofour strategies.
I A rule can be applied to a term. The application maysucceed or fail.
I On top of the basic rules we have the following basiccombinators:
Strategy combinators
1. Sequence s <?> t2. Choice s <|> t3. Unit elements succeed , fail4. Labels label ` s5. Recursion fix f
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 23: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/23.jpg)
Concepts
I Just as a rule, a strategy can be applied to a termI Labels are used to mark positions in a strategyI Combinators are inspired by context-free grammarsI In fact, this is an embedded domain specific language (in
Haskell) and more combinators can be added:
many s = fix (λx → succeed <|> (s <?> x))
repeat s = many s <?> not s
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 24: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/24.jpg)
Traversals
I once s applies strategy s once to one of the immediatechildren of the argument term (specific for the domain)
once s (p ∧ q) = {p′ ∧ q | p′ ← s p} ∪ {p ∧ q′ | q′ ← s q}once s (¬p) = {¬p′ | p′ ← s p}once s True = ∅...
With once we can now define:I somewhere s: apply s once to a subtermI bottomUp s: apply s bottom upI topDown s: apply s top down
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 25: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/25.jpg)
Traversals
I once s applies strategy s once to one of the immediatechildren of the argument term (specific for the domain)
once s (p ∧ q) = {p′ ∧ q | p′ ← s p} ∪ {p ∧ q′ | q′ ← s q}once s (¬p) = {¬p′ | p′ ← s p}once s True = ∅...
With once we can now define:I somewhere s: apply s once to a subtermI bottomUp s: apply s bottom upI topDown s: apply s top down
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 26: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/26.jpg)
DNF strategies revisited (1)
Monkey strategy:
dnfStrategy1 = repeat (somewhere basicRules)
basicRules = label "Basic rules"( constants <|> definitions
<|> negations <|> distribution)
constants = label "Constant rules"( andTrue <|> andFalse <|> orTrue
<|> orFalse <|> notTrue <|> notFalse)
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 27: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/27.jpg)
DNF strategies revisited (2)
Algorithmic strategy:
dnfStrategy2 =label "step 1" (repeat (topDown constants))
<?> label "step 2" (repeat (bottomUp definitions))<?> label "step 3" (repeat (topDown negations))<?> label "step 4" (repeat (somewhere distribution))
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 28: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/28.jpg)
Using strategies for error diagnosis and feedback
Given a term, a strategy, and a step made by a student, we cangive several kinds of feedback:
I Feedback after a stepI ProgressI Strategy unfoldingI HintI Completion problemsI Buggy strategies
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 29: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/29.jpg)
How
Conceptually:I View the strategy specification as a grammarI Solving an exercise is now constructing a sentence using
the grammarI Prefix parsers can be used to diagnose errors and give
feedbackThe details of how this is done is worth another presentation
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 30: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/30.jpg)
Related work
I Anderson: Rules of the mindI VanLehn: Mind bugs – the origins of procedural
misconceptionsI Collections of condition-action rulesI Leading argument: the procedural language should be
psychologically plausibleI Our point: the diagnosis and feedback should be
psychologically plausibleI Our language satisfies VanLehn’s requirementsI In many other approaches, rules and strategies are
hard-wired into the tool
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 31: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/31.jpg)
Current status and future work
Current status:I A library with which we can define strategy recognizers
See ideas.cs.uu.nl/trac/
I Tested on logic expressions, linear algebra, arithmeticexpressions, and relational algebra
I Used to a limited extent in some coursesI Most of the forms of error diagnosis and feedbackI Available as web services
Future work:I Investigate strategies for constructing programsI Give a formal account of strategiesI Flexible strategiesI Simplify adding a new domain
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)
![Page 32: Specifying Strategies for Exercises · Specifying Strategies for Exercises Bastiaan Heeren 1 Johan Jeuring 1,2 Arthur van Leeuwen 2 Alex gerdes 1 1 Open Universiteit Nederland 2 Universiteit](https://reader035.fdocuments.us/reader035/viewer/2022071215/6045c69d91677821e070d6c8/html5/thumbnails/32.jpg)
Conclusions
I We have introduced a strategy language with which wecan specify strategies in many domains
I A strategy is specified as a context-free grammar,extended with some non-context-free constructs
I The formulation of a strategy as a context-free grammarallows us to automatically calculate several kinds offeedback and error diagnosis
I Separating strategy specification from error diagnosis andfeedback calculation makes it possible to calculate differentkinds of feedback
I Ours is not the first strategies for exercises language, but itis the first that allows automatic calculation of differentkinds of error diagnosis and feedback
Heeren, Jeuring et al. – Specifying Strategies for Exercises (MKM’08)