# How many math examples should contain an ideal software?

There are mathematics programs with no single example at all and there are programs with huge repositories of math examples. Both program types have their advantages and disadvantages. In general, there are three ways to get math examples into a program:

1. To allow a manual input of examples
2. To develop a generator of examples
3. To build an internal database of examples

Let us discuss what does the user loose or gain, depending on what way the software developer takes.

## Manual examples entry

To implement this path, the developer devises three main software components:

1. The data entry editor
2. The database of solving algorithms (as no universal solving algorithm exists)
3. The system of algorithm retrieval

An editor can be either general, like the MSWord, or textual. In both cases, a math example entry is quite a difficult job that requires skill, constant attention and accuracy. Thus, the user has to face the following organic challenges:

• Find an example somewhere
• Get familiar with the data entry editor
• Exercise “vigilance” while typing every example
• Spend quite a time on typing
• Learn all available solving algorithms
• Decide on a solution method applicable to the given example

Only after all these challenges are met, the user can begin working with the program. For a professional mathematician, the only real challenge is the data entry. For a student all challenges are real and some are compelling. The children-oriented programs are sometimes supplied with small rigidly structured databases of examples. The purpose of such databases is to help kids guess the proper solution method by an example appearance.

## Examples generator

The generator of examples is a program where an example is described in a parametric form. When parameters are specified, the program generates concrete examples of the given type. The set of parametric descriptions makes up a specific database of structures. To implement this approach, the developer should devise three components:

1. The database of structures
2. The system of search over structures
3. The input editor for structures

The search system is a list of topics connected to the database of structures. The input editor enables user to enter parameters of a structure and the number of examples of this type to be generated. Such editors, if they are made professionally, do not permit wrong input. In the program of such type, a certain structure is related to a certain algorithm. This means that the program always knows how to solve examples. To work effectively with such program, the user has to:

• Understand how the system of search over structures works
• Select a particular structure
• Learn how to use an input editor
• Enter concrete parameters

## Internal database of examples

To implement this approach, the developer should devise the following components:

1. The database of examples
2. Various search systems

If the database of examples is small, then the search over contents alone is good enough. If the database is large, then searching by various criteria becomes essential. To work effectively with such program, the user has to:

• Understand how search systems work
• Select a particular search system
• Select a concrete example

Thus, described are three possible schemes of program development. The first scheme shows that educational programs without any included examples are conceivable. In the second scheme, examples are “archived”. In both cases, to input or dearchive examples, the user has to pay by his efforts pictured above. The programs with large databases of math examples, on the other hand, require some skill of example selection. The between-developers debate what is more convenient – to enter an example “easily and gracefully” or “to sweat” searching over large databases, is rather senseless. Let user answer this question.

As a matter of fact, a real disadvantage of the first two schemes is that they do not allow any structuring of math examples. After you have created a database of math examples within these schemes, you cannot sort your examples by any useful attribute – by topic, solution method, type of tasks, level of complexity, etc. However, all these attributes or structuring principles come from pedagogics and their use is validated by a centuries-old teaching practice. If the program is intended to teach, and not to demonstrate an intellectual power of the developers, then it should put these principles into service.