Faire de l’algorithmique avec CaRMetal

De la Seconde à la Terminale
mardi 16 juin 2009
par  Alain BUSSER

Une recommandation très sensée sur le choix du langage de programmation est que ledit choix soit dans la mesure du possible fait dans tout le lycée, voire dans toute l’académie. Il est donc temps de commencer à en débattre...

Je ne vois que deux moyens d’évaluer des élèves de Terminale en algorithmique : soit un TP, soit par écrit. Dans ce dernier cas il faudra qu’ils mettent sur leur copie, ou bien des organigrammes (testés il y a quelques années en collège pas avec un succès monstrueux...) ou bien des « scripts ». Alors la nature des probables prochains sujets de bac incite à choisir un langage qui soit plus ou moins le même pour tous les élèves de Terminale ; et donc dès maintenant pour tous les élèves de Seconde, à moins qu’on veuille changer de langage de programmation au cours de la scolarité en lycée...

En suivant les liens de l’article sur Scratch , on tombe notamment sur un séminaire des interlocuteurs TICE de janvier 2009 , et on y voit les recommandations suivantes :

Il serait judicieux d’utiliser un même langage dans un établissement
(pour faciliter les échanges entre enseignants et l’apprentissage des
élèves d’une année sur l’autre), voire dans une même académie (pour les
formations).

Il convient également de choisir un logiciel multiplateforme ayant une
interface simple avec une aide intégrée, un débogage explicite, dont le
langage fait la distinction entre l’affectation et l’égalité, ayant la
possibilité d’avoir du calcul symbolique et pouvant être installé
librement par les élèves chez eux afin qu’ils puissent éventuellement
poursuivre le travail amorcé en classe.

Outre le fait qu’il ressemble à une description de xcas (suis-je
parano ?) je suis d’accord avec ce texte :

  • Le système de développement doit être multiplateforme, car même si un seul élève d’une classe n’a pas Windows, il est intolérable de le lui imposer (constatons en passant qu’on n’imagine même plus la possibilité qu’un lycéen n’ait pas d’ordi du tout...).
  • Le système de développement doit être libre ou tout au moins gratuit, car on ne veut pas en imposer l’achat à nos élèves ni d’ailleurs à nous-mêmes. L’EN ayant considérablement enrichi Borland (turbo-pascal) puis Microsoft et Texas Instruments, on est en droit d’estimer que ça suffit.
  • Que le langage distingue les deux sens du « = » (test ou affectation) me semble moins indispensable mais j’adhère au moins à la recommandation. En plus je pense, à l’usage, que le « typage dynamique » est un confort qui peut donner de mauvaises habitudes (java par exemple impose que toute variable soit déclarée au début, et qu’on précise si elle est entière ou réelle par exemple).
  • Le document cité ci-dessus date de janvier, ils ne connaissaient pas les projets de Seconde, que je cite :

(les élèves doivent être capables)

• de programmer un calcul itératif, le nombre d’itérations étant donné ;

• de programmer une instruction conditionnelle, un calcul itératif, avec
une fin de boucle conditionnelle.

D’où un impératif supplémentaire sur le langage choisi : IL DOIT
PERMETTRE DE FAIRE DU « WHILE » OU DU « UNTIL »
.
Voilà qui décante sec : Ainsi ni les langages de l’IA ni execalgo ne
passent le portique ! (pour l’IA, je suis heureux que xlogo soit une exception, son concepteur ayant eu du nez, ou peut-être tout simplement du talent). Même Maxima est exclu...

  • Pour les possibilités de calcul formel, j’interprète par "ce sera nécessaire pour le futur bac S donc autant choisir ça en Seconde", mais je pense que c’est moins indispensable que le reste, d’autant plus que plus bas on lit une autre recommandation, sur la géométrie, qui n’est pas trop compatible avec le calcul formel (sauf à accepter xcas, nous y revoilà).
  • Pour l’aide intégrée je ne suis pas d’accord, personnellement je développe mieux avec les différents wikis disponibles un peu partout qu’avec ladite aide intégrée. Par contre toujours à l’usage, je découvre la force que représentent ces petits riens que sont la coloration syntaxique (voir les entiers en rouge et les réels en vert, ça aide vraiment), la complétion automatique (exemple connu : GeoGebra) et surtout le débogage : exemples particulièrement flagrants : Euler Math Toolbox et BlueJay (pour programmer en java).

