Algorithmique au lycée

Bonjour,

Je démarre ce fil pour recueillir les avis et conseils d'enseignants qui ont intégré à leurs cours de lycée des logiciels/langages de type XCas, Scilab ou Python.

En particulier,
  • Comment avez-vous surmonté les difficultés d'installation, de version des langages (python 2 ou 3 par exemple) ?
  • Comment l'intégrez-vous dans votre classe (séances dédiées, utilisation au moment opportun dans le cours...) ?
  • Comment différencier les élèves "à l'aise" avec l'outil informatique et ceux qui ne pigent rien ?

Cordialement,
Samuel DM

Réponses

  • Python est hors de portée en lycée, Xcas est horriblement laid (et l’ergonomie pas géniale), Scilab me semble aussi hors de portée et un marteau pour enécraser une mouche.
    J’utilise plutôt le langage de leur calculette ou Scratch en ligne en seconde.
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • Python hors de portée au lycée ??
    Quelle bonne blague !
    Ça fait 5 ans que je l'utilise en commençant par yne approche graphique en
    seconde...

    Yann
  • On ne doit pas avoir les mêmes élèves. En TS, je veux bien, en seconde, laisse tomber.
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • D'accord avec Yann, je suis très très loin d'avoir la crème des élèves dans mon lycée.
    Je ne suis pas un gros fan et spécialiste de TICE, mais avec mon petit niveau et le peu que je fais, je trouve que Python est vraiment très simple à enseigner, je l'utilise avec mes secondes, ils aiment bien. (La tortue est vraiment l'idéal pour bien appréhender les boucles en secondes à mon avis.)

    Je trouve bien plus digeste, qu'algobox, ou Casio par exemple, qui sont plus difficiles je trouve...
  • Après ce qui important à mon avis, c'est d'utiliser le langage avec lequel on est vraiment à l'aise... Si on est bien sur un domaine on l'enseignera correctement. Mon message précédent, n'est pas du tout dogmatique, je suis bien avec Python, je trouve que ça passe très bien avec les élèves, donc je continue. Si un collègue préfère autre chose, il a raison aussi. ;-) Il n'y a pas une vérité en la matière.
  • Je suis plutôt à l’aise moi(même avec Python, c’est ce que j’utilise pour moi.
    J’ai essayé avec les élèves (ligne de commande dans ideone), ben ils n’ont rien compris, même un simple print.
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • Je viens de mettre en favori le site Ideone. En tout cas ça répond au problème de la version de Python puisqu'il n'y a carrément pas de logiciel à télécharger. Dans le genre interface sur navigateur, il y a le cloud de Sage et l'interface SmartCAS pour giac ie. Xcas sans la programmation. Pour Scilab, j'ai trouvé ça.

    On peut exécuter du code et récupérer le résultat dans la fenêtre à côté. L'inconvénient des solutions de cloud c'est le temps de connexion. L'avantage c'est évidemment la flexibilité.

    Sinon comment vous-y prenez-vous ? Faites-vous des séances de TD/TP en salle informatique ?
  • @Nicolas.

    Et comment sont tes élèves sur calculatrice ? En fait, je ne vois pas pourquoi ils seraient moins à l'aise avec input ou print plutôt qu'avec un "prompt" ou "un disp" ? Il n'y a que des avantages avec l'ordi, grand écran, facile à taper, indentation, nom des variables... Je ne suis pas spécialiste mais je suis preneur de renseignements, quel truc sur Python serait plus dur à comprendre qu'avec T.I par exemple ?

    Amicalement. ;-)
  • Quand ils sont nuls en algo, la syntaxe bizarre de Python les perd encore plus.
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • "Quand ils sont nuls en algo, la syntaxe bizarre de Python les perd encore plus."
    Là tu abordes un problème important : quel est le rapport entre un algorithme et un code écrit avec tel langage informatique ? Pour moi aucun.
    L'algorithmique existait bien avant les ordinateurs.
    Pour faire un programme, les deux sont nécessaires, mais il n'est pas indispensable que ce soit le même individu qui ait fait les deux.
    Je sais que mon intervention peut étonner, mais je suis prêt à développer.
  • Tu vois ça en tant que prof habitué et débrouillé. Quand tu découvres l’algo, c’est inutile de rendre la chose encore plus compliquée avec un langage bizarre.
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • Bonjour Nicolas,
    Si c'est à moi que tu t'adresses, je ne suis pas prof et ne l'ai jamais été.
    J'ai observé et suivi les débuts de l'informatique depuis ...(presque le début).
    Sauf un peu d'"informatique générale", je me suis formé tout seul.
    Maintenant, on a bien dissocié "algorithmique" et "programmation", alors que vers les années 70, la difficulté principale se situait au niveau de la programmation, les problèmes à résoudre étaient tellement "simples" que l'algorithme était évident.

    Je me pose aussi une question qui va surprendre : pourquoi apprend-t-on la programmation au niveau lycée ?
    J'ai un exemple très précis en tête : un élève de seconde ou première a découvert l'informatique, et ça le passionne. Parfait, tant mieux.
    Un modérateur (peu inspiré et vidé pour d'autres raisons) lui conseille d'utiliser le Python.
    Il bricole, passe son bac, la fac, puis entre dans une école d'informatique.
    Et là, oh surprise, après 3 ou 4 ans dans une stricte ambiance d'étude informatique, il se retrouve au niveau ZERO. Par exemple confusion entre le OR et ou de la langue française.

    Là où je veux en venir, c'est que si on s'était limité à lui apprendre la logique, décrire des ordinogrammes etc. on lui aurait donné une bonne formation générale sur le bases, et ça lui aurait évité de perdre 3 ou 4 ans. Et si l'informatique l'avait intéressé, il aurait bien réussi à apprendre la programmation tout seul.
  • Certes, l'algo et la prog sont pas à confondre, mais...

    Aprendre l'algorithmique sans jamais faire de calcul (avant on les faisait à la main, maintenant on prend un ordinateur), c'est comme apprendre à cuisiner sans jamais toucher une casserole.

    Par ailleurs, si une personne ne comprend pas que le "ou" français est souvent utilisé dans un sens exclusif (contrairement au OR), eh bien il faut lui donner des cours de français !
    Cela ne remet pas du tout en cause la programmation dans tel ou tel langage.

    Je n'ose pas imaginer un ingénieur informaticien qui ne comprendrait pas la signification du OR ... Faut arrêter les délires sur l'éducation nationale à ce niveau-là.
  • Pour revenir à la question posée par l'initiateur de ce fil, voici la progression que j'ai pu avoir cette année en seconde en algo. Je précise que chaque semaine, j'avais mes élèves en classe dédoublée avec une salle info à disposition.

    1) algo cours1 2014 (la première semaine)
    2) TP Python 1 à 3 (son illustration, avec travail sur les boucles via la tortue et un peu de calcul aussi)
    3) complément utile et utilisé : Fiches de programmation n°1 à n°3
    4) exos sup TP 1 à 3 (pour ceux qui finissaient en avance leurs TP, et il y en avait...)

    tout ceci fini entre Toussaint et
    Noël

    5) algo cours 2 2014 (les instructions conditionnelles)
    6) TP Python 4
    7) exos sup TP 4 (toujours en plus pour les plus rapides ou en exos d'entrainement)

    courant janvier

    8) TP Python 5 à 6 (listes et chaines de caractères puis fonctions. J'ai très peu insisté sur le TP6, pas indispensable)
    9) Fiche de programmation n°4 : complément sur la notion de fonction
    informatique

    Avec à l'occasion de divers chapitres : géométrie et surtout probabilités, ou autres quelques petits algos à coder.

    Je donne les fichiers utilisés en PJ à ceux qui les voudraient. M'envoyer un MP.
  • Ah oui, tu as fait ça sérieusement alors. Mais est-ce que tu faisais ça dans des créneaux dédiés pendant la semaine ?
  • Oui. A raison d'une heure par semaine pour chaque demi-groupe pour ne pas avoir une progression coupée car pas vu depuis trop longtemps, il faut tout revoir à chaque fois, etc.
    En TICE, on aura aussi touché un peu Geogebra et le tableur.
    Pour ce qui est de la géométrie avec Python, je me suis toujours arrangé pour que les exos collent le plus au cours pour le réinvestir (conditions de colinéarité de vecteurs, équations de droites, trigo...). Autrement dit, pas la peine de chercher à écrire le moindre algo sans la connaissance du cours.

    Les autres heures de la semaine et l'AP étaient destinées aux chapitres "plus classiques", avec un gros travail sur l'aspect calcul, très peu maitrisé.
  • Ma contrainte pour l'an prochain : première S 4h/sem dont une dédoublée. Pas d'heures d'accompagnement qui pourraient me permettre d'assurer le programme tout en faisant le reste. C'est un vrai casse tête !

    Ah oui, il faudrait aussi préciser que les cours durent 50 minutes... Bref si vous avez des idées, je suis preneur.
  • Mmm, pas évident en effet. Tout dépend aussi de ce que tes élèves ont vu en seconde.
    Dans tous les cas, revenir brièvement sur les bases est toujours bénéfique, et ensuite contextualiser (suites notamment en 1S et un peu les probas).
    J'étais un peu dans le même cas l'an dernier.
  • A nicolas patrois:
    Je suis atterre par vos commentaires sur Xcas ("Xcas est horriblement laid (et l'ergonomie pas geniale)"). Vous avez le droit de ne pas aimer Xcas, mais si votre critique se veut objective, alors elle doit etre factuelle, sinon indiquez clairement que c'est un ressenti subjectif. Passons sur le horriblement laid (les gouts et les couleurs), cela ne devrait surement pas etre le premier critere de choix, discutons plutot de l'ergonomie pour programmer dans Xcas , que lui reprochez-vous ?
    J'ai pas mal travaille pour que justement l'ecriture et la mise au point d'une fonction soit simples dans l'editeur de programmes : assistants de creation de fonction, boucle et test, mots clefs du langage en francais colores en bleu, commandes Xcas colorees en brun, execution possible en mode pas a pas avec debug() avec affichage des variables locales pour comprendre le deroulement d'un programme et corriger des erreurs. Je ne teste pas personnellement avec des eleves de lycee, donc difficile de savoir a quel niveau on peut enseigner l'algorithmique avec Xcas, je dirais entre la seconde et la terminale en fonction de la maitrise de Xcas par l'enseignant, et c'est probablement identique pour Python.
    Cela sans tenir compte de la normalisation engendree par les exercices du bac qui sont calques sur l'utilisation d'Algobox. Ce qui a mes yeux presente le defaut de ne pas utiliser de fonctions, donc pas de decoupage d'un probleme en plusieurs sous-problemes, pas de reutilisation de fonctions utilitaires, pas de notion de variables locales, et confusion entre entree au clavier/argument, affichage/valeur de retour. De plus, beaucoup d'enonces au bac vont a l'encontre de bonnes pratiques de programmation, a savoir commenter son code. Comment voulez-vous demander a des etudiants de commenter leur code si l'enonce a l'examen est un bloc de code non commente dont on demande ce qu'il est cense faire?
  • Python hors de portée au lycée ??
    Quelle bonne blague !
    Ça fait 5 ans que je l'utilise en commençant par une approche graphique en seconde...

    Yann

    +1

    J'ai un collègue qui fait Python depuis plusieurs années sans soucis, il a même fait des émules.
  • Bonjour à tous,

    Il me semble que l'utilisation d'un logiciel ou de la calculatrice doit se faire très régulièrement pour que les lycéens puissent se l'approprier. Le problème, c'est le temps qui manque parfois. En première S notamment !
    A titre personnel, la prise en main d'un nouveau logiciel me demande beaucoup de temps et d'énergie !

    Dans mon lycée, mes collègues de maths utilisent essentiellement Algobox.
    Quand j'ai essayé d'utiliser avec les élèves un autre logiciel de programmation, ils étaient un peu perdus.
    C'est surtout la syntaxe qui les gêne puisqu'elle varie d'un logiciel à un autre.

    Peut-être que si l'équipe des profs de maths d'un même lycée choisissait un même logiciel pour les trois années de lycée, cela serait plus facile. Ce choix pourrait aussi être conditionné par les logiciels utilisés dans le post-bac.

    J'en profite pour remercier tous les concepteurs de logiciels libres ou gratuits de mathématiques.
    J'essaie d'imaginer le temps qu'ils consacrent à leur logiciel vu le temps énorme que j'y consacre en simple utilisateur.
    En général, on peut aisément les contacter pour leur signaler des bugs ou améliorations.
    Respect et admiration, mesdames et messieurs pour tout le travail que vous accomplissez !

    Cordialement, TG.
  • Bonjour Tonton Golden,
    Cela m'échappe un peu que l'on utilise un logiciel comme Algobox. C'est un intermédiaire entre l'algorithme et la programmation, avec la volonté de grouper cela en une seule action. A mon avis, c'est exactement le contraire qu'il faut faire : séparer soigneusement l'étude de l'algorithme et la rédaction du code.
    L'algorithme, c'est crayon+papier, le code c'est juste un exercice de mémoire de la syntaxe.
  • Il faudrait ptet un peu arrêter de s'astiquer avec "l'Algorithmique". Au niveau lycée, je ne vois pas vraiment ce qui justifie ce terme ; les "algorithmes" sont dans 90% des cas complètement triviaux ("Écrire un algorithme demandant les coefficients a, b, c de l'équation ax²+bx+c=0 et afficher les solutions" ... où est la réflexion algorithmique là dedans ? Il suffit de traduire son cours).

    À ce niveau les "algorithmes" ne sont qu'une traduction plus ou moins immédiate de l'énoncé, la difficulté de cette activité étant principalement la traduction d'un langage naturel vers un langage formel. En bref, on fait de la programmation, ce n'est pas un gros mot.

    C'est pourquoi je pense sincèrement qu'il ne faut pas multiplier ces langages formels. Cette distinction "pseudo-code"/"code" est complètement artificielle et embrouille plus les élèves qu'autre chose :
    • soit le "pseudo-code" n'est pas clairement défini, dans ce cas les élèves ne savent pas bien ce qu'ils ont le droit d'utiliser ou pas ;
    • soit le "pseudo-code" est complètement codifié, et dans ce cas, il est redondant avec un langage de programmation ;
    • dans les deux cas, cela fait 2 langages à apprendre en même temps.

    Le python permet à mon sens d'être suffisamment "haut niveau" pour être employé comme "pseudo-code" pour les débutants.

    L'approche papier/crayon est bonne... quand on sait déjà programmer. Une fois que les élèves ont bien compris ce que voulait dire "programmer", qu'ils sont capables d'écrire correctement une boucle dans un langage donné, on peut se pencher sur de vrais problème algorithmiques. Et une fois arrivé à ce stade, le passage à du "pseudo-code" se fera sans difficulté, l'élève peut comprendre qu'écrire tous les détails inhérent à un langage est superflux (et pour les meilleurs, ils "écriront" automatiquement ces détails dans leur tête).

    Pour revenir à la question initiale, l'installation de python et de bibliothèques attenantes (comme de beaucoup d'autres logiciels) est très simple sous Ubuntu. Si Ubuntu n'est pas installé, il n'est pas compliqué à installer non plus.

    Concrètement en classe, on n'a pas non plus beaucoup de temps pour ça. Cette année je n'en ai quasiment pas fait (quand des élèves arrivent en 2onde ne sachant pas résoudre x+1=0 ou calculer 15+15, je me dis qu'il y a d'autres choses à faire que de la prog).
  • Pour mettre tout le monde d’accord, je propose Brainfuck dès la seconde.
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • Génial Brainfuck. Je ne connaissais pas, je crois que le vais m'y mettre. X:-(
  • Mon plan fonctionne parfaitement. (:D
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • Brainfuck c'est petit joueur à côté de Malbolge.

    Malbolge est tellement horrible qu'il a fallu 2 ans avant d'arriver à écrire un premier programme. Et il a fallu encore plusieurs années avant d'arriver à écrire une boucle infinie.
  • Le but de Brainfuck est d’avoir un langage minimaliste, celui de Malbolge est d’avoir un langage imcompréhensible (même par Sherlock Holmes).
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • Bonjour,
    \^^,^^%^^4~\^^6ce^^4~\*^^5cd^^%^^&~\&\^^63a^^74c^^/^^64e%
    \&`?^^p ?&`,^^w ?&`@7 ?,,$o^^#@@5m,,65,,.t@@#,,,,,!,,3@@3
    ,,;,,-^^),,.@@)@@-@@!,,,,,=,,5c,,"e,,',,),,.,,;,,$,,/@@#%
    @@5@@-e,,.,,4@@=?&`?!0 !&`?.^^w?&`?=1 ?&`?/2!*?d#1=#1#1/%
    ?*!N#1#2=#1?d ...#2e/!* ?-#1=!..#@@(a@@2#1/?..(..&..),,,%
    !&`?<1@@s~<e!&`!:1..s~:o?&`?+@@q3~+d~~?-@@5c,,&,,"o..8,,;
    !N=B..//=/!^^`?N @@61=?'@@%/ ?`..! ~"74:~'165..3 ~"6C..%%
    @@3 ..#:~"6..45..74@@2^^)~'142..5@@4<@@5@@2^^3 ..64!-'145
    ! @@5c..4..4,,&@@!^^-^^)l..9 ..-~"61..4..(@@%@@-@@!~"74<%
    @@8..=?..(@@&^^),,,..5ce.....${..$../..#..5..-e,,.@@74..=
    


    forum mathematex

    [small](J'aime bien être dans la situation de l'élève qui ne comprend rien)[/small]

    S
Connectez-vous ou Inscrivez-vous pour répondre.