Codage informatique dès le primaire
Je viens de lire ceci:
https://www.lefigaro.fr/secteur/high-tech/codage-informatique-l-ecole-42-de-xavier-niel-initiera-des-eleves-en-primaire-a-la-rentree-20210629
Pas vraiment de rapport avec les mathématiques mais à l’heure où cette matière est piétinée (comme d’autres) cela interroge.
Cela reste une expérimentation pour l’heure mais on voit bien que petit à petit le privé s’invite dans l’éducation nationale.
Onfray nous parle de ce projet ici:
https://www.lefigaro.fr/secteur/high-tech/codage-informatique-l-ecole-42-de-xavier-niel-initiera-des-eleves-en-primaire-a-la-rentree-20210629
Pas vraiment de rapport avec les mathématiques mais à l’heure où cette matière est piétinée (comme d’autres) cela interroge.
Cela reste une expérimentation pour l’heure mais on voit bien que petit à petit le privé s’invite dans l’éducation nationale.
Onfray nous parle de ce projet ici:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Les professeurs dont il est question sont-ils ceux de l'enseignement primaire?
Qu'est-ce qui pose un problème à enseigner ceci?(pourquoi ne devrait-on pas le faire?)
Ecrire du code est une école de la rigueur à mon humble avis.
NB:
Evidemment si cela se fait au détriment de la lecture et du calcul je comprends que cela pose un problème.
De toute façon et en général, le privé répond à un manque.
De plus pour apprendre à programmer ("coder") il existe des sites de qualité (peu mais bien faits) qui n'ont pas attendu ce type qui se fait passer pour un mécène.
Un site efficace est : http://www.france-ioi.org/
S'il s'agit d'informatique un peu sérieuse, le problème est plutôt l'efficacité de l'enseignement dispensé.
Je ne suis pas un fan de ce milliardaire mais c'est bien un mécène (à ne pas confondre avec philanthrope).
Il me semble que c'est aussi sûrement un donateur de l'association L214.
- dans les années 70 et 80 j'avais un cahier de texte, un cahier de cours et un cahier d'exos au collège. Ceci pour toutes les classes. Il était très facile de suivre "mécaniquement" quand on se donnait la peine ou quand les parents étaient derrière.
- aujourd'hui la situation est la suivante, il est vrai aggravé par le Covid mais ce n'est qu'une circonstance supplémentaire défavorable :
. pro note avec devoir, planning "d'évaluation", exercice
. pas de cahiers d’exercices : les choses sont dispatchés sur :
* des videos YT
* géogébra
* scratch
* des feuilles volantes ou à imprimer,
* des "ressources" web diverses et variés,
* des manuels d'exos plus ou moins pourris dont j'avais donné ici quelques énormités,
etc.
. cours "mini" : feuille à trous.
Dans cette configuration le numérique tient environ 60% du volume et le semblant d'apprentissage de programmation 10% (scratch)
De cette façon il est absolument impossible d'apprendre raisonnablement quoique ce soit, donc il faut acheter des bouquins propres (style manuels des années 80, "démontrer pour comprendre" etc.)
Dans la classe de junior les résultats sont excellents et le néo-certifié se la pète car quelque soit le niveau de difficulté aux "évaluations" la moyenne est toujours élevée, ce qui le conforte dans sa pratique (qu'aucun parent ne suit, ils font tous comme moi).
Voilà.
Ce sont ça tes arguments? Bof, peu convaincants pour moi.
Ce truc s'inscrit dans ce que préconise Yves Chevallard. On part du problème et il faut que l'individu soit en mesure de mettre en place une démarche de résolution qui passe par un choix raisonné des méthodes qu'il faudrait s'approprier, au moins suffisamment, pour résoudre le problème donné.
la question que je me pose est, est-ce que spontanément un individu est capable de la mise en oeuvre d'une telle démarche ou si non, quelles sont les connaissances de base nécessaires pour que l'individu soit capable de mettre en oeuvre cette démarche? Voila ce que j'ai compris en écoutant une ou deux conférences de ce type et il me semble que cela éclaire l'orientation prise par l'Education nationale.
PS:
La philosophie de cet enseignement est me semble-t-il: tu étends ton savoir au fur à mesure de tes besoins*.
Dans le passé, on partait du postulat contraire: on te bourre la tête de trucs pour que tu sois potentiellement capable de résoudre des problèmes de difficultés variables.
*:ces besoins se font sentir face à la résolution de problèmes.
D'autre part, comme toujours tes problèmes de logique, j'ai "Foys je vais t'exposer deux situations réelles d'apprentissage " ce qui n'est pas une situation argumentaire.
Si tu n'as pas compris mon propos tu devrais plutôt te questionner au lieu de me faire une remarque désobligeante (je n'ai même pas compris ce dont il s'agissait).
Tu devrais écouter plus attentivement ce que ces gens dont tu aimes te gargariser avec les noms ont à dire.
(ce qui ne veut pas dire que tu as le devoir d'être en accord avec leur dires, thèses).
"au lieu de me faire une remarque désobligeante" je ne vois pas ce qu'il y a de désobligeant de rappeler ton rapport à la logique, personne sur ce forum ne me désavouera.
" ces gens dont tu aimes te gargariser avec les noms" et j'ai parlé de qui dans ce fil ?
Tu mets sans arrêt des références à des travaux dans ce domaine. Ce qui en soit est une bonne chose mais quand il s'agit d'argumenter, tu te réfugies dans des arguments qui ne nécessitent pas d'avoir lu ces références.
Donc je me pose légitimement la question: est-ce que tu as vraiment lu/écouté tous ces gens, et si oui qu'est-ce que tu en as retenu?
Si s'envoyer toute cette littérature débouche sur des arguments type café du commerce c'est beaucoup d'efforts pour pas grand chose.
D'autre part le fil concerne l'apprentissage de la programmation thème qui n'est pas à la portée de la didactique chevaline (cf. sa définition).
XAX:
J'ai bien compris que tu n'as pas d'autres arguments à donner.
Alors tu t'en prends à moi pour masquer ce vide: diversion dont tu es coutumier.
Ce que j'avais à dire était aussi pour tous les gens qui lisent ce fil.
Edit : ce continuum es explicite quand on lit " Au programme, la prise en main d'outils de création de contenus, du codage ou encore «la pensée algorithmique afin de comprendre le numérique»." https://www.lefigaro.fr/secteur/high-tech/codage-informatique-l-ecole-42-de-xavier-niel-initiera-des-eleves-en-primaire-a-la-rentree-20210629
Quand on connaît le parcours de Niels, je ne suis pas convaincu que les choses soient distinctes d'un point de vue épistémologique.
Je suis allé marcher quelques minutes minutes sous un soleil de plomb et j'ai réfléchi un peu.
Le "codage" est une sorte d'activité fétiche pour certaines personnes car cette activité est une espèce d'exemple (un paradigme?) qui permet d'illustrer un point de vue.
On cherche à résoudre un problème, l'ensemble des méthodes à mettre en oeuvre est circonscrit.
De plus, on ne peut pas se contenter de réciter quelque chose pour résoudre le problème à résoudre.
C'est une situation riche (mettre au point du code demande rigueur, application: on est amené sans arrêt à chasser les erreurs pour les corriger ce qui demande une certaine réflexion qui n'est pas forcément d'un usage courant dans notre société)
Après qu'est-ce qu'on fait de tout cela? Est-ce que cela ne va pas contribuer à diluer encore plus des trucs fondamentaux comme apprendre à maîtriser la lecture, les bases du calcul? etc sont des questions qui se posent en effet.
Fin de Partie a une vision de l’école, qui n’est ni celle du gouvernement ni celle d’une tendance républicaine (à la Jules Ferry pour simplifier) et ce n’est pas la peine de chercher à faire coïncider la vôtre et la sienne en tentant vainement de pointer des contradictions ou en le psychiatrisant. Cela ne fait pas avancer le débat, ça rend ses contradicteurs peu sympathiques, surtout quand ils lui tombent dessus en meute. Je ne suis pas d’accord avec tout ce qu’il écrit, c’est la forme du « débat » que je conteste.
-- Schnoebelen, Philippe
Il y a un extrait de cette conférence qui laisse à voir l'idéologie** qui me semble avoir de plus en plus cours dans l'enseignement. Cette idéologie a quelque chose de séduisant.
*: J'y vois comme une espèce de manifeste d'un enseignement.
**: Ce n'est pas un gros mot pour moi.
Je crois qu'il y a aussi une idéologie à l'oeuvre (je le répète ce n'est pas un gros mot pour moi).
L'éducation a toujours été sous-tendue par de l'idéologie (je n'y vois rien de condamnable a priori). Ce qui pose un problème à certains, me semble-t-il, ce n'est pas ce constat mais qu'il y a eu un changement d'idéologie qui s'est amorcé.
On s'était fait à cette idéologie et on avait fini par la faire nôtre. Le changement d'idéologie c'est comme si on vous enlevait un ami, c'est une déchirure.
Sans arrêt des conseils aux enseignants et en même temps un mépris total pour les mêmes !
Quel individu malsain !!
J'ai connu des parents d'élèves pénibles, jamais de cet acabit !!
J'ai l'impression que tu confonds lourdement le fait que je ne crois pas aux enseignements actuellement prodigués et mon rapport aux enseignants - pour ces derniers que ce soit les néo- certifiés ou les anciens agrégés je toujours eu le respect de la fonction. Idem pour les PE avec qui je m'entendais d'autant mieux que je n'attendais rien d'eux.
edit : un membre éminent du forum s'est même fait la main au C++ sur ce site http://www.les-mathematiques.net/phorum/read.php?18,2130026,2131082#msg-2131082
Mais je veux bien te croire sur l'existence de pratiques différentes en français. Par contre en maths il semble y avoir une infection profonde du "numérique" assez générale. C'est catastrophique pour la géométrie.
Manifestement, tu ne te rends pas compte de ce que tu écris !
D'ailleurs la suite du message n'a aucun rapport avec la choucroute !! Tu viens ici pour étaler tes obsessions ...
J'attends de voir les support de Niels ...
Les profs de techno utilisaient les concours Castor, Algorea ou autres avant qu'on ne fasse du Scratch (d'ailleurs, je me demande si RM a enseigné Scratch...).
J'aimerais bien connaître le niveau moyen en fin de 3e en "codage" et le niveau futur en entrant en 6e. Il y a un précédent : l'introduction de l'anglais au primaire qui s'est accompagné d'un régression du niveau en fin de 3e.
Chat-maths c'est très intéressant ce que tu écris, c'est ce qui apparaît dans france ioi où en plus les tableaux viennent assez rapidement avec donc des préalables suites / matrices manipulés concrètement.
En ce qui me concerne, n'étant pas fan du code, j'ai l'impression que la rigueur se résume à ne pas galérer dans les indices des listes et ne pas faire de malheureuses fautes de frappe. Vision fausse, je m'en doute, mais je ne suis pas le seul à qui l'école a donné cette image (et donc dégoûté du code, et j'aimerais trouver une manière stimulante de l'apprendre un jour, cette situation me gêne bien !).
J'imagine qu'il y a des têtes faites pour aller des maths à l'info, et des têtes faites pour l'autre sens. Seulement, si la pédagogie est branlante et assurée par des gens qui avouent être à peine formés, je ne sais pas ce que ça donnera dans les têtes des élèves.
L'idéal serait bien sûr qu'on apprenne à construire de vrais projets plutôt que d'écrire trois algorithmes simples pendant l'année, mais ça demanderait beaucoup d'heures par rapport à ce qu'on donnerait à cet enseignement, je pense.
Pour ma part, ça m'a beaucoup aidé (je pense) de voir les preuves de maths comme des bouts de code: si la preuve est correcte, ça compile, sinon, ça compile pas, s'il y a ce genre d'erreur de typage ou si la preuve n'est pas écrite dans le bon language, l'interpréteur (= le correcteur) râle, et ça ne compile pas :-D.
Mais bien sûr, ça a ses limites comme tu dis: notamment au niveau de la terminaison ou de la correction, en code, tu peux très bien ne pas te soucier des cas qui n'arrivent jamais, en math, il faut aussi prouver qu'ils n'arrivent jamais, mais l'informatique peut au moins donner un peu de rigueur.
1)Un compilateur est un juge impitoyable: soit ton code est syntaxiquement correct, soit il ne l'est pas et tu dois revoir ta copie jusqu'à ce que ton code soit accepté. Même syntaxiquement correct, cela ne veut pas dire que ton code fait ce que tu crois (espères?) qu'il est censé faire.
2)Mon expérience du code, qui est pour beaucoup en autodidacte*, m'a appris une chose: tu passes beaucoup de temps à corriger des programmes et ce n'est pas uniquement relié à mon point 1). Ecrire du code syntaxiquement correct ne signifie pas que le code écrit résout le problème posé.On passe beaucoup de temps à traquer les erreurs, à s'arracher les cheveux à ne pas les trouver immédiatement. Cela nécessite calme, patience, rigueur et méthode.
*: en première année (ou deuxième année?) de DEUG je programmais un peu en Fortran: on codait sur un terminal de l'UNIVAC de l'université mais pour des questions de coût le rendu de la compilation était renvoyé sur un listing papier.Autant dire que c'était très pénible.
En troisième année, on avait enfin accès à des PC (une marque avec un nom italien à base de processeur x286), et on programmait en Turbo pascal.
Une quinzaine d'années après, vers la fin des années 90, après mon licenciement je me suis passionné pour la programmation (j'avais du temps et il y avait l'émulation liée à une communauté sur internet) mais je programmais qu'en assembleur. C'était suffisant de connaître ce langage pour le type d'applications que je programmais (tasm, tlink, debug.exe rulez !) B-)-
Fin 2000, j'ai eu la chance de suivre une "formation" professionnelle où j'ai appris les bases du langage C. Et j'ai commencé à coder dans ce langage (d'autres genres d'applications) et je l'ai fait dans un cadre professionnel pendant quelques mois.
Quant à moi j'ai bien plus appris sur la rigueur avec les preuves mathématiques qu'avec le code. Mais ça doit être mon profil plus littéraire qui est en cause.
Qu'est-ce que cela signifie pas propre? Produire du code peut s'accompagner d'impératifs: il faut que le programme soit rapide, qu'il ne consomme pas trop de ressources, qu'il soit portable etc.
PS:
Produire du code est une action concrète. A la fin tu dois avoir produit un programme qui résout un problème donné.
Faire des puzzles peut certainement aussi être un exercice qui développe patience et méthode.
Pour faire l'analogie, c'est un peu comme une preuve mathématique qui peut être correcte du point de vue des arguments et de l'enchaînement logique, mais dont la mise en page et le niveau de langue font que seul son rédacteur comprend ce dont il est question.
C'est principalement le nombre de lignes qui rend le code illisible d'où l'idée de le structurer: utilisation de fonctions, utilisation d'un langage POO (programmation orientée objet).
*: j'ai passé des semaines (des mois peut-être) au début des années $2000$ à essayer de comprendre comment fonctionnait une petite partie d'un énorme programme: pas de documentation digne de ce nom et tout codé en C. Si j'avais mieux compris comment fonctionnait ce programme, je serais peut-être encore ingénieur de développement. :-D
Certaines démonstrations peuvent être vérifiées par un logiciel* spécialisé mais en général ce n'est pas ce qu'on fait donc on est bien obligé de lire une démonstration pour être sûr qu'elle est correcte mais dans mon souvenir de développeur de logiciels pour l'industrie le client se fichait du code lui-même: il y avait une série de tests à réaliser (tests unitaires....) si le programme passait tous ces tests le travail avait été fait et on passait à autre chose.
*: mais j'imagine la pénibilité pour coder la démonstration pour qu'elle puisse être traitée par ce logiciel.
Si tu considères que les autodidactes codent mal, faire une initiation à la programmation beaucoup plus tôt devrait participer à corriger ça.
Le fait qu'il y ait tant d'autodidactes dans ce domaine est bien une preuve que l'enseignement de la programmation commence trop tard.
Programmer = école de la rigueur. Oui. On voit souvent des questions sur les forums d'entraide ... calculer 1/x+1 ... et il faut deviner qu'en fait, on parle de 1/(x+1).
Le programmeur, si il fait cette approximation, certes son code va compiler, mais il va obtenir des résultats différents de ceux attendus.
Si le programmeur oublie un end if , s'il croit que la négation de si a ou b, c'est si (non a) ou (non b) , son programme va avoir des comportements inattendus.
Il faut de la rigueur pour programmer. Mais ce manque de rigueur ne sera pas forcément sanctionné commme il faut, il est possible que le programmeur fasse telle ou telle erreur, le programme compile, il produit un résultat, et le programmeur croit que ce résultat est correct.
Programmer peut-être une école de la rigueur, mais ce n'est pas garanti.
L'enseignement du numérique serait catastrophique pour l'enseignement de la géométrie ...
Peut-être.
Est-ce grave ?
Entre une situation, où les gamins vont apprendre à réfléchir, par l'apprentissage du numérique, mais ne sauront pas faire des exos de géométrie, et une autre situation (la situation actuelle) où de toutes façons, les gamins ne savent pas faire des exos de géométrie, et n'apprennent pas à réfléchir, le choix est vite fait !
Si on avait un modèle qui fonctionne, on pourrait grogner à l'idée de changer ceci ou cela. Mais on est dans une situation où se battre pour ne pas changer, c'est totalement ridicule.
L'utilisation de Pronote ...
Réussir à mélanger les sujets ... pour parler de pronote dans ce sujet ... c'est assez révélateur.
Imagine si ton navigateur, vérifié par coq et tout, était certifié (comme la page ouèbe) mais mettait dix minutes à afficher la moindre page en HTML sans fioriture. Et de même, imagine un navigateur qui affiche tout super vite mais n’importe comment et avec des plantages sans arrêt.
De même, programmer c’est bien beau mais où, au juste ? Sur quelle machine, avec quelles contraintes (sécurité, rapidité, mémoire…) ? Et le code source, il vient d’où ? Tu le crées de rien ou il a déjà vingt ans et tu dois faire avec ?
C’est le même genre de débat que « bouh, return en milieu de fonction pas bien » ou que « berk, goto caca » en citant Dijkstra sans l’avoir lu (notez, je ne l’ai pas lu non plus).
À propos de rigueur, les navigateurs internet sont souvent très tolérants quant à la syntaxe du document reçu. Ça ne veut pas dire qu’il faire n’importe quoi, leur tolérance a des limites.
-- Schnoebelen, Philippe
En général, l'autodidacte écrit des programmes qui ne sont pas monstrueux en nombre de lignes de code (il est tout seul à les écrire) donc il n'a pas trop besoin de se soucier de structurer son code donc il ne s'intéresse pas à cet aspect des choses qui peut devenir problématique sur un programme de plusieurs dizaines de milliers de lignes de code avec toute une équipe qui code simultanément. La non-structuration du code est pour moi le seul truc que je considère comme relèvant de l'expression "mal codé".
Pour le reste, c'est surtout une question de style personnel (à la fin le compilateur n'en fait qu'à sa tête de toute façon).
Celui qui fait ça n'a rien compris à ce qu'est la programmation et il n'est pas rigoureux et méthodique.
Un programme fait le travail attendu ou il ne le fait pas.
PS:
J'ai pensé à un exercice pour illustrer mon propos.
Soit la fonction $P(x)=(x-1)(x-2)$
On présente un programme informatique, l'élève ne voit pas le code, c'est une boîte noire pour lui.
On remarque que ce programme retourne $0$ quand on met en entrée les valeurs $1$ ou $2$.
Est-ce que ce programme calcule correctement les valeurs prises pour tout $x$ entier par la fonction $P$?
L'élève peut librement entrer les valeurs qu'il veut pour voir ce que le programme renvoie.
Le code de la fonction:
fonction f(n):
retourner la valeur 2*(n-1)*(n-2)
fin
L'expression est dépréciative pour toi. Les Anglo-saxons ne me semblent pas penser de la sorte.
Qu'est-ce que cela a de dépréciatif? Le code ne jaillit pas tout seul comme de l'eau fraîche d'une source. Il faut quelqu'un pour faire ce travail ce qui demande des compétences.