Que reste-t-il alors ? J’exclus d’office et quelque peu arbitrairement les outils suivants :

  • Pascal, Prolog, yacas et metapost (passés de mode).
  • Les langages compilés (pas le temps en seconde, et imposent plus ou moins Linux, ce qui d’ailleurs ne me déplairait pas).
  • xcas (mes élèves m’ont expliqué ce qu’on ressent lorsque le logiciel plante 10 minutes avant la fin de l’heure, et qu’on est obligé de tout refaire...) [1].
  • Ensuite Basic et autres ne faisant pas la différence entre égalité et affectation sont exclus eux aussi.
  • Execalgo n’est pas multiplateforme, donc si l’EN veut en faire le choix il faudrait que quelqu’un se dévoue pour le recompiler sur Mac et sur Linux, et en profite pour l’enrichir un peu, notamment pour le graphisme... Hélas pour moi, Euler Math Toolbox est éliminé pour la même raison (seulement Windows). Dommage car il a de formidables exemples qu’on peut d’ailleurs consulter sur le site.

Il reste alors Javascript, ruby, lua (ces deux derniers ayant un
évaluateur en ligne qui évite d’avoir à les installer : C’est du
ultramultiplateforme !), SciLab, xlogo, gp, tcl/tk (mais je le trouve un
peu complexe), Asymptote, POV (mais lui c’est le « for...to » qu’il n’a
pas), Scratch et la TI 82-Stats de mes futurs élèves. Si je n’ai pas oublié
un autre superlangage ça se décante vraiment.


Une parenthèse sur GP : aux USA, jusqu’à une date récente, les cours
pointus d’algorithmique étaient souvent faits en GP, considéré comme un
excellent langage ; je vois ce
cours d’algorithmique,
mais aussi ce
logiciel nécessitant du calcul en haute précision, sur la théorie des nœuds.
De plus, dans mon comparatif ci-joint, GP est le langage qui donne le
programme le plus court, ce qui tend à le favoriser. Mais :

  1. Il n’a pas bougé depuis plus d’un an.
  2. Pour le calcul formel il est super mais pour le graphisme, moins.
  3. Y a-t-il une version Mac ?

Finalement après toutes ces élucubrations en tout genre voici mon choix :
je n’ai rien contre LOGO bien au contraire, ni contre la TI, mais :

  1. Javascript est utilisé dans les sites internet et ne risque donc pas trop de disparaître comme Pascal ou Basic.
  2. Le fait qu’il soit rigoureux et en anglais empêche les risques de confusion chez les élèves qui finissent par croire qu’un langage de programmation est une langue naturelle, ce qu’il n’est pas.
  3. La possibilité qu’a GeoGebra de communiquer avec Javascript, comme ceci lui rend accessible le fameux calcul formel, et même un tableur...
  4. Javascript va bientôt posséder un éditeur qui simplifie nettement la programmation, je peux en témoigner pour l’avoir pas mal testé ; on peut se faire une idée en regardant la version « webstart » de CaRMetal (cliquer sur « lancement java webstart... »). Pour résumer :
    1. On choisit les instructions dans un menu partiellement graphique au lieu d’avoir à les taper.
    2. Les boucles par exemple apparaissent alors avec des exemples tout faits.
    3. En cas d’erreur de syntaxe, l’exécution s’arrête avec un message d’erreur en anglais mais le curseur va là où ça s’est arrêté. J’insiste sur l’utilité des messages d’erreur qui sont suffisamment complets.
    4. Un bouton permet de réinitialiser tout (pratique en cas d’erreur).
    5. Les instructions graphiques : C’est CaRMetal !
    6. L’exécution est suffisamment lente (et on peut encore la ralentir) pour que les élèves voient ce qui se passe.
  5. La mode fait que des tutoriels Javascript, on en trouve partout en ce moment, il y en a même en français pour les allergiques à la langue de Donald Knuth, auteur de la bible sur l’algorithmique, et accessoirement de TeX.
  6. À l’usage toujours, j’ai trouvé la mise au point sous Javascript encore plus rapide qu’avec GP ou LOGO, c’est dire !

Ce choix des « CarScripts » est le fruit d’une réflexion de plusieurs semaines menée sous la forme d’une sorte de banc d’essai dont le fruit est un document téléchargeable ci-dessous au format pdf. Bonne lecture !


Une remarque finale sur les exercices consistant à donner un algorithme et demander aux élèves de deviner ce qu’il fait (pas facile du tout d’ailleurs) : une partie de la science algorithmique porte sur une logique spécialement développée pour ça, appelée calcul de Hoare et dont les versions modernes utilisent la théorie des types. Il existe dans le monde du libre, des outils de développement intéressants quoique difficiles (disons plus intéressants pour les profs que pour les élèves), parmi lesquels

  • Otter ;
  • coq développé par l’INRIA et utilisé notamment par WIMS ;
  • Axiom à qui on a tellement fait prouver automatiquement des théorèmes, qu’il en est devenu au cours des ans, un logiciel de calcul formel très puissant.

