The Combien? project

The “Combien?” group defined a methodology for designing the various components of an ITS. The group built a pedagogical system to help students to learn combinatorics using mathematical language. (see article)
Ciombinatorics is a mathematical domain where problem solving is based more on modelling than on deduction or calculation. In this project, students are provided with a presentation which is close to the natural language formulations that they tend to give spontaneously, while ensuring a rigorous mathematical reasoning. To do so, we have introduced three modelling levels : first a mathematical formalisation of the students’ intuitive process, then a conceptual and computational model allowing mathematical reasoning as well as communication with the student, and finally a presentation consisting in several interfaces, each one grouping problems ot some class. These interfaces are viewed as nondeterministic “machines” that the student uses to build a configuration satisfying some constraints. (see article)
Since the beginning of the Combien? project, we have conducted concurrently theoritical reflections and experimental implementations. The system is now operational and used at university. Its usage allowed us to highlight the benefits of such a knowledge based interactive learning environment (see article) and to infer lessons for learning environment engineering. (see article in French)

Mathematical theory

From our experience of teaching combinatorics in the classroom, we have defined the mathematical bases of a solving method, which we will call “the constructive method” .

To calculate the cardinal of the set of the configurations which satisfy the constraints given in the wording, it is possible to do so without enumerating the configurations but simply by reasoning on a description of the set of the configurations. Actually, the list of the elements can be given as the result of an enumeration algorithm. So, an efficient method for solving combinatorics problems consists in explicating this algorithm and then analysing it in order to predict how many elements it will generate, without having to execute it. It is this type of reasoning that we would like the student to follow.
It is often used by students and in textbooks, but in an informal and implicit way that may produce some difficulties. Thus, we defined the mathematical bases of such a method which we called the «constructive method». This method has the advantage that it allows the formulation of a rigorous proof of the solutions, but it demands a modelling of the problem and uses mathematical concepts which are not familiar to the students involved. It is adapted to the usual student’s conceptions and gives access to the mathematical theory of the domain. (see article in French)

Observation of experts of the domain at work reveals that they know classes of classical problems and that they know how to link to them valid schemes of constructive one-to-one definitions. They do this by determining the problem class through the analysis of its wording, and then instantiating the associated scheme in order to generate the equivalent constructive definition. The advantage of this method is that, when applicable, it guarantees the validity of the solutions thus obtained.
We worked out a classification of combinatorics problems bearing in mind their solution. To each class we associated a machine to build a solution. The reasoning on the various steps of the construction makes it possible to calculate the number of elements of the set to enumerate (see article).

Back to the top


A machine must build configurations according to the learner’s instructions and reason about these instructions, for example to verify that they respect the basic principle of counting. It must include a computational model of the domain that allows mathematical reasoning. Despite the anticipated variety of the machines, this model must be the same for all machines to reflect the internal consistency of the domain. It must allow to represent not only mathematical concepts, but also the problems and the learner’s activity, which is centred on a specific method (our constructive counting method).

We have defined such a model as an object-oriented conceptual model. The higher level classes are Problem and Construction, thus reflecting the learner’s activity: The learner is given a problem and s/he must represent it and solve it by providing a construction (a program). Each machine represents a certain construction type associated with a problem type. The definition of the conceptual model is based not only on the logical structure of the main concepts (problem, construction), but also on a concern that students can use a representation close to their usual language. This has been made possible by the fact that the underlying theoretical method (the constructive counting method) has been itself elaborated from the students’ usual answers. (see article)

Back to the top

Knowledge editors

In our system, we defined an internal language which we use to represent knowledge: the DESCRIPT language. It would be better to speak about a family of languages founded on a syntactic and structural common basis. Among these languages, the "description" language is used to represent the objects of the domain (including the exercises and their solutions) and has an import-export format in XML.

This language allows us to build resource editors, for example an exercise editor. Through this editor, the title and wording of the exercises can be input (in various languages) as well as a solution.

Back to the top

Interface builders

