Il y a de très grands écarts de niveaux entre mes élèves quand ils doivent écrire des algorithmes. Comment faire ?

À propos de cette page
Naviguer dans la rubrique
Partager

Un passage trop rapide à l’utilisation d’un langage formel ou même à un Langage Intermédiaire de Programmation (Algobox), risque donc d’être un révélateur de l’inadéquation des SRT propres aux élèves aux tâches qu’on leur confie.

Comme nous l’avons expliqué, l’algorithmique s’appuie sur un vécu de chaque élève qui dispose de modes de représentations et de traitements des données (STR). Ces représentions prennent donc une place beaucoup plus importante dans la vie mathématique des élèves que dans le cas de l’étude de la plupart des autres objets rencontrés (produit scalaire, équations du second degré, …)

Un passage trop rapide à l’utilisation d’un langage formel ou même à un Langage Intermédiaire de Programmation (Algobox), risque donc d’être un révélateur de l’inadéquation des SRT propres aux élèves aux tâches qu’on leur confie.

La gestion de classe est alors rendue d’autant plus difficile que les représentations des élèves n’ont pas fait l’objet d’activités tendant à les faire circuler dans la classe afin de les homogénéiser.

Voici, de manière succincte, comment Hoc propose de décrire les étapes de construction d’un SRT.

Première étape : S.R.T. minimal (l’algorithme est représenté en tant qu’entité unique). Dans chaque problème, l’élève associe très souvent l’algorithme qu’il doit élaborer à des situations particulières et à des modes de traitements qu’il a déjà rencontrés. Il peut alors modéliser correctement l’algorithme mais conduire à un programme erroné. Cela est dû au fait que le langage utilisé n’est pas encore correctement intériorisé et que l’élève en effectue une traduction mot à mot.

Exemple

Dans l’exemple ci-dessous, l’élève éprouve le besoin de nommer l’algorithme. Il associe la production d’un algorithme à celle d’un calcul algébrique tel qu’une fonction que l’on nomme (Lagrange).

Deuxième étape : le langage utilisé n’est pas encore totalement intériorisé par l’élève. L’élève ne peut encore organiser l’algorithme verticalement. Il « se contente » de bribes juxtaposées les unes à côté des autres. Il peut écrire l’algorithme dans un langage à condition qu’il puisse se représenter chaque action élémentaire. Il perd alors la vision de l’algorithme.

Troisième étape : intériorisation du langage utilisé. Les actions élémentaires, les procédures les plus souvent utilisées et la syntaxe sont intériorisées ce qui permet à l’élève de se construire une représentation globale de l’algorithme dans le langage utilisé et d’optimiser sa représentation des données. L’élève peut alors se concentrer sur les parties difficiles à “algorithmiser”.

Tous les élèves ne franchissent bien entendu pas ces trois étapes à la même vitesse ou au même moment. De plus, le fait de penser qu’écrire un programme est donc une simple transposition dans un nouveau langage dont il suffirait de connaître les règles grammaticales a été largement remis en cause.

Ainsi, Pair précise que « l’aide méthodique ne portera pas sur les mêmes difficultés selon la classe du problème de programmation posé à savoir si "programmer c’est faire faire un calcul" ou si "programmer c’est concevoir un algorithme". Il importe donc, de varier les situations et les sujets avant de rencontrer des situation de programmation, même dans des langages Intermédiaires formels.

De plus, Duchateau y ajoute les difficultés liées aux représentations de ce qu’est un ordinateur et son mode de fonctionnement, difficultés que nous rencontrons déjà dans nos activités liées à l’informatique.

Il est donc nécessaire d’agir en amont dans la progression et s’assurer d’une cohésion à minima des éléments du Langage Intermédiaire commun dans la classe. Voir pour cela la partie Progression.

Synthèse :

  • Varier les situation d’écriture et les forme d’exercices
  • Développer le travail sur le langage Intermédiaire.
  • Repousser les premiers contacts avec les langages intermédiaires formels