Results 1 -
8 of
8
Specifying strategies for exercises
- Suzuki & F. Wiedijk, eds, ‘AISC/Calculemus/MKM 2008’, LNAI 5144, SpringerVerlag
, 2008
"... Abstract. The feedback given by e-learning tools that support incrementally solving problems in mathematics, logic, physics, etc. is limited, or laborious to specify. In this paper we introduce a language for specifying strategies for solving exercises. This language makes it easier to automatically ..."
Abstract
-
Cited by 12 (8 self)
- Add to MetaCart
Abstract. The feedback given by e-learning tools that support incrementally solving problems in mathematics, logic, physics, etc. is limited, or laborious to specify. In this paper we introduce a language for specifying strategies for solving exercises. This language makes it easier to automatically calculate feedback when users make erroneous steps in a calculation. Although we need the power of a full programming language to specify strategies, we carefully distinguish between context-free and non-contextfree sublanguages of our strategy language. This separation is the key to automatically calculating all kinds of desirable feedback. 1
Specifying Rewrite Strategies for Interactive Exercises
"... Abstract. Strategies specify how a wide range of exercises can be solved incrementally, such as bringing a logic proposition to disjunctive normal form, reducing a matrix, or calculating with fractions. In this paper we introduce a language for specifying strategies for solving exercises. This langu ..."
Abstract
-
Cited by 6 (6 self)
- Add to MetaCart
Abstract. Strategies specify how a wide range of exercises can be solved incrementally, such as bringing a logic proposition to disjunctive normal form, reducing a matrix, or calculating with fractions. In this paper we introduce a language for specifying strategies for solving exercises. This language makes it easier to automatically calculate feedback, for example when a user makes an erroneous step in a calculation. We can automatically generate worked-out examples, track the progress of a student by inspecting submitted intermediate answers, and report back suggestions in case the student deviates from the strategy. Thus it becomes less labor-intensive and less ad-hoc to specify new exercise domains and exercises within that domain. A strategy describes valid sequences of rewrite rules, which turns tracking intermediate steps into a parsing problem. This is a promising view at interactive exercises because it allows us to take advantage of many years of experience in parsing sentences of context-free languages, and transfer this knowledge and technology to the domain of stepwise solving exercises. In this paper we work out the similarities between parsing and solving exercises incrementally, we discuss generating feedback on strategies, and the implementation of a strategy recognizer.
A programming tutor for Haskell
- In Proceedings of CEFP 2011: Lecture Notes of the Central European School on Functional Programming, LNCS
, 2011
"... Abstract. In these lectures we will introduce an interactive system that supports writing simple functional programs. Using this system, students learning functional programming: – develop their programs incrementally, – receive feedback about whether or not they are on the right track, – can ask fo ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Abstract. In these lectures we will introduce an interactive system that supports writing simple functional programs. Using this system, students learning functional programming: – develop their programs incrementally, – receive feedback about whether or not they are on the right track, – can ask for a hint when they are stuck, – see how a complete program is stepwise constructed, – get suggestions about how to refactor their program. The system itself is implemented as a functional program, and uses fundamental concepts such as rewriting, parsing, strategies, program transformations and higher-order combinators such as the fold. We will introduce these concepts, and show how they are used in the implementation of the interactive functional programming tutor. 1
Properties of exercise strategies
, 2010
"... Mathematical learning environments give domain-specific and immediate feedback to students solving a mathematical exercise. Based on a language for specifying strategies, we have developed a feedback framework that automatically calculates semantically rich feedback. We offer this feedback functiona ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
Mathematical learning environments give domain-specific and immediate feedback to students solving a mathematical exercise. Based on a language for specifying strategies, we have developed a feedback framework that automatically calculates semantically rich feedback. We offer this feedback functionality to mathematical learning environments via a set of web services. Feedback is only effective when it is precise and to the point. The tests we have performed give some confidence about the correctness of our feedback services. To increase confidence in our services, we explicitly specify the properties our feedback services should satisfy, and, if possible, prove them correct. For this, we give a formal description of the concepts used in our feedback framework services. The formalisation allows us to reason about these concepts, and to state a number of desired properties of the concepts. Our feedback services use exercise descriptions for their instances on domains such as logic, algebra, and linear algebra. We formulate requirements these domain descriptions should satisfy for the feedback services to react as expected. 1
Generic Programming for Domain Reasoners
, 2009
"... Abstract: An exercise assistant is a tool that supports students learning procedural skills, such as solving systems of linear equations, or rewriting a logic expression to disjunctive normal form. The domain reasoner is the component of an exercise assistant that deals with tasks that depend on the ..."
Abstract
- Add to MetaCart
Abstract: An exercise assistant is a tool that supports students learning procedural skills, such as solving systems of linear equations, or rewriting a logic expression to disjunctive normal form. The domain reasoner is the component of an exercise assistant that deals with tasks that depend on the semantics of a particular domain, for example the rules that may be applied, or the procedure that should be followed when solving an exercise. An exercise assistant typically has multiple domain reasoners, and the behavior of each of these is, to a large extent, determined by the domain. Generic programming techniques claim to reduce code duplication, to make it easier to change the structure of data, and to provide implementations of many useful functions on most datatypes. There are many libraries for generic programming, all with different datatype support, expressiveness, and ease of use. While a lot of effort has been put into developing new libraries in the past few years, there are few examples of real-life applications of generic programming. In this paper we describe our experience with applying generic programming techniques to our domain reasoners implemented in Haskell. We have used the Uniplate, Multirec, and Regular generic programming libraries. We assess and compare the resulting generic domain reasoners with each other and with the initial, non-generic version, using the software quality factors of the ISO 9126 international standard.
Chapter 1 Generic Programming for Domain Reasoners
"... Abstract: An exercise assistant is a tool that supports students learning procedural skills, such as solving systems of linear equations, or rewriting a logic expression to disjunctive normal form. The domain reasoner is the component of an exercise assistant that deals with tasks that depend on the ..."
Abstract
- Add to MetaCart
Abstract: An exercise assistant is a tool that supports students learning procedural skills, such as solving systems of linear equations, or rewriting a logic expression to disjunctive normal form. The domain reasoner is the component of an exercise assistant that deals with tasks that depend on the semantics of a particular domain, for example the rules that may be applied, or the procedure that should be followed when solving an exercise. An exercise assistant typically has multiple domain reasoners, and the behavior of each of these is, to a large extent, determined by the domain. Generic programming techniques claim to reduce code duplication, to make it easier to change the structure of data, and to provide implementations of many useful functions on most datatypes. There are many libraries for generic programming, all with different datatype support, expressiveness and ease of use. While a lot of effort has been put into developing new libraries in the past few years, there are few examples of real-life applications of generic programming. In this paper we describe our experience with applying generic programming techniques to our domain reasoners implemented in Haskell. We have used the Uniplate, Multirec, and Regular generic programming libraries. We assess and compare the resulting generic domain reasoners with each other and with the initial, non-generic version, using the software quality factors of the ISO 9126 international standard.
Adapting Mathematical Domain
, 2010
"... Abstract. Mathematical learning environments help students in mastering mathematical knowledge. Mature environments typically offer thousands of interactive exercises. Providing feedback to students solving interactive exercises requires domain reasoners for doing the exercisespecific calculations. ..."
Abstract
- Add to MetaCart
Abstract. Mathematical learning environments help students in mastering mathematical knowledge. Mature environments typically offer thousands of interactive exercises. Providing feedback to students solving interactive exercises requires domain reasoners for doing the exercisespecific calculations. Since a domain reasoner has to solve an exercise in the same way a student should solve it, the structure of domain reasoners should follow the layered structure of the mathematical domains. Furthermore, learners, teachers, and environment builders have different requirements for adapting domain reasoners, such as providing more details, disallowing or enforcing certain solutions, and combining multiple mathematical domains in a new domain. In previous work we have shown how domain reasoners for solving interactive exercises can be expressed in terms of rewrite strategies, rewrite rules, and views. This paper shows how users can adapt and configure such domain reasoners to their own needs. This is achieved by enabling users to explicitly communicate the components that are used for solving an exercise. 1
The NetherlandsCONSTRUCTING STRATEGIES FOR PROGRAMMING Preparation of Camera-Ready Contributions to INSTICC Proceedings
, 2009
"... Strategies, intelligent tutoring systems, programming, feedback. Learning to program is difficult. To support learning programming, many intelligent tutoring systems for learning programming have been developed. Research has shown that such tutors have positive effects on learning. However, intellig ..."
Abstract
- Add to MetaCart
Strategies, intelligent tutoring systems, programming, feedback. Learning to program is difficult. To support learning programming, many intelligent tutoring systems for learning programming have been developed. Research has shown that such tutors have positive effects on learning. However, intelligent tutors for learning programming are not widely used. Building an intelligent tutor for a programming language is a substantial amount of work, and utilising it in a course is often hard for a teacher. In this paper we illustrate how to construct strategies for solving programming exercises and how these strategies can be used to automatically support students using an intelligent programming tutor to incrementally develop a program. Using strategies for programming, specifying an exercise becomes relatively easy, and more flexible. 1