To create the various machines of the Combien? project, we defined a formalism to specify the dialogue in an interface. This formalism, related to Petri nets, is named IREC (Interacteurs àREseaux de Contrôle: Interactors based on Control Nets). In the control net of an interactor there are variables whose values are data and controls which command the traffic of the data in the net in reaction to events on these data. IREC enables composition of interactors and communication between interactors sharing variables. AGIREC, a generic object architecture, reifies the concepts of the formalism, makes them runnable and enables to bind them with the presentation widgets. EDIREC is an interactive environment to develop interfaces which enables to edit an IREC specification and to transform it into a running code using the AGIREC architecture. EDIREC is integrated to VisualWorks and has been produced by bootstrapping. (see article1 in French, article2 in French)

Back to the top

Learning environments engineering

Contribution to the design of pedagogical interfaces
We have conducted a reflection on the creation of interfaces from errors useful according to a pedagogical point of view. the errors which are and in the contrary the errors. Thus, the errors which do not enable to improve learning must be prevented and the errors which enable learning must be detected and explained. (see article).

Inferred Lesssons for inginering
In this article (in French), we present our analysis of the Combien? system from experimentations with students (see text in French), referring to problematics of learning environment design. We infer lessons for learning environment engineering. We illustrate this article with extracts of records of students using the system.

Back to the top


Error detection: Knowledge
The problem of the detection of students' errors arises in an incremental manner, at each input of information. We used the targeted detection mechanism for the incremental detection of errors in the building of the tree-like structure. The concept of target (new input element to be analysed) allows us to take into account the interactive aspect. In order to detect and explain the errors, the system needs specific knowledge. This knowledge is grouped in a data structure named error schema.
Error detection: Algorithm
The target ancestors are examined one by one beginning with the target itself. Each of them is a possible context of an error schema. For each context, each error schema is examined and only those whose context anchoring constraint and context type constraint are satisfied are selected. For these, we try to match the target element of the structure with the target variable of the pattern. The schemata for which such matches are possible are kept. For each kept schema, all the instantiations of variablessatisfying the error condition are sought.
This general principle can be improved by indexing the error schemata in the data base with the pair (context, target) as index key. (see article1 in French, article2, poster)

Back to the top

Contextual pedagogical supports

In the Combien? machines, an help button is linked to each validation context. There are several kinds of help:

  • For learning the course and solving the exercises
    For each machine there is a course which is distributed, shared out and presented at the right moment and when it is necessary. Thus, a same notion is presented in different manner according to the context.
  • For helping the use of the system
    In a similar manner, the help to use the "machines" is distributed and shared out. (see article)

For each error detected, a help for understanding it is displayed. But, it is a pedagogical choice to give reflection hints instead of corrections (see article)

Back to the top


Combien? proposes four "machines". They are all built as a "whole" world; they provide many contextual helps. These "machines" have been evaluated in 2002 first, in classrooms for senior high school students (Lycée carnot, Paris) , second with students in their teaching training year (in Mathematics in Paris6), third with mathematics teachers (see article). In 2003, these "machines" have been used in university Paris6 with second year students studying discrete mathematics and with senir high school students in Beauvais (Lycée Félix Faure). (see article1, article2)

Since 2004, this software is used in university René Descartes (Paris5) for second year student in a module of methodology (2004) (see article), then for second year students studying probabilities for a science degree.

Back to the top

Usage analysis

When using the software,all the events and inputs from the student are recorded in a Descript file so that the session can be re-played. This file is translated to a XML file. From XML files of all students, on one hand teachers can obtain statistics about each student production or about a group of students productions, an overview on errors which occur usually in an exercise; on the other hand students can obtain a summary about their work. (see article1, article2 in French, poster)

Back to the top


Combien? software has been registered at APP(Agence pour la Protection des Programmes) in 2009

Combien? is accessible for teachers, who can choose the exercises they want to present to the students and add new exercises, and for students at Université des Sciences en Ligne (Unisciel)

Back to the top