[1Le plantage semble être plus dû à Cygwin qu’à xcas. Dit autrement, si xcas plante sous Windows, c’est peut-être plus à cause de Windows qu’à cause d’xcas... Ceci dit, xcas a évolué et il est possible que la critique ci-dessous ne soit plus d’actualité. En plus il y a un xcas en ligne.


Documents joints

banc d'essai programmation
banc d'essai programmation

Commentaires

Logo de parisse
mercredi 1er juillet 2009 à 17h53 - par  parisse

Comme indique dans la note [1], Xcas a beaucoup evolue, de nombreux bugs ont ete corriges et la prise en main devrait etre facilitee par la nouvelle structure de menus et les assistants. J’invite donc les personnes qui ont teste il y a plus d’un an et ont pu etre rebute par certains aspects a refaire une nouvelle tentative et a nous faire part de leurs critiques sur le forum de Xcas (menu Aide->Internet->Forum de Xcas). En particulier, un fichier de sauvegarde automatique est cree, ce qui permet en cas de plantage de ne pas perdre son travail.
Concernant l’algorithmique, on peut utiliser des structures de controle entierement en francais (pour ceux qui preferent), et l’instruction debug permet de mettre au point facilement un programme qui ne marche pas ou d’executer pas a pas un programme en voyant evoluer la valeur des variables locales ce qui a certainement un interet pedagogique.

Logo de Daniel LAUZEL
samedi 20 juin 2009 à 09h59 - par  Daniel LAUZEL

Le niveau d’expertise d’Alain ne m’étonne guère ( mais peut effrayer le professeur lambda que je suis qui devra se lancer dans l’algorithmique à court terme) mais je pense au contraire que le débat ne se situe absolument pas là ( et je revoie au commentaire de Dominique ) je pensais naïvement qu’on pouvait faire de l’algorithmique de façon totalement indépendante des langages et des machines qui n’ont d’importance que pour celui qui programme…et que le passage à la vérification sur une machine est totalement inutile car si l’algorithme est juste, il trouvera sa traduction dans n’importe quel langage ( aux astuces du langage près ) …le reste est une affaire de programmeurs …Peu importe donc de ce dont on dispose…l’algorithme sera vérifié sur le matériel et le langage qu’on aura étudié. Pour évaluer un algorithme point besoin de langage non plus …me semble – t- il…
Il m’est même arrivé de dire à mes élèves à qui j’essayais d’apprendre à programmer leurs machines , dans un premier temps d’oublier justement la machine et son langage pour s’intéresser au problème et à la tâche à accomplir, à l’algorithme pour la réaliser et que le reste s’imposerait dans le langage utilisé…ça avait l’air de marcher…

Logo de Christophe Nicol
jeudi 18 juin 2009 à 00h22 - par  Christophe Nicol

Je me permets d’exposer un point de vue différent.

L’intérêt premier de l’algorithmique est de mon point de vue la programmation. Un langage de programmation offre une vérification de la validité de l’algorithme. Une fois passée la maitrise d’un langage (qui devra forcément être très simple), l’élève pourra tester ses raisonnements. C’est sans doute là la vraie innovation !

Un langage qui devrait être commun aux enseignants d’un même établissement (au moins) pour anticiper des éventuelles épreuves évaluées comme l’est actuellement l’épreuve pratique expérimentale en TS (plusieurs langages rendrait une évaluation de ce type difficilement réalisable).

Logo de Dominique TOURNÈS
mercredi 17 juin 2009 à 11h13 - par  Dominique TOURNÈS

Dans le débat ouvert par Alain, il me semble important de rappeler que l’essentiel, ce n’est pas la programmation, mais l’algorithmique. À ce propos, je signale la mise en ligne de l’article Une semaine d’algorithmique avec Christophe Darmangeat. Dans le document intitulé « Petit ABCD d’algorithmique », on trouve en deux pages la définition d’un langage universel pour coder les algorithmes et un cours complet pour le programme de Seconde. L’autre document « Exercices ABCD d’algorithmique » donne une idée des exercices qu’il est envisageable de proposer. Les élèves peuvent très bien, dans un premier temps, exécuter leurs algorithmes eux-mêmes, sur le papier (c’est très formateur).

Annonces

Prochains rendez-vous de l’IREM

Séminaire EDIM-IREM

- Mercredi 8 mars 2017, 14h-18h, PTU, Saint-Denis, salle S23.6
- Mercredi 12 avril 2017, 14h-18h, campus du Tampon
- Mercredi 3 mai 2017, 14h-18h, PTU, Saint-Denis, salle S23.6
- Mardi 13 juin 2017, 14h-18h, campus du Tampon
- Mercredi 14 juin 2017, 14h-18h, PTU, Saint-Denis, salle S23.6

Semaine des mathématiques

Du 23 mars au 4 avril 2017 dans l’académie de la Réunion.


Brèves

À travers les labyrinthes : algorithmes et fourmis

dimanche 1er septembre 2013

Quand les chercheurs mettent au point des modèles d’optimisation et de recherche de plus court chemin qui s’inspirent du comportement de masse de colonies de fourmis...
À écouter : Sur les Épaules de Darwin, émission diffusée sur France Inter samedi 31 août 2013.

Rencontres Mondiales du Logiciel Libre à St-Joseph

mardi 20 août 2013

Les RMLLd se dérouleront pour la 2e fois à Saint-Joseph du 22 au 25 août.
C’est une opportunité pour les élèves qui suivent la spécialité ISN et les passionnés d’informatique.

Voici pour le samedi et le dimanche quelques interventions choisies :
- http://2013.d.rmll.info/Raspberry-votre-ordinateur-au-format-carte-de-credit?lang=fr
- http://2013.d.rmll.info/Materiel-libre-et-DIY?lang=fr
- http://2013.d.rmll.info/Arduino-de-l-electronique-libre?lang=fr

Noter aussi les conférences Art et Culture du dimanche, ainsi qu’une conférence plus engagée.

Le programme complet se trouve ici. Une radio sera ouverte pour l’occasion.
Des plaquettes à distribuer se trouvent ici.

Hyper-vidéos pour l’algorithmique au lycée

dimanche 19 août 2012

Olivier Roizès, à la demande de l’ADIREM, a réalisé une collection d’hyper-vidéos de présentation de logiciels et environnements de programmation. Ces hyper-vidéos, c’est-à-dire des vidéos contenant des éléments clicables, devraient être utiles aux enseignants désireux de se familiariser avec Python, CaRMetal, R, Rurple, Scilab ou Xcas.

Ouverture du SILO

mardi 1er novembre 2011

Le SILO (Science Informatique au Lycée : Oui !) est un espace collaboratif documentaire de partage et de formation collégiale, à destination des professeurs appelés à enseigner l’informatique au lycée.

Une initiative du CNDP, de l’INRIA et de Pasc@line, à laquelle se sont associés SPECIF, fuscia, EPI et ePrep.

Sur le Web : Site du SILO

Introduction à la science informatique

lundi 12 septembre 2011

Le CRDP de Paris publie le premier ouvrage destiné aux professeurs chargés d’enseigner la nouvelle spécialité « Informatique et sciences du numérique » en Terminale S à la rentrée 2012. Cet ouvrage a été coordonné par Gilles Dowek, directeur de recherche à l’INRIA.

Sur la création de la spécialité ISN, on pourra également consulter l’interview donnée au Café pédagogique par l’inspecteur général Robert Cabanne.

Sur le Web : CRDP de Paris

Deux publications sur l’algorithmique

samedi 17 octobre 2009

L’IREM d’Aix-Marseille publie une brochure de 73 pages, téléchargeable librement, intitulée Algorithmes et logique au lycée. Ces notions sont illustrées et déclinées sur des exercices du programme de spécialité mathématique en série L, mais sont adaptables aux programmes à venir.

Le hors série thématique n° 37 du magazine Tangente, disponible actuellement en kiosque, s’intitule « Les algorithmes. Au cœur du raisonnement structuré ». Extrait de l’éditorial : « La rédaction de Tangente a conçu la quasi-totalité de ce hors série thématique pour qu’il puisse être lu par des élèves de Seconde ».

Une carte mentale pour l’algorithmique

jeudi 10 septembre 2009

Sur son site, Jean-Jacques Dhénin a publié une carte mentale géante qui renvoie vers plus de 30 documents en ligne sur l’algorithmique. Tout ce qu’il faut — et même davantage — pour faire face au nouveau programme de Seconde !

Un catalogue libre d’algorithmes pour le lycée

dimanche 30 août 2009

Guillaume Connan, de l’IREM de Nantes, publie un catalogue libre de 119 pages d’algorithmes pour le lycée. Sur son site très riche, on trouvera d’autres documents en rapport avec l’algorithmique, notamment sur l’utilisation des langages fonctionnels au lycée et sur la comparaison programmation fonctionnelle/programmation impérative.

L’algorithmique à l’IREM de Lille

vendredi 26 juin 2009

Le groupe AMECMI de l’IREM de Lille vient de mettre en ligne des ressources importantes au service des professeurs de Seconde :

- Algorithmique et programmation (Emmanuel Ostenne)
- Bibliographie amoureuse de l’algorithmique (Alain Juhel)

Statistiques

Dernière mise à jour

dimanche 26 mars 2017

Publication

735 Articles
Aucun album photo
128 Brèves
11 Sites Web
126 Auteurs

Visites

0 aujourd'hui
1228 hier
1964761 depuis le début
9 visiteurs actuellement connectés