Download What toolbox is necessary for building exercise environments for

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Algorithm characterizations wikipedia , lookup

Computational fluid dynamics wikipedia , lookup

Inverse problem wikipedia , lookup

Algorithm wikipedia , lookup

Multiple-criteria decision analysis wikipedia , lookup

Theoretical computer science wikipedia , lookup

Factorization of polynomials over finite fields wikipedia , lookup

Regular expression wikipedia , lookup

Mathematics of radio engineering wikipedia , lookup

Computational electromagnetics wikipedia , lookup

Genetic algorithm wikipedia , lookup

Transcript
What toolbox is necessary for
building exercise environments
for algebraic transformations
Rein Prank
University of Tartu
[email protected]
We need exercise environments
Most popular software for expression manipulation tasks
are Computer Algebra Systems.
But we need also environments where the student could
construct himself step-by-step solutions,
exercise the technical skills.
It should be possible
make mistakes,
get feedback and hints,
use the software for assessment of step-by-step
solutions
Existing environments
Some examples exist already
• MathXpert (M.Beeson) – rule-based transformations
• Aplusix (J.-F.Nicaud et al) – input-based transformations
• T-algebra (Tartu) – rule+operands+input
• Several attempts for small problem areas
Why not more?
Creating of exercise environments requires perfect
implementation of big amount of underlying mathematics
and syntactical functions.
We could have more interesting programs if the
implementations of necessary kernel functions were
available.
This paper
Extracts kernel functions which are necessary for building
exercise environments for school (and further) algebra,
and tries to identify what components could be borrowed
from universal toolboxes (underlying CAS or libraries of
utilities).
We add some general considerations and future dreams.
Solution dialog
Depending on didactical ideas and application areas the
solution environments can have different kinds of
solution step dialog
For learning of technical rigour (basic school) the student
should enter the resulting expressions himself and the
program should verify them
For more creative tasks (complex equations, factorization,
integration) it could be better to have rule-based
interface where the student can try the solution ideas
In this paper we count with needs of both approaches
Assumed step dialog
We assume that in most detailed working modes the
solution step could contain three substeps:
1) selection of the operation (conversion rule) from the
menu,
2) (precise) marking of operand(s) in expression,
3) entering the result of operation.
Step dialog in T-algebra
Most important kernel functions
1.
2.
3.
Sufficient spectrum of syntactical constructions.
Editor for expressions in planar form.
The editor functionality of marking of several separate
operands.
4. Checking of syntactical correctness of
expressions/marking.
5. Checking of suitability of marked operands for selected
operation.
6. Verification of equivalence of expressions/equations/…
7. Execution of all menu operations.
8. Checking of consistency of the entered result with
operation and operands.
9. Execution of ‘textbook algorithms’ for all task types.
10. Checking of final form for all task types.
1. Sufficient spectrum of syntactical
constructions
Some examples:
• Radicals
• Exponents
• Fractions, mixed numbers
• sin² (x), sin x
2. Editor for expressions in planar form
and underlying plain-text representation of
expressions/equations/systems
Some standard for this is needed
3. The editor functionality of marking of
several separate operands
4. Checking of syntactical correctness of
expressions/marking
Syntax can be different for different classes of tasks, in
different countries, ...
It is not sufficient to have an editor where the marking
jumps from one correct position to the next automatically
(this is good for CAS but not for acquiring of initial skills)
5. Checking of suitability of marked
operands for selected operation
Problem: usually some (but not precisely
defined) preprocessing is allowed
Example: combine like terms in
3aba+4a²b-ba²+7a²b
6. Checking of equivalence of
expressions/equations/…
This is the most critical kernel function for input-based
environments: the environment should be able to verify
correctness of the step
Computer algebra systems are not able to solve this
problem
• Decision problem can be unsolvable
• Evaluation of variables helps in some cases (but not for
zero-measure differences)
Negative result
(Richardson, 1968 + Matiyasevich, 1970)
Let F denote the class of functions in one real variable that can be
defined by expressions constructed from
the variable x,
the integers and the number π,
combined through addition, subtraction, multiplication,
sin and abs (absolute value).
There is no algorithm for deciding for an arbitrary given
expression E(x) from the class F whether the equality
E(x) = 0
holds identically for all values of x.
Corollary. Problem of equivalence of expressions in school
trigonometry is undecidable
7. Execution of all menu operations
• It would be nice to have at least the most standard
operations already implemented.
• It would be better to have only the most ‘elementary’
content of the operation implemented: with
preprocessing but without postprocessing
Example: multiplication of polynomials but without
collection of like terms
8. Verification of consistency of the
entered result with the operation and
operands
Sensitive to particular demands and
traditions
9. Execution of ‘textbook algorithms’ for
all task types
• Some task types are taught without solution algorithm
(factorization, ...)
• Algorithms can have ‘local’ variations
Example. In some countries mixed numbers are
converted to improper fractions before addition
10. Verification of the final form for all
task types
• Sensitive to particular demands
Example: ordering of members of polynomial can be
required/not required
Library for verification of particular syntactical features
could be useful
What could contain the toolbox:
included/ frequent cases/ utilities for syntactical
categories
1.
2.
3.
Sufficient spectrum of syntactical constructions.
Editor for expressions in planar form.
The editor functionality of marking of several separate
operands.
4. Checking of syntactical correctness of
expressions/marking.
5. Checking of suitability of marked operands for selected
operation.
6. Verification of equivalence of expressions/equations/…
7. Execution of all menu operations.
8. Checking of consistency of the entered result with
operation and operands.
9. Execution of ‘textbook algorithms’ for all task types.
10. Checking of final form for all task types.
Good library of utilities for checking of syntactical
categories is also very important
for implementation of error diagnostics
Some general problems of consistent
use of CAS/libraries
• Number domain: C versus R or even Q, Z, N
Switching to R in CAS-s is not always correctly
implemented
• Universal preprocessing: conversion of expressions to
internal form of particular CAS
– not acceptable for school exercises
• Explicit output of assumptions made by simplification
operations: x²/x=x if x≠0.
In some topics we teach students to this but CAS-s
mainly ignore the issue.
Some nice dreams
• Universal transformation engine
for arbitrary transformation algorithm,
based on ordered list of transformation rules (and some
restrictions)
• Universal checking engine
for checking of syntactical properties,
based on list of required syntactical categories
• Universal mathing engine
for establishing of matching/unlike structure/parts of two
expressions